Old and defunct Holy Graily Bob

EA's inspired by nanningbob's work here, especially those based on his 240 Moving Average trend detection filter.
Locked
User avatar
milanese
TechAdmin
Posts: 3293
Joined: Wed Jan 09, 2013 9:02 am
Location: btr rdx, r8 +

Holy Graily Bob

Post by milanese »

@admcd24 please attach in future your picture to your post, I you do not know how look there --> http://www.stevehopwoodforex.com/phpBB3/kb.php?a=2
I corrected your post..

Cheers :)

Tommaso
Global Prime is the official SHF broker :yahoo:
Searching for Servers and Workstations with individual configuration?
Just PM
:smile: Click here to go to the BoardKnowledgeBase
NOTE: Cookies and JavaScript are required for the using the board, with full functionality
acedubai
Posts: 6
Joined: Fri Aug 01, 2014 10:34 am

Holy Graily Bob

Post by acedubai »

admcd24 » Mon Feb 09, 2015 12:51 pm wrote:Here are my results running 2 demos from 9pm Sunday to 7am today, 10hrs of trading. Trend and wave trades only, no instant execute, all pending, 2 trades per chart.

1hr TF Demo


4hr TF Demo
Did you put a stop loss? Was it any indicator based?
admcd24
Posts: 5
Joined: Sat Dec 06, 2014 7:07 pm

Holy Graily Bob

Post by admcd24 »

4 Hr -SL is 80 pips for trend trades, 150 pips TP. 60 pip SL for wave trades, 70 pip TP. GBPNZD is the only pair with range trades true, SL 50, TP 70.

1 Hr - SL 60, TP 80 for trend trades. SL 50, TP 60 for wave trades.

HGB v2t, HGI v 16.04.

Have fun :)
pierre
Posts: 4
Joined: Mon Dec 19, 2011 2:22 pm

Holy Graily Bob

Post by pierre »

admcd24 » Mon Feb 09, 2015 11:07 pm wrote:4 Hr -SL is 80 pips for trend trades, 150 pips TP. 60 pip SL for wave trades, 70 pip TP. GBPNZD is the only pair with range trades true, SL 50, TP 70.

1 Hr - SL 60, TP 80 for trend trades. SL 50, TP 60 for wave trades.

HGB v2t, HGI v 16.04.

Have fun :)

HGB v2t is the version in the first page ?
Thanks
spgandau
Trader
Posts: 50
Joined: Thu Sep 20, 2012 2:17 am

Holy Graily Bob

Post by spgandau »

SteveHopwood » Sun Feb 08, 2015 5:51 pm wrote:
So sorry. Much as I appreciate your efforts to help I have no guarantee that they would not merely involve me in endless hours of further work on stuff that has nothing to do with my original code. This has happened before and I am not in a hurry to replicate the exercise.

No, I am not a perfect coder. Yes, I am quite good at this stuff these days. I will sort stuff out as it appears on my platform. Until it does, I will ignore it. Do feel free to open your own 'bug-free' thread here; I will support it. Just make sure you are correct first, ok?

:xm:
Thanks for the response. Fair enough! I will be working with version 2t going forward and using HGI 16.03. When I have had a couple of weeks of error-free (or at least fewer error codes), I will get back to you about the possibility of a bug-free thread. In the meantime, thanks for the reply. Enjoy the week!
User avatar
SteveHopwood
Owner
Posts: 9904
Joined: Tue Nov 15, 2011 8:43 am
Location: Misterton - an insignificant village in England. Very pleasant to live in.

Holy Graily Bob

Post by SteveHopwood »

trendinator saved me some work this week. He found reasons why the wavy lines did not always result in trade closure and fixed the logic errors. :clap: :clap: :clap:

V 2u in post 1, or copy this over the top of bool LookForTradeClosure(int ticket) (line 3853):

Code: Select all

bool LookForTradeClosure(int ticket)
{
   //Close the trade if the close conditions are met.
   //Called from within CountOpenTrades(). Returns true if a close is needed and succeeds, so that COT can increment cc,
   //else returns false

   if(!OrderSelect(ticket, SELECT_BY_TICKET) ) return(true);
   if(OrderSelect(ticket, SELECT_BY_TICKET) && OrderCloseTime() > 0) return(true);

   bool CloseThisTrade=false;
   bool result = false;

   string LineName=TpPrefix+DoubleToStr(ticket,0);
   //Work with the lines on the chart that represent the hidden tp/sl
   double take=ObjectGet(LineName,OBJPROP_PRICE1);
   if(CloseEnough(take,0)) take=OrderTakeProfit();
   LineName=SlPrefix+DoubleToStr(ticket,0);
   double stop=ObjectGet(LineName,OBJPROP_PRICE1);
   if(CloseEnough(stop,0)) stop=OrderStopLoss();

   ///////////////////////////////////////////////////////////////////////////////////////////////////////////
   if(OrderType()==OP_BUY || OrderType() == OP_BUYSTOP)
   {
      //TP
      if(Bid>=take && !CloseEnough(take,0) && !CloseEnough(take,OrderTakeProfit())) CloseThisTrade=true;
      //SL
      if(Bid<=stop && !CloseEnough(stop,0) && !CloseEnough(stop,OrderStopLoss())) CloseThisTrade=true;

      //Trend opposite signal
      if (OrderComment() == TrendTradeComment || (OrderComment() ==TrendMultiTradeComment))
      {
         //Opposite arrow of any kind
         if (TrendCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenddownarrow || RangeArrowStatus == Rangedownarrow || RadArrowStatus == Raddownarrow)
               CloseThisTrade = true;
         
         //TMA Range signal
         if (TrendCloseOnOppositeTMA)
           // if (TmaStatus == Tmarangesignal)
           if (WaveStatus == Wavesell)
               CloseThisTrade = true; 
      }//if (OrderComment() == TrendTradeComment)
      
      //Range opposite signal
      if (OrderComment() == RangeTradeComment)
      {
         //Opposite arrow of any kind
         if (RangeCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenddownarrow || RangeArrowStatus == Rangedownarrow || RadArrowStatus == Raddownarrow)
               CloseThisTrade = true;
         
         //TMA Range signal
         if (RangeCloseOnOppositeTMA)
            if (WaveIsSellTrend)
               CloseThisTrade = true;
      }//if (OrderComment() == RangeTradeComment)
      
      //Rad opposite signal
      if (OrderComment() == RadTradeComment || (OrderComment() == RadMultiTradeComment))
      {
         //Opposite arrow of any kind
         if (RadCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenddownarrow || RangeArrowStatus == Rangedownarrow || RadArrowStatus == Raddownarrow)
               CloseThisTrade = true;
         
         //TMA Range signal
         if (RadCloseOnOppositeTMA)
           //if (TmaStatus == Tmarangesignal)
           if (WaveStatus == Wavesell)
               CloseThisTrade = true;
      }//if (OrderComment() == RadTradeComment)
      
      //Wave opposite signal
      if (OrderComment() == WaveTradeComment || (OrderComment() == WaveMultiTradeComment))
      {
         //Opposite arrow of any kind
         if (WaveCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenddownarrow || RadArrowStatus == Raddownarrow)
               CloseThisTrade = true;
         
         //TMA Range end or wave flip signal
         if (WaveCloseOnOppositeTMA)
            if (WaveStatus == Wavesell)
               CloseThisTrade = true;
      }//if (OrderComment() == WaveTradeComment)
      
      //TrendWave opposite signal
      if (OrderComment() == TrendWaveTradeComment || (OrderComment() ==TrendWaveMultiTradeComment))
      {
         //Opposite arrow of any kind
         if (TrendWaveCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenddownarrow || RadArrowStatus == Raddownarrow)
               CloseThisTrade = true;
         
         //TMA Range end or wave flip signal
         if (TrendWaveCloseOnOppositeTMA)
            if (WaveStatus == Wavesell)
               CloseThisTrade = true;
      }//if (OrderComment() == TrendWaveTradeComment)
      
      
   }//if (OrderType() == OP_BUY)

   ///////////////////////////////////////////////////////////////////////////////////////////////////////////
   if(OrderType()==OP_SELL || OrderType() == OP_SELLSTOP)
   {
      //TP
      if(Bid<=take && !CloseEnough(take,0) && !CloseEnough(take,OrderTakeProfit())) CloseThisTrade=true;
      //SL
      if(Bid>=stop && !CloseEnough(stop,0) && !CloseEnough(stop,OrderStopLoss())) CloseThisTrade=true;

      //Opposite arrow of any kind    
      if (OrderComment() == TrendTradeComment || (OrderComment() == TrendMultiTradeComment))
      {
         //Opposite trend arrow
         if (TrendCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenduparrow || RangeArrowStatus == Rangeuparrow || RadArrowStatus == Raduparrow)
               CloseThisTrade = true;

         //TMA Range signal
         if (TrendCloseOnOppositeTMA)
            //if (TmaStatus == Tmarangesignal)
            if (WaveStatus == Wavebuy)
               CloseThisTrade = true;
      }//if (OrderComment() == TrendTradeComment)
      
      //Range opposite signal      
      if (OrderComment() == RangeTradeComment)
      {
         //Opposite arrow of any kind
         if (RangeCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenduparrow || RangeArrowStatus == Rangeuparrow || RadArrowStatus == Raduparrow)
               CloseThisTrade = true;

         //TMA low
         if (RangeCloseOnOppositeTMA)
          // if (WaveIsBuyTrend)
          if (WaveStatus == Wavebuy)
               CloseThisTrade = true;
      }//if (OrderComment() == RangeTradeComment)
      
      //Rad opposite signal      
      if (OrderComment() == RadTradeComment || (OrderComment() ==RadMultiTradeComment))
      {
         //Opposite arrow of any kind
         if (RadCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenduparrow || RangeArrowStatus == Rangeuparrow || RadArrowStatus == Raduparrow)
               CloseThisTrade = true;

         //TMA range signal
         if (RadCloseOnOppositeTMA)
           // if (TmaStatus == Tmarangesignal)
           if (WaveStatus == Wavebuy)
               CloseThisTrade = true;
      }//if (OrderComment() == RangeTradeComment)

      //Wave opposite signal
      if (OrderComment() == WaveTradeComment || (OrderComment() == WaveMultiTradeComment))
      {
         //Opposite arrow of any kind
         if (WaveCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenduparrow || RadArrowStatus == Raduparrow)
               CloseThisTrade = true;
         
         //TMA Range end or wave flip signal
         if (WaveCloseOnOppositeTMA)
            if (WaveStatus == Wavebuy)
               CloseThisTrade = true;
      }//if (OrderComment() == WaveTradeComment)
         
      //TrendWave opposite signal
      if (OrderComment() == TrendWaveTradeComment || (OrderComment() == TrendWaveMultiTradeComment))
      {
         //Opposite arrow of any kind
         if (TrendWaveCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenduparrow || RadArrowStatus == Raduparrow)
               CloseThisTrade = true;
         
         //TMA Range end or wave flip signal
         if (TrendWaveCloseOnOppositeTMA)
            //if (TmaStatus == Tmarangesignal)
            if (WaveStatus == Wavebuy)
               CloseThisTrade = true;
      }//if (OrderComment() == TrendWaveTradeComment)

         
   }//if (OrderType() == OP_SELL)

   ///////////////////////////////////////////////////////////////////////////////////////////////////////////
   
   if (CloseThisTrade)
   {
      if (OrderType() < 2)//Market trades
         result = CloseOrder(ticket);
      else
         result = OrderDelete(ticket);
            
      //Actions when trade close succeeds
      if (result)
      {
         DeletePendingPriceLines();
         TicketNo = -1;//TicketNo is the most recently trade opened, so this might need editing in a multi-trade EA
         OpenTrades--;//Rather than OpenTrades = 0 to cater for multi-trade EA's
         return(true);//Makes CountOpenTrades increment cc to avoid missing out ccounting a trade
      }//if (result)
   
      //Actions when trade close fails
      if (!result)
      {
         return(false);//Do not increment cc
      }//if (!result)
   }//if (CloseThisTrade)
   
   //Got this far, so no trade closure
   return(false);//Do not increment cc

}//End bool LookForTradeClosure()
:xm:
Read the effing manual, ok?

Afterprime is the official SHF broker. Read about them at https://www.stevehopwoodforex.com/phpBB3/viewtopic.php?p=175790#p175790.

I still suffer from OCCD. Good thing, really.

Anyone here feeling generous? My paypal account is always in the market for a tiny donation. pianodoodler@hotmail.com is the account.

To see The Weekly Roundup of stuff you guys might have missed Click here

My special thanks to Thomas (tomele) for all the incredible work he does here.
trendinator
Trader
Posts: 156
Joined: Sat Dec 06, 2014 12:22 am

Holy Graily Bob

Post by trendinator »

SteveHopwood » Wed Feb 11, 2015 12:55 am wrote:trendinator saved me some work this week. He found reasons why the wavy lines did not always result in trade closure and fixed the logic errors. :clap: :clap: :clap:

V 2u in post 1, or copy this over the top of bool LookForTradeClosure(int ticket) (line 3853):

Code: Select all

bool LookForTradeClosure(int ticket)
{
   //Close the trade if the close conditions are met.
   //Called from within CountOpenTrades(). Returns true if a close is needed and succeeds, so that COT can increment cc,
   //else returns false

   if(!OrderSelect(ticket, SELECT_BY_TICKET) ) return(true);
   if(OrderSelect(ticket, SELECT_BY_TICKET) && OrderCloseTime() > 0) return(true);

   bool CloseThisTrade=false;
   bool result = false;

   string LineName=TpPrefix+DoubleToStr(ticket,0);
   //Work with the lines on the chart that represent the hidden tp/sl
   double take=ObjectGet(LineName,OBJPROP_PRICE1);
   if(CloseEnough(take,0)) take=OrderTakeProfit();
   LineName=SlPrefix+DoubleToStr(ticket,0);
   double stop=ObjectGet(LineName,OBJPROP_PRICE1);
   if(CloseEnough(stop,0)) stop=OrderStopLoss();

   ///////////////////////////////////////////////////////////////////////////////////////////////////////////
   if(OrderType()==OP_BUY || OrderType() == OP_BUYSTOP)
   {
      //TP
      if(Bid>=take && !CloseEnough(take,0) && !CloseEnough(take,OrderTakeProfit())) CloseThisTrade=true;
      //SL
      if(Bid<=stop && !CloseEnough(stop,0) && !CloseEnough(stop,OrderStopLoss())) CloseThisTrade=true;

      //Trend opposite signal
      if (OrderComment() == TrendTradeComment || (OrderComment() ==TrendMultiTradeComment))
      {
         //Opposite arrow of any kind
         if (TrendCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenddownarrow || RangeArrowStatus == Rangedownarrow || RadArrowStatus == Raddownarrow)
               CloseThisTrade = true;
         
         //TMA Range signal
         if (TrendCloseOnOppositeTMA)
           // if (TmaStatus == Tmarangesignal)
           if (WaveStatus == Wavesell)
               CloseThisTrade = true; 
      }//if (OrderComment() == TrendTradeComment)
      
      //Range opposite signal
      if (OrderComment() == RangeTradeComment)
      {
         //Opposite arrow of any kind
         if (RangeCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenddownarrow || RangeArrowStatus == Rangedownarrow || RadArrowStatus == Raddownarrow)
               CloseThisTrade = true;
         
         //TMA Range signal
         if (RangeCloseOnOppositeTMA)
            if (WaveIsSellTrend)
               CloseThisTrade = true;
      }//if (OrderComment() == RangeTradeComment)
      
      //Rad opposite signal
      if (OrderComment() == RadTradeComment || (OrderComment() == RadMultiTradeComment))
      {
         //Opposite arrow of any kind
         if (RadCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenddownarrow || RangeArrowStatus == Rangedownarrow || RadArrowStatus == Raddownarrow)
               CloseThisTrade = true;
         
         //TMA Range signal
         if (RadCloseOnOppositeTMA)
           //if (TmaStatus == Tmarangesignal)
           if (WaveStatus == Wavesell)
               CloseThisTrade = true;
      }//if (OrderComment() == RadTradeComment)
      
      //Wave opposite signal
      if (OrderComment() == WaveTradeComment || (OrderComment() == WaveMultiTradeComment))
      {
         //Opposite arrow of any kind
         if (WaveCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenddownarrow || RadArrowStatus == Raddownarrow)
               CloseThisTrade = true;
         
         //TMA Range end or wave flip signal
         if (WaveCloseOnOppositeTMA)
            if (WaveStatus == Wavesell)
               CloseThisTrade = true;
      }//if (OrderComment() == WaveTradeComment)
      
      //TrendWave opposite signal
      if (OrderComment() == TrendWaveTradeComment || (OrderComment() ==TrendWaveMultiTradeComment))
      {
         //Opposite arrow of any kind
         if (TrendWaveCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenddownarrow || RadArrowStatus == Raddownarrow)
               CloseThisTrade = true;
         
         //TMA Range end or wave flip signal
         if (TrendWaveCloseOnOppositeTMA)
            if (WaveStatus == Wavesell)
               CloseThisTrade = true;
      }//if (OrderComment() == TrendWaveTradeComment)
      
      
   }//if (OrderType() == OP_BUY)

   ///////////////////////////////////////////////////////////////////////////////////////////////////////////
   if(OrderType()==OP_SELL || OrderType() == OP_SELLSTOP)
   {
      //TP
      if(Bid<=take && !CloseEnough(take,0) && !CloseEnough(take,OrderTakeProfit())) CloseThisTrade=true;
      //SL
      if(Bid>=stop && !CloseEnough(stop,0) && !CloseEnough(stop,OrderStopLoss())) CloseThisTrade=true;

      //Opposite arrow of any kind    
      if (OrderComment() == TrendTradeComment || (OrderComment() == TrendMultiTradeComment))
      {
         //Opposite trend arrow
         if (TrendCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenduparrow || RangeArrowStatus == Rangeuparrow || RadArrowStatus == Raduparrow)
               CloseThisTrade = true;

         //TMA Range signal
         if (TrendCloseOnOppositeTMA)
            //if (TmaStatus == Tmarangesignal)
            if (WaveStatus == Wavebuy)
               CloseThisTrade = true;
      }//if (OrderComment() == TrendTradeComment)
      
      //Range opposite signal      
      if (OrderComment() == RangeTradeComment)
      {
         //Opposite arrow of any kind
         if (RangeCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenduparrow || RangeArrowStatus == Rangeuparrow || RadArrowStatus == Raduparrow)
               CloseThisTrade = true;

         //TMA low
         if (RangeCloseOnOppositeTMA)
          // if (WaveIsBuyTrend)
          if (WaveStatus == Wavebuy)
               CloseThisTrade = true;
      }//if (OrderComment() == RangeTradeComment)
      
      //Rad opposite signal      
      if (OrderComment() == RadTradeComment || (OrderComment() ==RadMultiTradeComment))
      {
         //Opposite arrow of any kind
         if (RadCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenduparrow || RangeArrowStatus == Rangeuparrow || RadArrowStatus == Raduparrow)
               CloseThisTrade = true;

         //TMA range signal
         if (RadCloseOnOppositeTMA)
           // if (TmaStatus == Tmarangesignal)
           if (WaveStatus == Wavebuy)
               CloseThisTrade = true;
      }//if (OrderComment() == RangeTradeComment)

      //Wave opposite signal
      if (OrderComment() == WaveTradeComment || (OrderComment() == WaveMultiTradeComment))
      {
         //Opposite arrow of any kind
         if (WaveCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenduparrow || RadArrowStatus == Raduparrow)
               CloseThisTrade = true;
         
         //TMA Range end or wave flip signal
         if (WaveCloseOnOppositeTMA)
            if (WaveStatus == Wavebuy)
               CloseThisTrade = true;
      }//if (OrderComment() == WaveTradeComment)
         
      //TrendWave opposite signal
      if (OrderComment() == TrendWaveTradeComment || (OrderComment() == TrendWaveMultiTradeComment))
      {
         //Opposite arrow of any kind
         if (TrendWaveCloseOnOppositeArrow)
            if (TrendArrowStatus == Trenduparrow || RadArrowStatus == Raduparrow)
               CloseThisTrade = true;
         
         //TMA Range end or wave flip signal
         if (TrendWaveCloseOnOppositeTMA)
            //if (TmaStatus == Tmarangesignal)
            if (WaveStatus == Wavebuy)
               CloseThisTrade = true;
      }//if (OrderComment() == TrendWaveTradeComment)

         
   }//if (OrderType() == OP_SELL)

   ///////////////////////////////////////////////////////////////////////////////////////////////////////////
   
   if (CloseThisTrade)
   {
      if (OrderType() < 2)//Market trades
         result = CloseOrder(ticket);
      else
         result = OrderDelete(ticket);
            
      //Actions when trade close succeeds
      if (result)
      {
         DeletePendingPriceLines();
         TicketNo = -1;//TicketNo is the most recently trade opened, so this might need editing in a multi-trade EA
         OpenTrades--;//Rather than OpenTrades = 0 to cater for multi-trade EA's
         return(true);//Makes CountOpenTrades increment cc to avoid missing out ccounting a trade
      }//if (result)
   
      //Actions when trade close fails
      if (!result)
      {
         return(false);//Do not increment cc
      }//if (!result)
   }//if (CloseThisTrade)
   
   //Got this far, so no trade closure
   return(false);//Do not increment cc

}//End bool LookForTradeClosure()
:xm:
actually credit to WhoKnows. he pointed it out.
User avatar
SteveHopwood
Owner
Posts: 9904
Joined: Tue Nov 15, 2011 8:43 am
Location: Misterton - an insignificant village in England. Very pleasant to live in.

Holy Graily Bob

Post by SteveHopwood »

Thanks WhoKnows. Much appreciated. :clap: :clap: :clap:

:xm:
Read the effing manual, ok?

Afterprime is the official SHF broker. Read about them at https://www.stevehopwoodforex.com/phpBB3/viewtopic.php?p=175790#p175790.

I still suffer from OCCD. Good thing, really.

Anyone here feeling generous? My paypal account is always in the market for a tiny donation. pianodoodler@hotmail.com is the account.

To see The Weekly Roundup of stuff you guys might have missed Click here

My special thanks to Thomas (tomele) for all the incredible work he does here.
User avatar
SteveHopwood
Owner
Posts: 9904
Joined: Tue Nov 15, 2011 8:43 am
Location: Misterton - an insignificant village in England. Very pleasant to live in.

Holy Graily Bob

Post by SteveHopwood »

V 2v is in post 1.

Prompted by a request from Bob, I finally got around to something I have intended doing for a while. There is a new input in the Wavy Line Trading inputs section - WaveTradeBlueToYellowOnly. When 'true', the default, this forces HGB to trade from the blue wavy line only, closing them again when a yellow wavy line appears.

Don't put this on your live accounts just yet. I thought this would be complicated but the alterations I have made took about 5 minutes.

Coders: I have changed the TMA constants at line 40 to reflect the wavy line colours. Then find the new input at line 288. There is an extra conditional at line 3588 that allows the yellow wavy lines to be used for trading rather than only for closing blue line trades. Is all this deceptively simple, do you think?

:xm:
Read the effing manual, ok?

Afterprime is the official SHF broker. Read about them at https://www.stevehopwoodforex.com/phpBB3/viewtopic.php?p=175790#p175790.

I still suffer from OCCD. Good thing, really.

Anyone here feeling generous? My paypal account is always in the market for a tiny donation. pianodoodler@hotmail.com is the account.

To see The Weekly Roundup of stuff you guys might have missed Click here

My special thanks to Thomas (tomele) for all the incredible work he does here.
acostafulano
Trader
Posts: 243
Joined: Tue Dec 06, 2011 3:40 pm

Holy Graily Bob

Post by acostafulano »

Steve, I think the following is missing from line 2297;

//Only allow 1 trade per candle
if (WaveMostRecentBuyTime >= iTime(Symbol(), TradingTimeFrame, 0) )
return(false);


And Line 2316:

//Only allow 1 trade per candle
if (WaveMostRecentSellTime >= iTime(Symbol(), TradingTimeFrame, 0) )
return(false);

Which may be causing some multiple Wave trades per candle

(Same for TrendWave)
Locked

Return to “Thingy Bob EA's”