MT4の勉強でつまりました
前日の4本値とフィボナッチを利用して当日の売り買いを自動的に行なうプログラムを考えてみました。
しかし、書物を参考にしていることもあってか、うまくいきません。
仕事に出かける時間が早いので標準時間(夏;6:00 冬;7:00)にエントリーできません。
流れとして
標準時間にプログラムスタート→前日分を決済→計算式に基づいてエントリーする。
初心者に付き問題点をわかりやすくご指導ください。
//マジックナンバーの定義
#define MAGIC 7
//パラメーターの設定//
extern double Lots = 1.0; //取引ロット数
extern int Slip = 10; //許容スリップページ数
extern string Comments = ""; //コメント
//変数の設定//
int Ticket_L = 0;//買い注文の結果をキャッチする変数
int Ticket_S = 0;//売り注文の結果をキャッチする変数
int Exit_L = 0; //買いポジションの決済注文の結果をキャッチする変数
int Exit_S = 0; //売りポジションの決済注文の結果をキャッチする変数
int start()
{
//買いポジションのエグジット
{
Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Red);
if(Exit_L == 1){Ticket_L =0;}
}
//売りポジションのエグジット
{
Exit_S = OrderClose(Ticket_S,Lots,Bid,Slip,Blue);
if(Exit_S == 1){Ticket_S =0;}
}
//買いエントリー
if(((iHigh("GBPJPY",1440,1)-iLow("GBPJPY",1440,1))*0.5+iLow("GBPJPY",1440,1))<((iOpen("GBPJPY",1440,1)+iClose("GBPJPY",1440,1))/2
{
Ticket_L = OrderSend(Symbol(),OP_BUY,
Lots,Ask,Slip,0,0,Comments,MAGIC,0,Red);
}
//売りエントリー
if(((iHigh("GBPJPY",1440,1)-iLow("GBPJPY",1440,1))*1.382+iLow("GBPJPY",1440,1))>((iOpen("GBPJPY",1440,1)+iClose("GBPJPY",1440,1))/2
{
Ticket_L = OrderSend(Symbol(),OP_SELL,
Lots,Bid,Slip,0,0,Comments,MAGIC,0,Blue);
}
return(0);
}
お礼
大変便利な全決済EAを配布してくださっている方を見つけました。 こちらでテストしたところ、エラーは出るものの、望み通りのトレードをしてくれました。 ご回答ありがとうございました。