こんにちは、みんな、
私はMQL4をコーディングすることを学んでいます
、私は一度に複数の位置を閉じるためにどのような機能を使用することができます。そのためのEAがあれば、誰かがそれを投稿することができれば私は感謝します。
ここに私が書いたスクリプトがあります、問題はそれが2つ以上のポジションがあるならそれが働かないということです、それはエラー#129を返します
==================================================== ======
エクスターナルダブルR./投資収益率(%)
エクスターナルダブルL./投資による損失(%)
int start()
{
//各タイプの注文のチケットが含まれる変数
//暗記
int BuyStopOrder = 0、SellStopOrder = 0、BuyOrder = 0、
SellOrder = 0;
int _GetLastError = 0、_OrdersTotal = OrdersTotal();
//すべてのオープンポジションを検索して記憶する
//型はすでに開かれています
(int z = _OrdersTotal - 1; z gt; = 0; z - )
{
//ポジション検索時にエラーが発生した場合
//次へ
if(!OrderSelect(z、SELECT_BY_POS))
{
_GetLastError = GetLastError();
Print(OrderSelect(、z、、SELECT_BY_POS) - エラー番号、
_GetLastError);
持続する;
}
//現在のシンボルに対してポジションがオープンされていない場合は、スキップします
if(OrderSymbol()!= Symbol())を続けます。
//ポジションタイプに応じて、の値を変更します
//変数:
switch(OrderType())
{
ケースOP_BUY:BuyOrder = OrderTicket();ブレーク;
ケースOP_SELL:SellOrder = OrderTicket();ブレーク;
ケースOP_BUYSTOP:BuyStopOrder = OrderTicket();ブレーク;
ケースOP_SELLSTOP:SellStopOrder = OrderTicket();ブレーク;
}
}
if((アカウントエクイティ()/アカウントバランス() - 1)×100gt; = R.
{
if(SellStopOrder gt; 0)
{
if(!OrderDelete(SellStopOrder))
{
アラート(OrderDeleteエラー番号、GetLastError());
戻り値(-1)。
}
}
if(BuyStopOrder gt; 0)
{
if(!OrderDelete(BuyStopOrder))
{
アラート(OrderDeleteエラー番号、GetLastError());
戻り値(-1)。
}
}
if(BuyOrder gt; 0)
{
if(!OrderClose(OrderTicket()、OrderLots()、Bid、3、Blue))
{
アラート(OrderCloseエラー番号、GetLastError());
戻り値(-1)。
}
}
if(SellOrder gt; 0)
{
if(!OrderClose(OrderTicket()、OrderLots()、Bid、3、Blue))
{
アラート(OrderCloseエラー番号、GetLastError());
戻り値(-1)。
}
}
}
}
==================================================== ======
前もって感謝します
ハッピートレーディング