EAの休止時間をcsvファイルで指定する方法で紹介したサンプルEAファイルの説明です。→Sample_NoTrade_ReadFile.mq4とNoTradeTime.csvをダウンロードSample_NoTrade_ReadFile.mq4の解説まずは、『NoTradeTime.csv』ファイルを見てみましょう。hh.mm』の日付フォーマットで、トレードしない時間が入力してあります。Zoneとチャート上に表示させるようになっています。データのファイル名を指定です。AfterSecond;パラメータ『NoTradeBeforeMin』と『NoTradeAfterMin』の『分指定』を『秒指定』に変換したものを格納しておく変数です。過去のもので現在の時間に一番近い時間データを格納しておく変数です。未来のもので現在の時間に一番近い時間データを格納しておく変数です。Now;『NoData』は、もうcsvファイルの指定時間をチェックする必要がなくなったら、NoDataをtrueにして、ファイルを開かないようにするための変数です。現在の時間データを代入する変数です。次は、EA開始時に1度だけ実行されるinit()関数です。秒に換算したものを代入します。今後、時間の比較を、秒単位で進行する時間データで行うためです。パラメータ『NoTradeBeforeMin』『NoTradeAfterMin』の役割は、ここで終了し、もう使いません^^;『LastNoTradeData』『NextNoTradeData』に、マイナス値を入します。これらの変数にマイナス値が入っている場合は、それに対応するデータが空っぽというルールにするためです。『NoData』にfalseを代入しておきます。ここで、グローバル変数の宣言部分に初期値を代入しておくのと、init()関数内で値を代入するのでは、若干動作が違います。グローバル変数は、記憶力を持った変数で、EAをチャートから外したときに、はじめて格納されている値がなくなります。再読込させようと、EAのパラメータ等を入力するプロパティウィンドウを開き、OKボタンで再スタートさせたとします。EAは前回稼動していたグローバル変数の値が残っていますので、NoDataがtrueのままで、csvファイルを読まないようになってしまいます。ならないためにも、init()関数の中で稼動開始時にグローバル変数に入っていて欲しい値を代入しておきます。次に、ティック毎に実行されるstart()関数です。TimeCurrent();一番最初に、『Now』に現在の時間データ(時刻1秒ごとに付けられている整数)を代入しておきます。SetNoTradeData()関数を実行する。『LastNoTradeData』『NextNoTradeData』『NoData』にそれぞれの値を代入する関数として、start()関数の下に作ってあります。後で、見てみましょう。記憶用変数『PrintData』を宣言。『PrintData』に『NextNoTradeData』の値を代入。出力するということです。return(0);IsNoTradeTime()関数がtrueを返したら、ここで実行終了。Zone』と表示させ、trueを返します。ない場合は、falseを返します。後で、見てみましょう。Zone』と表示させます。これで、start()関数は終了ですね。EA(20)indicators(3)その他(17)完全自動売買(10)投資戦術の検証(3)投資書籍(4)アーカイブ2014年5月(1)2014年1月(1)2013年9月(1)2013年6月(1)2013年3月(1)2012年5月(1)2012年1月(1)2011年2月(1)2010年10月(1)2010年3月(1)2010年2月(3)2010年1月(2)2009年10月(3)2009年8月(3)2009年5月(3)2009年1月(1)2008年12月(3)2008年11月(3)2008年9月(1)2008年8月(1)2008年7月(2)2008年6月(1)2008年5月(3)2008年4月(2)2008年3月(2)2008年2月(3)2008年1月(12)2007年12月(15)2007年11月(5)2007年10月(16)検索プロフィールDr.EAのアシスタント?をしている慶次です。自動売買のEA作成をお手伝いが出来ればと思っています。完全自動売買を可能にするMetaTraderのEAをプログラムするDr.EAの正規ブログ。EAのプログラミング言語MQLの使用方法やEAの製作方法の記事を作成。FXの自動売買やシステムトレードに興味がある方は、是非ご覧下さい。