2013取引時間を制限するプログラム~PART1EAでの取引時間を制限したいという方は多いと思います。それをきちんとプログラムしようというのが今回のテーマです。ところが、これが簡単そうで、実は意外に難しいんです。現在の時刻を返す関数を用意します。現在のサーバーの「時間」を整数で返します。現在のサーバーの「分」を整数で返します。手っ取り早い方法は、記憶変数を用いて、1現在時刻がトレード開始時刻になったら、その記憶変数に「1」を代入し、2現在時刻がトレード終了時刻になったら、その記憶変数に「0」を代入し、3その記憶変数が「0」のときは、return(0)によってそれより下のプログラムを読み込まないようにすればOKです。上のようなプログラムにすればいいわけです。このやり方だと、EAを挿入し直すたびに記憶変数が初期化されてしまうため、EA挿入後しばらくの間は思惑通りの作動をしてくれません。そこで、記憶変数を用いずに、あくまでも現在時刻と指定時刻の大小関係からティックの変動ごとに取引の可否を決定するプログラムを組む方がよいでしょう。ところが、やっかいなことに、「時間」と「分」という二つの異なる単位が存在することから、そのままでは大小関係による条件分岐が複雑になってしまい、自分が何を書いているのかわからなくなってしまいます。こんなことになっちゃいます。><ここで、小学校時代の算数の授業を思い出しましょう。「●●ちゃん、単位が二つ以上あるときは、ちゃんと単位をそろえて計算しましょうね。」と先生によく叱られましたよね。そこで、単位をすべて「分」に統一してみましょう。一日は24時間×60分なので、すべて「分」換算すると、上の画像のように、「0分」~「1439分」までになります。=現在「時間」×60+現在「分」と置き換えれば、大小関係による条件分岐がしやすくなります。ここでもう一つやっかいな問題があります。トレードの開始時刻と終了時刻の前後関係によってさらに条件分岐をしなくてはいけません。return(0);とするわけです。実際のプログラムを見ると、こんな感じですね。14:35)ちょうど悩んでいた箇所なので大変参考になりました。12:36)>ライフさんお役に立てて幸いです。販売用EAですが、なかなか時間がなくて増やすことができません。期待しない方がいいかもしれません。インジケーター作成代行を承ります。編集Jimdoあなたもジンドゥーで無料ホームページを。