どのように動作する既存のコードにクローズおよびリバースを追加するのですか?
Results 1 to 2 of 2

Thread: どのように動作する既存のコードにクローズおよびリバースを追加するのですか?

  1. #1
    これはたくさんのコード行を含む長いポストになるでしょう...

    私は、複数の位置をとり、隠されたSLレベルとTPレベルで閉じる、意図したとおりに動作する既存のコードを持っています。

    私は、SLまたはTPがヒットする前にシグナルが生成された場合に、EAが閉じて後退することを可能にする既存のコード機能を追加したいと考えています。

    ここでうまくいく既存のコードです:

    挿入されたコード//---------------------------------------------- ----/取引パラメータ//---------------------------------------- ---------- RefreshRates(); {if((購入するカスタム取引信号){if((時間()== 0)(分()== 0))スリープ(60000); {fBuy1(); fBuy2(); fBuy3(); fBuy4(); fBuy5(); fBuy6(); }} if(売買のためのカスタム取引信号){if((Hour()== 0)(Minute()== 0))Sleep(60000); {fSell1(); fSell2(); fSell3(); fSell4(); fSell5(); fSell6(); }}}}/-------------------------------------------- ------/購入//--------------------------------------- ----------- void fBuy1(){int result = OrderSend(ST1、OP_BUY、Lots、Slippage、0,0、Open LONG Magic1、Magic1,0、Blue); OrderSelect(結果、SELECT_BY_TICKET、MODE_TRADES); DoubleToStr(OrderOpenPrice()、Digits)、、DoubleToStr(OrderStopLoss()、Digits)、TP:DoubleToStr(OrderTakeProfit()、Digits)、、OpenTrades :、OrdersTotal()、Close#91; 1#93 ;:、Close#91; 1#93;); 、SL: DoubleToStr(OrderStopLoss()、Digits) 、TP( )、( )、 : DoubleToStr(OrderTakeProfit()、Digits)); if(result == -1){int e = GetLastError();印刷(e); }} void fBuy2(){int result = OrderSend(ST1、OP_BUY、Lots、Ask、Slippage、0,0、Open LONG Magic2、Magic2,0、Blue); OrderSelect(結果、SELECT_BY_TICKET、MODE_TRADES); DoubleToStr(OrderOpenPrice()、Digits)、、DoubleToStr(OrderStopLoss()、Digits)、TP:DoubleToStr(OrderTakeProfit()、Digits)、、OpenTrades :、OrdersTotal()、Close#91; 1#93 ;:、Close#91; 1#93;); 、SL: DoubleToStr(OrderStopLoss()、Digits) 、TP( )、( )、 : DoubleToStr(OrderTakeProfit()、Digits)); if(result == -1){int e = GetLastError();印刷(e); }} ETC ...繰り返しコードはVoidfBuy6を介して続きます//------------------------------------- -------------/SELL/-------------------------------- ------------------ void fSell1(){int result = OrderSend(ST1、OP_SELL、Lots、Bid、Slippage、0,0、ショートSHORT Magic1、Magic1,0、赤); OrderSelect(結果、SELECT_BY_TICKET、MODE_TRADES); DoubleToStr(OrderOpenPrice()、Digits)、、OpenTrades(OrderOpenPrice()、Digits)、DoubleToStr(OrderOpenPrice()、Digits) :、OrdersTotal()、Close#91; 1#93 ;:、Close#91; 1#93;); 、SL: DoubleToStr(OrderStopLoss()、Digits) 、TP( )、( )、 : DoubleToStr(OrderTakeProfit()、Digits)); if(result == -1){int e = GetLastError();印刷(e); }} void fSell2(){int result = OrderSend(ST1、OP_SELL、Lots、Bid、Slippage、0,0、ショートSHORT Magic2、Magic2,0、Red); OrderSelect(結果、SELECT_BY_TICKET、MODE_TRADES); DoubleToStr(OrderOpenPrice()、Digits)、、OpenTrades(OrderOpenPrice()、Digits)、DoubleToStr(OrderOpenPrice()、Digits) :、OrdersTotal()、Close#91; 1#93 ;:、Close#91; 1#93;); 、SL: DoubleToStr(OrderStopLoss()、Digits) 、TP( )、( )、 : DoubleToStr(OrderTakeProfit()、Digits)); if(result == -1){int e = GetLastError();印刷(e); }} void fSell3(){int result = OrderSend(ST1、OP_SELL、Lots、Bid、Slippage、0,0、ショートSHORT Magic3、Magic3,0、Red); OrderSelect(結果、SELECT_BY_TICKET、MODE_TRADES); DoubleToStr(OrderOpenPrice()、Digits)、、OpenTrades(OrderOpenPrice()、Digits)、DoubleToStr(OrderOpenPrice()、Digits) :、OrdersTotal()、Close#91; 1#93 ;:、Close#91; 1#93;); 、SL: DoubleToStr(OrderStopLoss()、Digits) 、TP( )、( )、 : DoubleToStr(OrderTakeProfit()、Digits)); if(result == -1){int e = GetLastError();印刷(e); }} ETC ...繰り返しコードはVoidfSell6を介して続きます//------------------------------------- -------------/HIDDEN SL TP関数//----------------------------- --------------------- void hidden_​​stop_loss(){int totalorders = OrdersTotal(); for(int i = totalorders-1; igt; = 0; i--){OrderSelect(i、SELECT_BY_POS);ブール結果=偽; (OrderOpenPrice()/100)* StopLossLong1)、3(正規化されていない) ))結果= OrderClose(OrderTicket()、OrderLots()、Bid、50、Red); (OrderOpenPrice()/100)* StopLossShort1)、3))結果= OrderClose(OrderTicket()、OrderLots()、OrderLots ()、Ask、50、Red); (OrderOpenPrice()/100)* StopLossLong2)、3(正規化されていない) ))結果= OrderClose(OrderTicket()、OrderLots()、Bid、50、Red); (OrderOpenPrice()/100)* StopLossShort2)、3))結果= OrderClose(OrderTicket()、OrderLots()、OrderLots ()、Ask、50、Red); (OrderOpenPrice()/100)* StopLossLong3)、3(正規化されていない) ))結果= OrderClose(OrderTicket()、OrderLots()、Bid、50、Red); (OrderOpenPrice()/100)* StopLossShort3)、3))結果= OrderClose(OrderTicket()、OrderLots()、OrderLots ()、Ask、50、Red); } ETC ...リピートコードMagic6を介して継続}} return; } void hidden_​​take_profit(){int totalorders = OrdersTotal(); for(int i = totalorders-1; igt; = 0; i--){OrderSelect(i、SELECT_BY_POS);ブール結果=偽; {OrderOpenPrice()/(OrderOpenPrice()/100)* TakeProfitLong1)、3(正規化されていない) ))結果= OrderClose(OrderTicket()、OrderLots()、Bid、50、Red); OrderOpenPrice() - ((OrderOpenPrice()/100)* TakeProfitShort1)、3))result = OrderClose(OrderTicket()、OrderLots ()、Ask、50、Red); (OrderOpenPrice()/100)* TakeProfitLong2)、3(正規化されていない) ))結果= OrderClose(OrderTicket()、OrderLots()、Bid、50、Red); OrderOpenPrice() - ((OrderOpenPrice()/100)* TakeProfitShort2)、3))result = OrderClose(OrderTicket()、OrderLots ()、Ask、50、Red); (OrderOpenPrice()/100)* TakeProfitLong3)、3(正規化されていない) ))結果= OrderClose(OrderTicket()、OrderLots()、Bid、50、Red); OrderOpenPrice() - ((OrderOpenPrice()/100)* TakeProfitShort3)、3))result = OrderClose(OrderTicket()、OrderLots ()、Ask、50、Red); } ETC ...繰り返しコードはMagic6を介して続きます}} return; }
    上記の作品は素晴らしいですが、逆の信号と逆機能の場合は、近くに追加したいと思います...
    EAは複数のマジックナンバーを入力し、隠れたSLとTPを複数のマジックナンバーで終了しますが、SLまたはTPがヒットする前に反対の反対の信号が生成されれば、すべてのオープンポジションを終了したいので、新しい一連の反対の位置。

    これは私がこれまでに試したことですが、期待どおりに動作しません...他のアイデアですか?私は既存のフレームワークを使用したいと思います...私はここで何が間違っていますか?

    挿入されたコード{if((購入時のカスタム取引信号){if((時間()== 0)(分()== 0))スリープ(60000); {CloseSell(); lt- ;-これは論理的には...スリープ(10000)より下の追加論理;新しい位置を実行する前に既存の位置を閉じるバッファを与えるために追加されたものは、出口fBuy1()に影響するとは考えない。 fBuy2(); fBuy3(); fBuy4(); fBuy5(); fBuy6(); }など.../------------------------------------------- -------/fOpenPostionsの前に既存の関数を閉じる//---------------------------------- ---------------- void CloseSell(){int totalorders = OrdersTotal(); for(int i = totalorders-1; igt; = 0; i--){OrderSelect(i、SELECT_BY_POS);ブール結果=偽; {if(OrderType()== OP_SELL){結果= OrderClose(OrderTicket()、OrderLots()、Ask、50、Red); }}}} void CloseBuy(){int totalorders = OrdersTotal(); for(int i = totalorders-1; igt; = 0; i--){OrderSelect(i、SELECT_BY_POS);ブール結果=偽; {if(OrderType()== OP_BUY){結果= OrderClose(OrderTicket()、OrderLots()、Bid、50、Red); }}}/戻ります。 }
    私が思ったように、追加されたコードは機能しません。その他の回避策?

  2. #2
    もしあなたが新しいコードが何をしているのか、そうでなければ何かを言ったら助けになるでしょう....また、最後のエラーとチケット#とオーダータイプをクローズループで印刷して、何が起こっているのかを見ることができます。推測

投稿権限

  • Youma新しいスレッドを投稿しない
  • Youmaは返信しない
  • あなたは添付ファイルを投稿しないかもしれない
  • Youma Notedityourposts
  •  
  • スマイリーはオンです
  • スマイリーはオンです
  • [IMG]コードがオンです
  • [VIDEO]コードがオンです
  • HTMLコードがオフです
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.