トレーリングストップとトレーリングプロフィット - ページ 7

 
Arav007:

ここにあります。

採用情報


より良い方法は、https://www.mql5.com/en/forum/150195/page6#924239 を参照して ください。
 

私もそれを見て、テストしました。

また、このEAを完成させるために必要な「ストップロス」と「最小利益確定」の問題も解決していません。

 

これはあなたのコードの始まりです。

if(OrdersTotal()>0)
   {//----------------------------------------------------------------->1
   for(int cnt=OrdersTotal()-1;cnt>=0;cnt--)
     {//--------------------------------------------------------------->2    
     if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue;
     if(OrderSymbol() == Symbol() && OrderMagicNumber() ==Magic_Number_1)
       {
       if (OrderProfit()<0.03)
         {
         if(OrderType()==OP_BUY)
           {  
           bOrderClosed = closeBuyOrder(iOrderType_Buy); //Closing Buy order    
           if(bOrderClosed)
             {
             Print("Buy Order 1 Closed");
             }
            else
               {
               iLastError = GetLastError();                                       
               }//end else if(bOrderClosed)
           }//end if(OrderType()==OP_BUY)
       if(OrderType()==OP_SELL)
          {  
          bOrderClosed = closeSellOrder(iOrderType_Sell); //Closing Sell order
          if(bOrderClosed)
            {
            Print("Sell Order 1 Closed");
            }
           else
              {
              iLastError = GetLastError();
              }//end else if(bOrderClosed)
          }//end if(OrderType()==OP_SELL)
        }// if (OrderProfit()<0.03)                          
      }// if(OrderSymbol() == Symbol() && OrderMagicNumber() ==Magic_Number_1)

このコードは何をしているのか?

なぜこんなことをするのか......そしてそれはいつ起こるのか?

このコードで何をしたいのか

エラーが発生した場合、iLastError を知っていますか?

 

ohh, Thanks.私の目を開かせてくれました。

実行されるたびに未決済の注文を全て決済しているのは、Conditionが

if(OrderProfit()<0.03 )) です。

という条件なので、開いたばかりの注文は当然全部閉じます。

私の目的は、ある取引が0.1ドルの利益を得た後、その取引が元に戻る場合、最小の利益である0.01ドルで決済されることだ。

おそらく、'OrderProfit()'関数では 不可能だろう。

トレーリングストップを使うしかないですね。

 
Arav007:

私もそれを見て、テストしました。

また、このEAを完成させるために必要な「ストップロス」と「最小利益確定」の問題が解決されていません。


何をコード化したかったのでしょうか?

ストップロスにどんな問題があるのですか?

ブレイクイーブンでは、最初の2つのトレードで最小限のプロフィットロックがありますね。

 
deVries:


何をコード化したかったのですか?

ストップロスで何が問題なのか

ブレークイーブンでは、最初の2回の取引で、希望するような最小限の利益ロックしかできない・・・・・・と思いましたが


ご容赦ください。

パラメータを正しく設定できなかったんです。

はい、これです。ありがとうございました。

SLはFirst Two tradesとTPのために移動しました。

今はこの設定を使っています。

extern double BreakEven =5;

extern double BreakEvenSL =1;

extern double TrailingStop =10; extern double BreakEvenSL =1; extern double TrailingStop =10;

extern double TrailingStep =3;

概念を明確にするためです。

もし相場が始値から 5ピップ利益で動いたら、ストップロスは1ピップの利益で設定されます。そしてトレーリングストップの機能が開始されます。

トレーリングストップを10に設定すると、もし相場が始値から10ピップ利益で動いた場合、ストップロスは3ピップ利益になりますよね?

そして、さらに10pips、つまり合計20pipsになったら、SLは6pipsの利益になるのですね?

ご挨拶