Guppy MA

 

Hi All,

When trying to code Guppy I'm getting un-expected trades, any ideas why does those trades happen?

The first sell order is correct, but second sell order is unexpected.

Open order code is below: 

 

 

   ENUM_ORDER_TYPE signal=WRONG_VALUE;


   if(dema3Buffer[0]<dema5Buffer[0]<dema8Buffer[0]<dema10Buffer[0]<dema12Buffer[0]<dema15Buffer[0]<dema30Buffer[0]<dema35Buffer[0]<dema40Buffer[0]<dema45Buffer[0]<dema50Buffer[0]<dema60Buffer[0])

      signal=ORDER_TYPE_SELL;    // sell conditions

   else

     {

      if(dema3Buffer[0]>dema5Buffer[0]>dema8Buffer[0]>dema10Buffer[0]>dema12Buffer[0]>dema15Buffer[0]>dema30Buffer[0]>dema35Buffer[0]>dema40Buffer[0]>dema45Buffer[0]>dema50Buffer[0]>dema60Buffer[0])

         signal=ORDER_TYPE_BUY;  // buy conditions

     }

//--- additional checking

   if(signal!=WRONG_VALUE)

      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))

         if(Bars(_Symbol,_Period)>100)

           {

            CTrade trade;

            trade.PositionOpen(_Symbol,signal,PositionSize,

                               SymbolInfoDouble(_Symbol,signal==ORDER_TYPE_SELL ? SYMBOL_BID:SYMBOL_ASK),

                               0,0);

           } 

 

testing screen 

Files:
testing.JPG  198 kb
 

chera: if(dema3Buffer[0] < dema5Buffer[0] < dema8Buffer[0] < dema10Buffer[0] < dema12Buffer[0] < dema15Buffer[0] < dema30Buffer[0] < dema35Buffer[0] < dema40Buffer[0]

true = 1 and false = 0 so you get
if( 3 < 2 < 1 )
if( false < 1 )
if(     0 < 1 )
if(     true  )
if( 3 > 2 > 1 )
if(  true > 1 )
if(     1 > 1 )
if(     false )