start に以下を追加します。
if(StartTime<StopTime && (TimeHour(TimeLocal())<StartTime
|| StopTime<=TimeHour(TimeLocal())) ) return(0);
if(StartTime>StopTime && (TimeHour(TimeLocal())>=StartTime
&& StopTime>TimeHour(TimeLocal())) ) return(0);
最初に、StartTime と StopTime を比べます。
この大小によって動作が変わってくるからです。
上の2行が StopTime が大きい場合で、
下の2行が StartTime が大きい場合です。
その次に設定した時間と実際の時間の大きさを比べて、
条件に当てはまる時に return(0) を実行します。
return(0) はその時点で start() 関数を終わらせるので、
それ以降に書いたコードを実行しません。
作成したように StartTime を 9 で StopTime を 15 にした場合、
アジアタイムのみの動作となり、それ以外の時間帯では何もしません。
その逆に StartTime を 15 で StopTime を 9 にした場合、
アジアタイム以外の動作となり、アジアタイムでは何もしません。
TimeHour はカッコ内の時間から時分秒の時だけを抜き出す関数です。
TimeLocal はPCの時間です。
チャート上の時間を使用したい場合は、TimeCurrent を使用します。
TimeHour(TimeLocal()) と書いておくと、
PCの現在時間の時の部分だけ抜き出すことができます。
今回はそれ以下に何もプログラムしていませんが、
通常のプログラムの場合、
start の先頭にこれを書いておけば時間によって動作を制御することができます。
今回はコード以下の全部の処理やめる場合ですが、
場合によって一部の動作だけを変更したいこともあります。
次回はその場合にどうしたらいいか説明します。
【送料無料】使える売買システム判別法 |