[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 46

 

SLによるCLOSEDポジションの 損失残高とOPENの利益トレードの合計残高を計算する関数をご存知の方、書き込みをお願いします。

損失残高の計算は、最後の最大入金額から開始する必要があります。

 

こんにちは!!!私の機能は、40の罵倒語で悪態をつくことです。明らかに、私はあまり多くを知らなかったし、それを作り上げる方法も忘れていました。

void  SELL { double Price1_SELL= (Bid-Dist*Point) ; double TP1_SELL=Price1_SELL-TP*Point; double SL1_SELL=Price1_SELL+SL*Point;
   
   double  Price2_SELL= (Price1_SELL -Dist*Point) ;double   TP2_SELL=Price2_SELL-TP*Point;double   SL2_SELL=Price2_SELL+SL*Point;
   
   double  Price3_SELL=(Price2_SELL -Dist*Point) ; double  TP3_SELL=Price3_SELL-TP*Point; double  SL3_SELL=Price3_SELL+SL*Point;
   
   double  Price4_SELL= (Price3_SELL -Dist*Point) ; double  TP4_SELL=Price4_SELL-TP*Point; double  SL4_SELL=Price4_SELL+SL*Point;
   
   double  Price5_SELL= (Price4_SELL -Dist*Point) ;double   TP5_SELL=Price5_SELL-TP*Point; double  SL5_SELL=Price5_SELL+SL*Point;}
 
Dimka-novitsek:

こんにちは!!!私の機能は、40の罵倒語で悪態をつくことです。明らかに、私はあまり多くを知らなかったし、それを作り上げる方法も忘れていました。


ディマン!おやすみなさい!休息が必要だ機能ではなく、あなたが書いた戯言のために...

 
だから、覚えていないと言ったんだ。完成させるつもりです。オーダーステップコンパイラーに問題があるのか?
 
Dimka-novitsek:
言っとくけど、覚えてないんだよ。書き込んでおきます。オーダーステップコンパイラは何が嫌いなのか?

F-iの 書き方が違うんです。教科書を読む。

 
ありがとうございます!!!読書です。
 
А.ホッチキスの針が足りなかった!?
 

こんにちは、私のExpert Advisorは、保留中のストップを置く。テスターで確認したところ、BUY_STOPの代わりにSELL_STOPだけが動作し、Order Send error/ Error openingBuy order:130という エラーが表示されました。

extern int TrailingStop=30;
//-----------------------------------------------------------------------------------------------+
for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELLSTOP &&   // check for opened position 
         OrderSymbol()==Symbol())  // check for symbol
        {
         if(OrderType()==OP_BUY)   // long position is opened
           {
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                     return(0);
                    }
              }
           }
         else // go to short position
           {
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
              }
           }
        }
     }

   
   return(0);

理由を探すのを手伝ってください

 

その理由は、論理性の欠如にある!

for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELLSTOP &&   // check for opened position 
         OrderSymbol()==Symbol())  // check for symbol
        {
         if(OrderType()==OP_BUY)   // long position is opened
           {
どう理解すればいいのか?CELLSTOPなら、BAIはどうなのか?
 
Twilight:

前回の1-2-3注文が負けていたことを知るにはどうしたらよいですか?

また、一般的に、最後の注文はどうすればわかるのでしょうか?


最近、私は、最後に負けた注文の場合、この注文の型を返す関数を書きました。つまり、fHistory() == 0なら最後の負け注文は買い、fHistory() == 1なら最後の負け注文は売りとなります。もし、利益が出ている注文を追跡したい場合は、次のように行の符号を変更します:if(OrderProfit() >0).

//+----------------------------------------------------------------------------+
// Прибыльно или убыточно закрылся последний ордер, и возврат типа такого ордера
int fHistory(){
  for(int i=OrdersHistoryTotal(); i >= 0; i--){              // Выборка в истории
     if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true){   // Если есть следующий в истории
        if(OrderMagicNumber()!=magN) continue;               // Ордера не нашего эксперта
        if(OrderProfit() < 0 ) return (OrderType());         // Если убыток по посл.ордеру вернем тип ордера
     }
  }
  return(-1);
}

変数magNはグローバルに宣言されたMagic orderである。