-
作成者スレッド
-
2023年1月15日 20:17 #5801
neilParticipant現在の価格より前の任意の時間(inputでGMT時間0~23時を選択)の1時間足のOPENの直近高値の価格を求めるにはどう記述すればいいでしょうか?
-
作成者スレッド
-
その価格を求めるにはiHighest関数を使用するとよいかと思います。
https://yukifx.web.fc2.com/sub/reference/14_timeseries/cone/timeind_ihighest.html
詳しい引数と戻り値については↑URLを参照してください。
例えば1時間足の最新のローソク足から100本目のローソク足の範囲の中で高値を取得する場合は以下のように記述します。(第五引数から第四引数の間のローソク足で検索を行う)
iHighest(Symbol(),PERIOD_H1,MODE_HIGH,100,0);
第五引数と第四引数は「時間」ではなく「ローソク足の数」を指定する必要があります。
そのため、iBarShift関数を用いて時間をローソク足の値に変換してください。
https://yukifx.web.fc2.com/sub/reference/14_timeseries/cone/timeind_ibarshift.html
例えば以下のように記述することで、1時間足のTime[1]の時のローソク足が最新足から数えて何番目なのかを取得することができます。
iBarShift(Symbol(),PERIOD_H1,Time[1] , false );
任意の時間を指定する場合はiBarShift関数の第三引数にて時間を指定するとよいかと思います。
-
質問の説明が悪くてうまく伝わっていないような気がしました。
例えばですが、今、1月22日のGMT8時として、その時間より前の1月22日のGMT2時の1時間足オープンの価格(仮にA)を基準として、そこ以前の日のGMT時間2時の1時間足のオープンの時の価格(仮にB)が、直近で高い位置を求めたいです。
そういう時はiHighestの第4引数をB、第5引数をAとしてfor文でさかのぼる、もしくは何か関数で定義するのか、それともiHighestではない関数で定義するのかを教えていただきたいです。
-
例えばパラメータで「2時」、「20日間」と設定した場合、今の日にちから直近20日間の2時のオープン価格のうち最高値を求める、というようなイメージであっていますでしょうか?
-
-
パラメーターで「2時」と設定した場合、さかのぼって一番最初の2時のオープン価格を求めたいので、前日の場合もありますし、何か月も前になることもあります。
何日間という設定はせずに、さかのぼってその価格を見つけたら終了となるようにしたいです。
-
直近の2時のオープン価格Aから、それ以前の2時のオープン価格のうちAよりも大きい値を求めるということですね。
基準Aと高値Bを求めるプログラムを作成しましたので添付いたします。
今回は2時と指定しているのでiHighest関数はつかえません。
また、価格は2時0分とするために、価格を指定する際はiOpen(Symbol(), PERIOD_H1, index)のように時間軸は「PERIOD_H1」に固定しています。
詳しくはプログラムを参照していただければと思います。
-
-
お世話になります。
横から失礼いたします。
上記関数非常に勉強になりました。
追加でご教示頂きたいのですが時間、分で値を取得したいのですが可能でしょうか?
直近の何時何分の価格を取得したいです。
ご教示よろしくお願いいたします。
-
単純に上記プログラムの仕様の「時間指定」を「時間と分指定」に変更したものでしょうか?
その場合は添付のプログラムのようになります。
(プログラムで分からない点などございましたらおっしゃってください!)
-
返信にはログインが必要です。