メタトレーダー4でプログラムを作ってみよう -23ページ目

メタトレーダー4でプログラムを作ってみよう

無料のトレードソフトであるメタトレーダー4のプログラムを作るコツをアップします。初心者がインジケーターとEAのプログラムを作成できるのを目指します。

それでは、時間で動作を色々変える場合のプログラムをしていきます。

前回までのプログラムの start の箇所を以下のように変更します。

int TimeCheck=0;
if(StartTime<StopTime && (TimeHour(TimeLocal())<StartTime
 || StopTime<=TimeHour(TimeLocal())) ) TimeCheck=1;
if(StartTime>StopTime && (TimeHour(TimeLocal())>=StartTime
 && StopTime>TimeHour(TimeLocal())) ) TimeCheck=1;

//時間制御に関係なく実行させたい処理

if(TimeCheck==0)
{
//設定時間内で実行させたい処理
}

if(TimeCheck==1)
{
//設定時間外で実行させたい処理
}





最初に、TimeCheck という変数を宣言し、初期値で 0 を代入します。

次に時間を調べて、設定時間外の時には 1 を代入するようにします。

if分を二つ作成し、TimeCheck の状態によって、

{ } 内に希望の処理をプログラムします。

時間の設定にかかわらず処理したいものは、

if文以外の箇所にプログラムします。

例えば、

仕掛は設定時間内だけど、決済は時間にかかわらず行う場合

仕掛のプログラムは、

if(TimeCheck==0)
{
//設定時間内で実行させたい処理
}


{ }の中に書いておき、決済のプログラムは、

//時間制御に関係なく実行させたい処理

の下に書いておけばOKです。

このようにしておくと、時間帯で処理を変更することができます。

TimeCheck の使い方によって、アジア時間、ロンドン時間、NY時間を区別して、

それぞれで動作を変更するようにもできます。

色々試してみてください。




 
それでは実際のプログラムに入っていきマックス。

start 
に以下を追加します。

if(StartTime<StopTime && (TimeHour(TimeLocal())<StartTime
 || StopTime<=TimeHour(TimeLocal())) ) return(0);
if(StartTime>StopTime && (TimeHour(TimeLocal())>=StartTime
 && StopTime>TimeHour(TimeLocal())) ) return(0);




最初に、StartTimeStopTime を比べます。

この大小によって動作が変わってくるからです。

上の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
 の先頭にこれを書いておけば時間によって動作を制御することができます。

今回はコード以下の全部の処理やめる場合ですが、

場合によって一部の動作だけを変更したいこともあります。

次回はその場合にどうしたらいいか説明します。




   
【送料無料】使える売買システム判別法

【送料無料】使える売買システム判別法
価格:2,940円(税込、送料別)

今回は時間で動作を制御する方法を説明していきまっしゅ。

EAで特定時間だけ動作させたい場合などに使用します。

それでは、メタエディターのNewのアイコンをクリックして新規作成します。

一番上の「Expert Adovisor」を選択して「次へ」をクリックします。



名前を、TimeControl01 と入力します。

Add」を2回クリックしてパラメーターを2つ追加します。

名前とタイプと初期値を以下のようにします。

StartTime int 9
StopTime int 15

と設定して「完了」をクリックすれば出来上がりです。



次回からちゃちゃっとプログラムしていきます。

お楽しみに~