[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 360

 
Vitya >> :

ロックということであれば、わかっていない---私は主張していない、使い方がわからないのです。

不採算ポジションの一部をクローズする?

自分では使い方がわからない。

https://www.mql5.com/ru/code/9185

 
costy_ >> :

手動テスターは、答えはそこにしかない(またはデモで)シミュレータへのリンクはこちらです。

https://www.mql5.com/ru/code/9185

その答えは、数学か実際の取引経験の中にしかないと思うのです。どちらも持っていないのは残念です。リンクありがとうございます。

 
Vitya >> :

その答えは、数学か実際の取引経験の中でしか見つからないと思うのです。どれも持っていないのは勿体ないと思います。リンクありがとうございます。

数学がわからないのにトレードができない人は、勉強すればいずれ成功しますよ

CCI(55)とMA(55)をM5のGBPJPYでフィボナッチ 、その中で自分の期間(今日私は67)を見つけて手動取引を開始することをお勧めします。

そうそう、忘れていたのですが、取引時間も非常に重要です。つまり、通貨がメジャーな地域(アメリカも...)の取引セッションの開始時間です。

 
このモジュールですべてが正しいかどうか、どなたか確認してください。
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// MOVE SL TO BE

if( Mode_Close_Part_Set_BE_1==true   &&   OrdersTotal()>0) {

      for(int cnt_BE=0; cnt_BE<OrdersTotal(); cnt_BE++) {
         OrderSelect( cnt_BE, SELECT_BY_POS);         // the next line will check for ONLY market trades, not entry orders
         Ticket = OrderTicket();

// BUY -----------------------------------------------------------------------------------------
         if(OrderType()==OP_BUY   &&   OrderSymbol()==Symbol()   &&   OrderStopLoss()<OrderOpenPrice()   &&   Ask>=(OrderOpenPrice()+ MathAbs(OrderOpenPrice()-OrderStopLoss())) ) {
                  double SL_Original_Buy   = OrderStopLoss();

                  bool AnsHalfModifySL_Buy = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Green);
                  Sleep( Slippage*3000);

                  if( AnsHalfModifySL_Buy==true) {
                     BreakEvenStatus_Buy   = true;
                     Alert ("SL Buy which was ", SL_Original_Buy, " set to BreakEven at ", OrderStopLoss(), " for ", Symbol());
                  }

                  if( Fun_Error(GetLastError())==1) {       // Обработка ошибок
                     continue;                             // Повторная попытка
                  }

                  return;                                // Выход из start()
         } // if(OrderType() == OP_BUY  &&  OrderSymbol()==Symbol() )
// EO BUY -----------------------------------------------------------------------------------------


// SELL -----------------------------------------------------------------------------------------
         if(OrderType()==OP_SELL  &&  OrderSymbol()==Symbol()   &&   OrderStopLoss()>OrderOpenPrice()   &&   Bid<=(OrderOpenPrice()-MathAbs(OrderStopLoss()-OrderOpenPrice())) ) {
                  double SL_Original_Sell   = OrderStopLoss();

                  bool AnsHalfModifySL_Sell = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Blue);
                  Sleep( Slippage*3000);

                  if( AnsHalfModifySL_Sell==true) {
                     BreakEvenStatus_Sell   = true;
                     Alert ("SL Sell which was ", SL_Original_Sell, " set to BreakEven at ", OrderStopLoss(), " for ", Symbol());
                  }

                  if( Fun_Error(GetLastError())==1) {       // Обработка ошибок
                     continue;                             // Повторная попытка
                  }

                  return;                                // Выход из start()
         } // if(OrderType() == OP_SELL  &&  OrderSymbol()==Symbol() )
// EO SELL -----------------------------------------------------------------------------------------

      } // for(cnt_BE=0; cnt_BE<OrdersTotal(); cnt_BE++)
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


すべてが正常に動作しているように見えますが、呼び出しのたびに「エラー0が発生しました」というメッセージが表示されるため、質問しています(損益分岐点まで行く)。





 
chief2000 писал(а)>>
このモジュールですべてが正しいかどうか、どなたか確認してください。

すべて正常に動作しているように見えますが、呼び出しのたびに「エラー0が発生しました」というメッセージが表示されるため、質問させていただきました(ブレークイーブンに向かっています)。

旧価格での注文を変更しようとした可能性が高い。新旧のオーダーパラメーターを比較する必要があります。そして、必要な場合にのみ修正されるべきです。

 

エラー0は、OrderModifyが実際には何も変更せず、価格を古いものに変更した場合に発生します。

 

以下はその例です。




SL=1.1596で注文を開始した。その後、SLが1.1570に変わり、最後にこのエラーが出ました。

条件があるので、2巡目はできない。

... OrderStopLoss()>OrderOpenPrice() ...


- それは何でしょう?





 
chief2000 писал(а)>>

以下はその例です。

SL=1.1596で注文を開始しました。その後、SLが1.1570に変わり、最後にこのエラーが出ました。

条件があるので、2巡目はできない。

- それは何でしょう?

それは可能です。論理的な条件をもう一度確認する、ただし午前中だけ。

ロジックの中身は、それを可能にしているものです。

 
Vinin >> :

そうかもしれませんね。論理的な条件をもう一度確認する、ただし午前中だけ。

ロジックに組み込まれているものは、それを可能にします。

確認します。>> ありがとうございました

 

ヘルプ

int start()  {
//----
Alert(Minute(),Hour());
intMinute( )
プログラム開始時に最後に確認されたサーバ時刻の現在の分(0,1,2,...59)を返します(この値はプログラム実行中に変更されません)

注:テストでは、最後の既知のサーバー時刻を シミュレートしています。

しかし、インジケータでテストする場合、Last known server timeはシミュレートされません。