conseiller expert - questions diverses

 

Bonjour,

J'ai essayé d'utiliser le code 'else {}' lorsque le marché est fermé, juste pour pouvoir jouer.

Mais deux sons mélangés, où est le problème, s'il vous plaît ?

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

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

Merci.

(L'anglais n'est pas ma langue maternelle)

 
timeout.wav sonnera pour tout sparam autre que "SELL GROUP".
 

Merci pour le commentaire.

J'ai essayé comme ci-dessous, maintenant le marché est fermé et 'timeout.wav' joue. Mais je ne suis pas sûr que 'ok.wav'sera joué pour les nouveaux ordres ou pas ?

Pouvez-vous me le faire savoir, s'il vous plaît ?

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

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

Merci.

 

Remplacez-la par la fonction d'impression et exécutez-la dans le testeur.

D'après ce que je peux voir, c'est correct.

Vous pourriez utiliser -1 à la place de <0 mais le résultat serait similaire.

 

OK ! Merci. Je vais l'essayer lundi.

//--- deuxième édition

Ça marche bien.

 
En fait, je veux ajouter la fonction 'OrderLots' à mon EA principal TradePanel, mais je dois d'abord la tester .
J'essaie donc de faire en sorte que lorsque je clique sur le bouton '-', le lot diminue, mais cela ne fonctionne pas pour moi.

Vous pouvez voir les codes de mon EA 'test'. J'ai besoin d'aide, s'il vous plaît.

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;
}

Merci !

 

//---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

Il ne s'agit pas de la fonction OnChartEvent.

Il s'agit

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:

Il ne s'agit pas de la fonction OnChartEvent.

Ceci est

J'ai encore besoin d'aide à propos de#5

---

Mais pourquoi je ne l'ai pas écrit ? Parce que ça prend plus d'espace...

En tout cas, merci.

 

cela semble être correct mais assurez-vous que le lottep lui-même ne descend pas en dessous de 0.01

 
Mais ça ne diminue pas que je ne l'ai pas vu.
 
Max Enrik:
Mais le lot ne diminue pas, je ne l'ai pas vu.

Où pensez-vous le voir ?

Print( "| Just You Clicked Button Lot Minues" );
Est-ce que ça s'imprime ?
Raison: