0

if2番目のステートメントを実行できなかったので、私は完全に疲れ果てています。

私の当初のアイデアは、ボラティリティが 90 ~ 110 の範囲にある場合、プログラムは1 つの注文のみを送信するというものでした。そして、ボラティリティが 111 ~ 150 の範囲になるまで様子を見た後、2 番目の注文を送信します。

boolここで関数を使用しないと、範囲に達すると、プログラムは無数の注文を送信します。

誰か助けてくれませんか?

  if (  TodayMaxVolatilityPercentage >= 90.0
     && ( dayTrend  == 1 )
     && orderOpened == false
        )
  {
        Print( "Entered if clause" );
     // Print( "Today volatility percentage is: ", TodayMaxVolatilityPercentage + "%" );
     // ticket: Returns number of the ticket assigned to the order by the trade server or -1 if it fails.
        ticket = OrderSend( Symbol(),
                            OP_SELL,
                            0.3,
                            Bid,
                            3,
                             0 * MyPoint,
                            30 * MyPoint,
                            NULL,
                            MagicNumber,
                            0,
                            Blue
                            );
        Print( "Order is opened on", OrderOpenTime()+" at price: ", OrderOpenPrice() );
        Print( "trend number is ",dayTrend );

        if (  ticket > 0 )
        {
              if (  TakeProfit > 0 ) TheTakeProfit = Bid - TakeProfit * MyPoint;
              OrderSelect( ticket, SELECT_BY_TICKET ); // bool value
           /* OrderModify( OrderTicket(),
                           OrderOpenPrice(),
                           0,
                           NormalizeDouble( TheTakeProfit, Digits  ),
                           0,
                           Green
                           );
                         */
        }
        orderOpened = true;
        if (  TodayMaxVolatilityPercentage >= 110.0 ) orderOpened = false;              
  }
  if (  TodayMaxVolatilityPercentage >= 110.0
     && ( dayTrend  == 1 )
     && orderOpened == false
        )
  {
        Print( "Entered second if clause" );
     // ticket: Returns number of the ticket assigned to the order by the trade server or -1 if it fails.
        ticket = OrderSend(  Symbol(),
                             OP_SELL,
                             0.3,
                             Bid,
                             3,
                              0 * MyPoint,
                             30 * MyPoint,
                             NULL,
                             MagicNumber,
                             0,
                             Blue
                             );
        if (  ticket > 0 )
        {
              if (  TakeProfit > 0 ) TheTakeProfit = Bid - TakeProfit * MyPoint;
              OrderSelect( ticket, SELECT_BY_TICKET ); // bool value
           /* OrderModify( OrderTicket(),
                           OrderOpenPrice(),
                           0,
                           NormalizeDouble( TheTakeProfit, Digits ),
                           0,
                           Green
                           );
                       */
        }
        orderOpened = true;
     }
4

1 に答える 1