//+------------------------------------------------------------------+string lSymbol;
int init ()
{
lSymbol = Symbol();
return (0);
}
int deinit()
{return(0);}
int start()
{
double MacdCurrent, MacdPrevious, SignalCurrent;
double SignalPrevious, MaCurrent, MaPrevious;
double bid, ask, point, digits;
int cnt, ticket, total;
total = SymbolOrdersTotal (lSymbol);
if (total<1);
{
bid = MarketInfo(lSymbol,MODE_BID);
ask = MarketInfo(lSymbol,MODE_ASK);
point = MarketInfo(lSymbol,MODE_POINT);
digits= MarketInfo(lSymbol,MODE_DIGITS);
主要部分はこんな感じです。
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // check for opened position OrderSymbol()==lSymbol()) // check for symbol
{
if(OrderType()==OP_BUY) // long position is opened
{
// should it be closed?if(MacdCurrent>0 && MacdCurrent<SignalCurrent && MacdPrevious>SignalPrevious &&
MacdCurrent>(MACDCloseLevel*point))
{
OrderClose(OrderTicket(),OrderLots(),bid,3,Violet); // close positionreturn(0); // exit
}
// check for trailing stopif(TrailingStop>0)
{
if(bid-OrderOpenPrice()>point*TrailingStop)
{
if(OrderStopLoss()<bid-point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),bid-point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else// go to short position
{
// should it be closed?if(MacdCurrent<0 && MacdCurrent>SignalCurrent &&
MacdPrevious<SignalPrevious && MathAbs(MacdCurrent)>(MACDCloseLevel*point))
{
OrderClose(OrderTicket(),OrderLots(),ask,3,Violet); // close positionreturn(0); // exit
}
// check for trailing stopif(TrailingStop>0)
{
if((OrderOpenPrice()-ask)>(point*TrailingStop))
{
if((OrderStopLoss()>(ask+point*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),ask+point*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
int SymbolOrdersTotal(string lSymbol)
{
int Res=0;
int total=OrdersTotal();
for (int i=0;i<total;i++)
{
if (OrderSelect(i, SELECT_BY_POS))
{
if (OrderSymbol()==lSymbol)
{
Res++;
}
}
}
return(Res);
}
// the end.
すみません、デリミタって何ですか?
フルストップとコンマです。まあ、リストの区切り文字がカンマとセミコロンで違うんですけどね。
正しいデリミターでインポートしてみて ください。または、地域設定を正しい区切り文字でやり直す。グッドラック
ありがとうございます!!!! そう、そこに点がある。 また、地域設定を正しい区切り文字に変更するにはどうすればよいのでしょうか?
ありがとうございます!!!
申し訳ありませんが、これらのデリミターに関する最後の投稿の一つへのリンクを教えてください !
ググったり、Yandexで調べたり、Home-number-numberフォーマットで数値フォーマットを適用してみたりしましたが、何も起こりませんでした。400ドットを手動でザパティに上書きしないでくださいパワフルでクレバーで優秀、でもダサい!
うっ、採掘しちゃった!?
ありがとうございます!!!
申し訳ありませんが、この仕切りに関する最後の投稿のリンクを教えてください !
簡単な質問ですが、複数の注文をクローズすることの本質がまだ理解できていません。)
コードの最初のバリエーションが2番目と同じように動作する理由を教えてください(最初のバリエーションでは、select_by_posを介してすべての4つのオープントレードが0番目のインデックスを介して閉じられたが、2番目では、1番目の2番目の3番目と4番目です)。
というのも、すべての例はいくつかの切り捨てられたものであり、マニュアルにはその使用例がまったくないからです)。
MQL4でのプログラミングのビデオチュートリアルが充実していますよ(笑)。
OPTION 1 (このバリエーションでは、4つの未決済注文はすべてテスト中にクローズされましたが、クローズ時に4つの注文はすべてインデックス0で選択されました。).
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);
。
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL)を実行。
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)
{
OrderClose(OrderTicket(),OrderLots(),Bid,5).となります。)
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
2nd OPTION (こちらも4トレード全てクローズしましたが、Index 1,2,3,4):
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);
。
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL)を実行。
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)
{
OrderClose(OrderTicket(),OrderLots(),Bid,5).となります。)
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
こんばんは、多通貨MACD Expert Advisorの件でご相談です。EAはポジションのオープン 基準に正しく従いますが、「条件付き」クローズは機能しません。確かにトレーリングストップを使うようになったが、正しい終値では休みにならない。
主要部分はこんな感じです。
そして、これは近いブロックです。エラーを発見するために助けてください
ディレクトリは存在するか?
はい、両方ともExpertフォルダに...。とテスターフォルダ内にあります。
が、スクリーンショットはまだうまくいきません。