MT4 EA ストップロス の書き方 教えてください 条件 エントリー約定の足の前**…

MT4 EA ストップロス の書き方 教えてください
条件 エントリー約定の足の前**本の最高値(最安値)をストップロスに指定する

例)MA Cross で 約定の足の1本前から3本の ストップロスで 買いは前3本の最安値を切ったらロスカット、売りは前3本の最高値を超えたらロスカットする条件で次のような書き方での間違いの箇所について(前**本とスタートの足はパラメータ設定)
extern int SMA_Period =5;
extern int LMA_Period =20;
extern int SMA_MODE =0;
extern int LMA_MODE =0;
extern int start =1;
extern int Profit =500;
extern int Stoploss count =3;

int start()
{
double Short1,Short2,Long1,Long2,High,Low;

Short1=iMA(NULL,0,SMA_Period,0,SMA_MODE,PRICE_CLOSE,S_Shift);
Short2=iMA(NULL,0,SMA_Period,0,SMA_MODE ,PRICE_CLOSE,L_Shift);
Long1 =iMA(NULL,0,LMA_Period,0,LMA_MODE,PRICE_CLOSE,S_Shift);
Long2 =iMA(NULL,0,LMA_Period,0,LMA_MODE,PRICE_CLOSE,L_Shift);
High =iHighest(NULL,0,2,count,start);
Low =iLowest(NULL,0,1,count,start);

//ポジションがない場合
if(OrdersTotal()==0)
{
//もしゴールデンクロスしたら
if(Short1>Long1&&Short2<Long2)
{
//買いポジションを取る
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-(Stoploss*Low),Ask+(Profit*Point),"BUY",0,0,Blue);
}

//もしデッドクロスしたら
else if(Short1<Long1&&Short2>Long2)
{
//売りポジションを取る
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+(Stoploss*High),Bid-(Profit*Point),"SELL",0,0,Red);
}
}
宜しくお願いします

回答1

extern int start =1; //startは予約語だから使用不可
extern int Stoploss, count =3; //コンマが必要

double Short1,Short2,Long1,Long2,High,Low; //High,Lowも予約語

OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-(Stoploss*Low),Ask+(Profit*Point),"BUY",0,0,Blue); //Stoploss*Lowの意味が不明(計算結果はゼロです)。多分次のようにすべきでしょう。売りの場合も同様。

Price_Low = Low[iLowest(NULL,0,1,count,start)];
OrderSend(——-, Ask – Price_Low, ——-);

プログラミングの質問は、プログラムの一部だけ出されても確認のしようがないので、回答を得るのは難しいと思います。

メタエディタにはデバッグの機能があるので、自分で動作を確認しながら修正するようにしてください。

回答2

長文すぎなんだよッッッ


回答3

単にOrderSendする時にストップも指定するだけやんw


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA