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);
}
お礼
回答ありがとうございます。 なんと…! そういうことだったのですね。 確かにこれは豪ドル円で、スプレッドは4.1くらいありました。 T/Pを設定する時は見た目の位置に設定してはダメなのですね。 勉強になりました。 また、Bid/Askラインの表示も知りませんでした。 表示しておく事にします。 重ねてありがとうございます。