• ベストアンサー

FX:指定した時間の高値・安値を返すプログラムを教えてください。(MT4)

指定した時間の高値・安値を返すプログラムを教えてください。 具体的に言うと、、21時から23時の間の高値・安値です。 少し調べたところ、iHighest,iLowestやiBarSHiftの関数で値を出せると思ったのですが、 この関数では、指定の期間が、”現在から何本前の足から何本分の期間”といったように時刻で指定できないみたいで困っております。 ※MT4を使用しております。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

ちょっと自信ありませんが、とりあえず作ってみました。 今、手元に、MT4がないので、コンパイルその他の実験をしておりません。エラー等ありましたら、どうかご容赦を。 double H=0; // 最高値を変数として宣言 double L=0; // 最安値を変数として宣言 int T = TimeHour(CurTime()); // 現在の時刻を変数として宣言 if(T!=23) // もしも現在が23時台でなければ、 { H= High[iHighest(NULL,PERIOD_H1,MODE_HIGH,2,T+2)]; L= Low[iLowest(NULL,PERIOD_H1,MODE_LOW,2,T+2)]; } else // もしも現在が23時台であれば、 { H=High[iHighest(NULL,PERIOD_H1,MODE_HIGH,2,1)]; L=Low[iLowest(NULL,PERIOD_H1,MODE_LOW,2,1)]; } ちなみに、TimeHour()関数については、以下のサイトで詳しく解説されておりました。 http://jidoubaibai.com/index.html また、私は、ごく最近MT4の勉強をはじめたばかりで、質問者の方と同様、いろいろ苦労しております。

gsr_gsr
質問者

お礼

ご回答ありがとうございます! しかも何度も回答してくださってまことにありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.3

たびたびごめんなさい。 このやり方だと、23時台以外のときに、変数HとLが初期値(0)に戻ってしまうので、調子が悪いですね。 うーん、 もう少し研究してみます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

あ、いけません。 追伸です。 iHighest()の中のtimeframe(2つ目のパラメーター)は、0ではなくて、PERIOD_H1にしておいてください。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

こんな感じでどうでしょうか。 double H=0; // 最高値の変数を宣言 double L=0; // 最安値の変数を宣言 if(TimeHour(CurTime())!=23) // もしも現在が23時台でなければ、 { H=H; // Hは以前の数値のまま L=L; // Lは以前の数値のまま } else // もしも現在が23時台であれば、 { H=High[iHighest(NULL,0,MODE_HIGH,2,1)]; // Hには21時~23時の最高値が代入され L=Low[iLowest(NULL,0,MODE_LOW,2,1)]; //Lには 21時~23時の最安値が代入される。 } 上の記述ですと、毎日23:00(サーバーの時間帯)になるたびに、直前の2時間の最高値と最安値が、それぞれHとLに代入され、同時に日々23時にそれらが更新されていくと思います。 もっと、スマートなやり方があるかもしれませんが、今の私の技術では、これが限界(汗)。

gsr_gsr
質問者

お礼

ご回答ありがとうございます。 そうゆうやり方があったんですね。 参考にします!!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • FXのツールで高値安値ポイントの機能について

    現在、マネーパートナーズを利用しています。 マネパのハイパースピードネクストはチャートのテクニカル機能が充実していて、中でも気に入っているのはいわゆる中指と言われる高値安値ポイントが表示できる事です。 これは期間を2本とすれば、左の2本と右の2本と比較したときにそのローソク足の高値や安値が他の4本より高い、または安い場合に高値なら赤い点、安値なら青い点を表示してくれます。 これは、トレンドの方向性を確認するのに非常に重宝しているのですが、この機能がトレードツールを提供しているFX業者がマネーパートナーズ以外に見つかりません。6業者ほどデモトレをしてツールを使用してみたのですが、駄目でした。 どなたか、この高値安値ポイント機能がある業者をご存知でしたら教えてください。

  • 高値、安値がついた時刻までわかる株価情報のサイトはありませんか?

    株価情報の事で質問します。 日足(日単位)に4つの値(始値、高値、安値、終値)があります。 この中で、始値と終値がついた時刻は、 それぞれ寄付きの9:00と大引けの15:00と 時刻が明確です。 (寄付きで商い不成立で値付かずということもないわけではないですが) ここまでの情報は、yahooファイナンスにしろ、exciteファイナンス にしろ、無料で自由にみる事ができます。 わたしは、これらに加えて高値がついた時刻、安値がついた時刻を それぞれ知りたいと思っています。 高値、安値がついた時刻を含めて、始値、高値、安値、終値、出来高の 日単位の情報を、全市場、全銘柄について提供してくれるようなサイトは ないでしょうか? もちろん個々に銘柄コードを指定することは厭いません。 無料であることを希望しています。 「ネット証券会社の日中足をみれば」というご意見があると思います。 ですが、日中それを追いかけているのはかなり大変ですし、 多くのネット証券会社のその手の情報は大引けから1、2時間でクリア されます。 日中足のローソクを表示するところはありますが、厳密な時刻までは わかりません。 どなたか世の中に出回っている株価の閲覧サイトに詳しい方、 ご教授ねがいます。

  • 高値がついた時刻、安値がついた時刻がわかるような無料の株価情報

    株価情報で次の条件を満たすような情報を無料で取得する事はできないでしょうか? 1)日足(日単位)の5つの値(始値、高値、安値、終値、出来高)が分かり  これらに加えて高値がついた時刻、安値がついた時刻をも分かる。 2)日付または日付の範囲を指定して当日のみでなくて、過去日についても、  1)に示したものと同様の情報が分かる。 世の中に出回っている株価の閲覧サイトにとても詳しい方がいらっしゃい ましたら、ご教授ねがいます。

  • MT4で時間を指定するにはどのようにすれば良いでしょうか。

    MT4で時間を指定するにはどのようにすれば良いでしょうか。 例えば、取引を日本時間で午前9時から午後3時の間に指定して、午後3時の時点で建て玉があった場合は手仕舞いできるようにしたいのです。 MT4付属EAの、MACD Sampleで時間指定する場合は、どのようなプログラムをどの位置に書けば良いのでしょうか。 時間指定をいろいろ変えてバックテストを行ってみたいと思っています。 プログラムは、トレードスタジアムで少しやった程度ですので、MT4のプログラムは初心者のレベルです。よろしくお願いします。

  • FXのデータ(高値、安値、始値、終値)はございますか?

    FXのデータ(高値、安値、始値、終値)はございますか?  今晩は,質問させていただきます.どうぞよろしくお願いいたします. 週足・日足・時足など問いません。何でも結構でございますので、 FXの四本値の入手方法はございますでしょうか?? 是非ともお教えいただきたくお願いいたします。  もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。

  • エクセルで最安値~最高値

    こんにちは。 いつもお世話になっております。 例えば、以下のようなデータがあり (あくまで簡単な例えです。ちなみに株式です) 時間   値  件数 09:00  5000   1 09:00  4990   2 09:01  5000   2 09:05  5010   4 14:59  5030   1 15:00  5040   2 -------------------- 件数合計     24(件) これらを 最安値~最高値で何件あったかを調べたいです。 上のようなデータでいうならば 5050  1 5040  3    5030  2 5020  5 5010  5 5000  3        4990  3 4980  1 4970  1 こんな感じでしょうか? (注:09:00に5000が1件、09:01に同じ5000が2件ありますから  5000のところが合計3件になります。) エクセル2000で関数や初歩的なマクロは 理解できるスキルはあるかと思います。 わかりにくいところがあれば補足しますので どうか、よろしくお願いします。

  • ある一定時間の最高値と最小値を取りたい

    すいません,お知恵を貸してください。 モデルを簡単にしますね。 ○現在A1セルに,刻々と数値が変わる数式が入っています。(具体的には株価です,自動で変わります,楽天RSSです) ○そこで例えば9時20分から9時40分までの間の最高値と最小値を取得したいのですが,どうしたら良いでしょうか? ○関数でセルにif分を使うと自セルとの比較になり,どうしても循環参照になってしまい,できません。 ○VBAでPrivate関数のworksheet_changeを使用してみましたが,手入力と違うからかマクロがA1の値変更には反応しません。 ○次々と値を新しいセルに20分間ぶっこんでいって後で集計も考えましたが,一日中動かしますので,負荷が高すぎて現実的ではありません。 どなたか,お知恵をよろしくお願いいたします。やりたい事はいたってシンプルですので,私がただの馬鹿なのかもしれませんが・・・

  • MT4で、指定時間に全決済出来ませんか?

    MT4でアジアンタイムにスキャルピングするEAを使用し、エントリーはEAに任せて、あらかじめ指定しておいた時刻になると、自動的にポジションを全て強制決済したいのですが可能でしょうか?

  • 1時間毎の始値高値安値終値

    そのようなデータはあるでしょうか。 FX会社のグラフから数値データはとれないようです。目で追っていくしかないのか。。。 ロシアのサイトの1分毎のデータは信用できませんでした。 FX会社から届く9時のメール、10時のメール、仲値のメール、12時のメールなどなら、ありますが、高値とか安値とかはわかりません。 時間帯別のアノマリー(癖)投資方法を見につけたいので、研究用のデータを探しています

  • VBの時間残計算プログラム

    こんにちはtmgmです。 VBの時間計算プログラム作成で困っています。 コンボボックスから年月日と時間と分を別々に計5つ指定して、現在時刻との差を出すとというプログラムです。 具体的にはこういうことです。 1.年(cboYear)、月(cboMonth)、日(cboDay)、時(cboHour)、分(cboMinute)をそれぞれリストから指定します。 2.現在の時刻との差をRestTimeに格納し、lblResult.Captionに代入します。(日付や年度をまたぐ場合の時間差も考慮します。) 困っていることというのは、最後のRestTimeがどうしても数値になってしまうということです。時間などは1899年12月30日を0としてそれぞれの日付が値を持っているというのは本に書いてありましたが、それをどうプログラムに反映していいものか、わかりません。 上記のようなプログラム、どなたかお分かりの方いらっしゃいますでしょうか? ご返答よろしくお願いします。