советник - разные вопросы

 

Здравствуйте,

Я пытаюсь использовать код 'else {}', когда рынок закрывается, просто он может играть.

Но два звука смешиваются, где проблема, пожалуйста?

// SELL
if( sparam == "SELL GROUP" )
{
    ObjectSetInteger ( 0, "SELL GROUP", OBJPROP_STATE, false );
    _ticket = Order  (    "SELL GROUP"                       );

    PlaySound ( "ok.wav" );
}
else
{
    PlaySound( "timeout.wav" );
}

Best.

(Английский не является моим родным языком)

 
timeout.wav будет звучать при любом/каждом спараме, кроме "SELL GROUP".
 

Спасибо за комментарий.

Я попробовал, как показано ниже, теперь рынок закрыт, играет 'timeout.wav'. Но я не уверен, что 'ok.wav' будет играть для нового ордера или нет?

Не могли бы вы дать мне знать, пожалуйста?

int _ticket = 0;
if ( expression )
{
...  
}   //---if Close

if ( _ticket > 0 )
{
    PlaySound( "ok" );
}   //---if Close
//---
if ( _ticket < 0 )
{
    PlaySound( "timeout.wav" );
}   //---if Close

Спасибо.

 

Замените на функцию печати и запустите ее в тестере.

Из того, что я вижу, все правильно.

Вы можете использовать -1 вместо <0, но результат будет аналогичным.

 

ХОРОШО! Спасибо. Я попробую это сделать в понедельник.

//--- второй раз редактировалось

Работает хорошо.

 
На самом деле я хочу добавить функцию 'OrderLots' в мой основной советник TradePanel, но прежде мне нужно ее протестировать .
Поэтому я пытаюсь сделать так, чтобы при нажатии кнопки '-' лот уменьшался, но у меня это не работает.

Вы можете увидеть коды моего "тестового" советника. Мне нужна помощь, пожалуйста.

int             i                                                ,
                int_example         = 1                          ;
double          _lotStep            = 0.01                       ,
                _lot                = 0.09                       ;
string          _prefix             = "| TP -"                   ,
                _edtLot             = _prefix + " Lot"           ,
                _btnLotMinus        = _prefix + " Button Minus"  ;

//---init
_PanelDraw();

//---OnChartEvent
if ( sparam == _btnLotMinus )
{
    ObjectSetInteger( 0, _btnLotMinus, OBJPROP_STATE, false );
    _lot = _lot - _lotStep;
    if ( _lot <= 0 )
         _lot = _lotStep;

    Print( "| Just You Clicked Button Lot Minues" );
    return;
}   //---if Close

//---
void _PanelDraw()
{
//---Button
    ObjectCreate    ( 0, _btnLotMinus, OBJ_BUTTON         , 0, 0, 0   );
    ObjectSetInteger( 0, _btnLotMinus, OBJPROP_XDISTANCE  , 16        );
    ObjectSetInteger( 0, _btnLotMinus, OBJPROP_YDISTANCE  , 16        );
    ObjectSetInteger( 0, _btnLotMinus, OBJPROP_XSIZE      , 80        );
    ObjectSetInteger( 0, _btnLotMinus, OBJPROP_YSIZE      , 32        );
    ObjectSetString ( 0, _btnLotMinus, OBJPROP_TEXT       , "-"       );
    ObjectSetInteger( 0, _btnLotMinus, OBJPROP_FONTSIZE   , 20        );
    ObjectSetInteger( 0, _btnLotMinus, OBJPROP_STATE      , false     );
    ObjectSetInteger( 0, _btnLotMinus, OBJPROP_SELECTABLE , false     );
    Print( "I am Minus" );

//---Lot
    ObjectCreate    ( 0, _edtLot,      OBJ_EDIT           , 0, 0, 0   );
    ObjectSetInteger( 0, _edtLot,      OBJPROP_COLOR      , Red       );
    ObjectSetInteger( 0, _edtLot,      OBJPROP_XDISTANCE  , 16        );
    ObjectSetInteger( 0, _edtLot,      OBJPROP_YDISTANCE  , 56        );
    ObjectSetInteger( 0, _edtLot,      OBJPROP_XSIZE      , 80        );
    ObjectSetInteger( 0, _edtLot,      OBJPROP_YSIZE      , 32        );
    ObjectSetString ( 0, _edtLot,      OBJPROP_TEXT       , "Lot: " + DoubleToStr( _lot, 2 ) );
    ObjectSetInteger( 0, _edtLot,      OBJPROP_FONTSIZE   , 12        );
    ObjectSetInteger( 0, _edtLot,      OBJPROP_STATE      , true      );
    ObjectSetInteger( 0, _edtLot,      OBJPROP_READONLY   , true      );
    Print( "I am Minus" );
    //---
    return;
}

Спасибо!

 

//---OnChartEvent
if ( sparam == _btnLotMinus )
{
    ObjectSetInteger( 0, _btnLotMinus, OBJPROP_STATE, false );
    _lot = _lot - _lotStep;
    if ( _lot <= 0 )
         _lot = _lotStep;

    Print( "| Just You Clicked Button Lot Minues" );
    return;
}   //---if Close

Это не функция OnChartEvent

Это

void OnChartEvent(const int id,         // Event ID
                  const long& lparam,   // Parameter of type long event
                  const double& dparam, // Parameter of type double event
                  const string& sparam  // Parameter of type string events
  );

   if(id==CHARTEVENT_OBJECT_CLICK)

     {

     //

     }


 

Keith Watford:

Это не функция OnChartEvent

Это

Мне все еще нужна помощь по поводу#5

---

Но почему я не написал это? Потому что это занимает больше места...

В любом случае спасибо.

 

кажется, что все в порядке, но убедитесь, что сам lotstep не опускается ниже 0,01

 
Но количество не уменьшает того, что я этого не видел.
 
Max Enrik:
Но количество не уменьшается, я его не видел.

Где вы ожидаете его увидеть?

Print( "| Just You Clicked Button Lot Minues" );
Это печатается?