stevehopwoodforex.com
https://www.stevehopwoodforex.com/phpBB3/
Print view

Awesome - original version
https://www.stevehopwoodforex.com/phpBB3/viewtopic.php?t=5232
Page 2 of 46
Author:  Zennor [ Sun Jul 30, 2017 1:02 pm ]
Post subject:  Awesome

sugardaddy » Sun Jul 30, 2017 1:08 pm wrote:Thanks these first tests looks great and very promising!

Just wondering regarding those trade examples. Did you don't use any
safety stoploss at all?


thanks,

Pete
Ooops.. Get your crash helmet on buddy, me thinks you are going to need it.. :shock:

Great job Steve and TJF some really neat ideas here.. Really looking forward to testing the basket set as this is what I'm doing on POS with 16% profit in 5.5 trading days...
Author:  luke [ Sun Jul 30, 2017 1:09 pm ]
Post subject:  Awesome

sugardaddy » Sun Jul 30, 2017 1:08 pm wrote: Just wondering regarding those trade examples. Did you don't use any
safety stoploss at all?
Pete - rookie mistake dude. Steve doesn't recommend a stop loss (see user manual). Also this is using Peaky which Steve has mentioned in that user manual that trading with a stop kills the method.

There are other things that can be done to handle trades going against you. Steve has coded a recovery function in the EA or you could hedge or take manual control or trade a smaller initial size.
Author:  TraderJoeForex [ Sun Jul 30, 2017 5:33 pm ]
Post subject:  Awesome

Hey all.. I would suggest demoing the 3 set files in post 1 as a starting point this week. They will give you a feel for the different ways in which Awesome can trade.

The combination of highertimeframe Peak HiLo and D1 Superslope provide a very solid indication of the long term direction in which price is heading. However there will also be deep pullbacks against this direction since we are looking at D1 and above. These pullbacks provide the opportunities for Awesome to average into a position in any number of ways.

Steve has outdone himself yet again with this bot! There is so much flexibility built in so I look forwards to seeing lots of test results so we can learn from our collective data. I would suggest just changing one setting at a time from the initial set files to evaluate what does or does not offer an advantage. Once you have evaluated this for yourself you will then have something valuable to post which may help the rest of us.

Have fun this week :smile:
Author:  SteveHopwood [ Sun Jul 30, 2017 7:07 pm ]
Post subject:  Awesome

Sorry folks. I assumed the code was fine because Awesome worked so well last week, but Gary has just sent me a pm. He is working on a FIFO-compliant version and spotted some bloops - some missing array initialising and use of 'Bid' instead of 'bid'. Fixed in post 1. Thanks Gary. :clap: :clap: :clap: :clap: :clap:

Easy for the DIYers. Do a search for:
int tfTotal = 0;//The number of time frames being traded.

Then copy this over the top of the four code blocks of code that follow:

Code: Select all

   //Trade1
   if (TradeTF1)
   {
      TimeFrames[tfTotal] = Trade1TimeFrame;
      TradeBuffers[tfTotal] = Trade1BufferPips;
      MagicNumbers[tfTotal] = Trade1MagicNumber;
      TradeComments[tfTotal] = Trade1TradeComment;
      TakeProfits[tfTotal] = Trade1TakeProfitPips;
      StopLosses[tfTotal] = Trade1StopLossPips;
      PositiveSwapOnly[tfTotal] = Trade1PositiveSwapTradesOnly;
      TradeLots[tfTotal] = Trade1Lot;
      TradeLotsPerDollop[tfTotal] = Trade1LotsPerDollopOfCash;
      TradeSizeOfDollop[tfTotal] = Trade1SizeOfDollop;
      TradeUseBalance[tfTotal] = Trade1UseBalance;
      TradeUseEquity[tfTotal] = Trade1UseEquity;
      ImmediateMarketTrades[tfTotal] = Trade1ImmediateMarketOrder;
      UseRecovery[tfTotal] = Trade1UseRecovery;
      TradesToConstituteRecovery[tfTotal] = Trade1TradesToConstituteRecovery;
      RecoveryProfitPips[tfTotal] = Trade1RecoveryProfitPips;
      TradeAsBasket[tfTotal] = Trade1AsBasket;
      TradeBasketCashTarget[tfTotal] = Trade1BasketCashTarget;
      TradeBasketCashPercentageTarget[tfTotal] = Trade1BasketCashPercentageTarget;
      UseBreakEven[tfTotal] = Trade1UseBreakEven;
      BreakEvenPips[tfTotal] = Trade1BreakEvenPips;
      BreakEvenProfitPips[tfTotal] = Trade1BreakEvenProfitPips;
      UseJumpingStop[tfTotal] = Trade1UseJumpingStop;
      JumpingStopPips[tfTotal] = Trade1JumpingStopPips;
      JumpAfterBreakEvenOnly[tfTotal] = Trade1JumpAfterBreakevenOnly;
            
      tfTotal++;
   }//if (TradeTF1)
   


   if (TradeTF2)
   {
      TimeFrames[tfTotal] = Trade2TimeFrame;
      TradeBuffers[tfTotal] = Trade2BufferPips;
      MagicNumbers[tfTotal] = Trade2MagicNumber;
      TradeComments[tfTotal] = Trade2TradeComment;
      TakeProfits[tfTotal] = Trade2TakeProfitPips;
      StopLosses[tfTotal] = Trade2StopLossPips;
      PositiveSwapOnly[tfTotal] = Trade2PositiveSwapTradesOnly;
      TradeLots[tfTotal] = Trade2Lot;
      TradeLotsPerDollop[tfTotal] = Trade2LotsPerDollopOfCash;
      TradeSizeOfDollop[tfTotal] = Trade2SizeOfDollop;
      TradeUseBalance[tfTotal] = Trade2UseBalance;
      TradeUseEquity[tfTotal] = Trade2UseEquity;
      ImmediateMarketTrades[tfTotal] = Trade2ImmediateMarketOrder;
      UseRecovery[tfTotal] = Trade2UseRecovery;
      TradesToConstituteRecovery[tfTotal] = Trade2TradesToConstituteRecovery;
      RecoveryProfitPips[tfTotal] = Trade2RecoveryProfitPips;
      TradeAsBasket[tfTotal] = Trade2AsBasket;
      TradeBasketCashTarget[tfTotal] = Trade2BasketCashTarget;
      TradeBasketCashPercentageTarget[tfTotal] = Trade2BasketCashPercentageTarget;
      UseBreakEven[tfTotal] = Trade2UseBreakEven;
      BreakEvenPips[tfTotal] = Trade2BreakEvenPips;
      BreakEvenProfitPips[tfTotal] = Trade2BreakEvenProfitPips;
      UseJumpingStop[tfTotal] = Trade2UseJumpingStop;
      JumpingStopPips[tfTotal] = Trade2JumpingStopPips;
      JumpAfterBreakEvenOnly[tfTotal] = Trade2JumpAfterBreakevenOnly;

      tfTotal++;
   }//if (TradeTF2)
   
   //Trade3
   if (TradeTF3)
   {
      TimeFrames[tfTotal] = Trade3TimeFrame;
      TradeBuffers[tfTotal] = Trade3BufferPips;
      MagicNumbers[tfTotal] = Trade3MagicNumber;
      TradeComments[tfTotal] = Trade3TradeComment;
      TakeProfits[tfTotal] = Trade3TakeProfitPips;
      StopLosses[tfTotal] = Trade3StopLossPips;
      PositiveSwapOnly[tfTotal] = Trade3PositiveSwapTradesOnly;
      TradeLots[tfTotal] = Trade3Lot;
      TradeLotsPerDollop[tfTotal] = Trade3LotsPerDollopOfCash;
      TradeSizeOfDollop[tfTotal] = Trade3SizeOfDollop;
      TradeUseBalance[tfTotal] = Trade3UseBalance;
      TradeUseEquity[tfTotal] = Trade3UseEquity;
      ImmediateMarketTrades[tfTotal] = Trade3ImmediateMarketOrder;
      UseRecovery[tfTotal] = Trade3UseRecovery;
      TradesToConstituteRecovery[tfTotal] = Trade3TradesToConstituteRecovery;
      RecoveryProfitPips[tfTotal] = Trade3RecoveryProfitPips;
      TradeAsBasket[tfTotal] = Trade3AsBasket;
      TradeBasketCashTarget[tfTotal] = Trade3BasketCashTarget;
      TradeBasketCashPercentageTarget[tfTotal] = Trade3BasketCashPercentageTarget;
      UseBreakEven[tfTotal] = Trade3UseBreakEven;
      BreakEvenPips[tfTotal] = Trade3BreakEvenPips;
      BreakEvenProfitPips[tfTotal] = Trade3BreakEvenProfitPips;
      UseJumpingStop[tfTotal] = Trade3UseJumpingStop;
      JumpingStopPips[tfTotal] = Trade3JumpingStopPips;
      JumpAfterBreakEvenOnly[tfTotal] = Trade3JumpAfterBreakevenOnly;

      tfTotal++;
   }//if (TradeTF3)
   
   //Trade4
   if (TradeTF4)
   {
      TimeFrames[tfTotal] = Trade4TimeFrame;
      TradeBuffers[tfTotal] = Trade4BufferPips;
      MagicNumbers[tfTotal] = Trade4MagicNumber;
      TradeComments[tfTotal] = Trade4TradeComment;
      TakeProfits[tfTotal] = Trade4TakeProfitPips;
      StopLosses[tfTotal] = Trade4StopLossPips;
      PositiveSwapOnly[tfTotal] = Trade4PositiveSwapTradesOnly;
      TradeLots[tfTotal] = Trade4Lot;
      TradeLotsPerDollop[tfTotal] = Trade4LotsPerDollopOfCash;
      TradeSizeOfDollop[tfTotal] = Trade4SizeOfDollop;
      TradeUseBalance[tfTotal] = Trade4UseBalance;
      TradeUseEquity[tfTotal] = Trade4UseEquity;
      ImmediateMarketTrades[tfTotal] = Trade4ImmediateMarketOrder;
      UseRecovery[tfTotal] = Trade4UseRecovery;
      TradesToConstituteRecovery[tfTotal] = Trade4TradesToConstituteRecovery;
      RecoveryProfitPips[tfTotal] = Trade4RecoveryProfitPips;
      TradeAsBasket[tfTotal] = Trade4AsBasket;
      TradeBasketCashTarget[tfTotal] = Trade4BasketCashTarget;
      TradeBasketCashPercentageTarget[tfTotal] = Trade4BasketCashPercentageTarget;
      UseBreakEven[tfTotal] = Trade4UseBreakEven;
      BreakEvenPips[tfTotal] = Trade4BreakEvenPips;
      BreakEvenProfitPips[tfTotal] = Trade4BreakEvenProfitPips;
      UseJumpingStop[tfTotal] = Trade4UseJumpingStop;
      JumpingStopPips[tfTotal] = Trade4JumpingStopPips;
      JumpAfterBreakEvenOnly[tfTotal] = Trade4JumpAfterBreakevenOnly;

      tfTotal++;
   }//if (TradeTF4)
Then go to OnTimer() and do a Match Case for 'Bid' and replace the upper case 'B' with lower case 'b' so the variable becomes 'bid'.

:xm:
Author:  sugardaddy [ Mon Jul 31, 2017 12:11 am ]
Post subject:  Awesome

ok thank you for all your explanation(s) guys! and Steve thank you for your great work!

wow getting a shortage of vps'es this way with all this great systems to test :)
Author:  Wapen [ Mon Jul 31, 2017 4:30 am ]
Post subject:  Awesome

Hi Steve & LJF,

There are a view new toys that I had a look at, But this one is definatly going on to a test. :clap:
Author:  sukhen [ Mon Jul 31, 2017 7:13 am ]
Post subject:  Awesome

sugardaddy » Mon Jul 31, 2017 5:41 am wrote:ok thank you for all your explanation(s) guys! and Steve thank you for your great work!

wow getting a shortage of vps'es this way with all this great systems to test :)
Hi,
I don't know much about free VPSs but I am posting 2 links that may point to something. Honestly, I have not tried how to go about these. If you find out, kindly explain how to set it up in simple language
http://voskrbs.ru/segnali-forex-giornal ... -owncloud/
and
https://www.youtube.com/watch?v=zqORpKde29Q and you may use Amazon Cloud Services for Free
at https://aws.amazon.com/marketplace/pp/B014R3DC64

A cheaper option is available at https://webappzlive.com/kvm-linux-ssd-vps/ (also Windows systems are available, slightly more expensive)

Wish these can help our community

- Sukhen
Author:  eaymon [ Mon Jul 31, 2017 9:04 am ]
Post subject:  Awesome

sukhen » Mon Jul 31, 2017 2:13 am wrote:
sugardaddy » Mon Jul 31, 2017 5:41 am wrote:ok thank you for all your explanation(s) guys! and Steve thank you for your great work!

wow getting a shortage of vps'es this way with all this great systems to test :)
Hi,
I don't know much about free VPSs but I am posting 2 links that may point to something. Honestly, I have not tried how to go about these. If you find out, kindly explain how to set it up in simple language
http://voskrbs.ru/segnali-forex-giornal ... -owncloud/
and
https://www.youtube.com/watch?v=zqORpKde29Q and you may use Amazon Cloud Services for Free
at https://aws.amazon.com/marketplace/pp/B014R3DC64

A cheaper option is available at https://webappzlive.com/kvm-linux-ssd-vps/ (also Windows systems are available, slightly more expensive)

Wish these can help our community

- Sukhen
I use vultr.com's $5 a month boxes with a custom windows XP image and run it on each machine.

they have a $2.50 a month box but I haven't tested those. I don't think you can get cheaper than these!
Author:  eaymon [ Mon Jul 31, 2017 2:39 pm ]
Post subject:  Awesome

started up 3 Empty4 terminals, each with one of the three suggested set files.
I haven't implemented the fix( unless it was already updated in the file i downloaded this morning.

broker is Global Prime. I'll let you know how it goes.

eaymon
Author:  Johann [ Mon Jul 31, 2017 4:14 pm ]
Post subject:  Awesome

Hi all,

I have started the test this morning and I might have found a bug with the global basket closure feature.
When there is no sufficient margin to allow trading :

Code: Select all

         //Check that there is sufficient margin for trading
         if(!MarginCheck())
         {
            DisplayUserFeedback();
            return;
         }//if (!MarginCheck() )
         
then OnTimer function is left, leaving the global basket closure condition unchecked :

Code: Select all

   //Have we reached a whole platform basket target?
   if (AllTradesBelongToBasket)
   {
      if (HaveWeReachedGlobalBasketTP() )
      {
         Alert("Global profit target reached. All trades should have closed.");
         NuclearOption();
         //All trades must be closed, so keep banging away until they are.
         if (ForceTradeClosure)
         {
            while (ForceTradeClosure)
            {
               NuclearOption();
               if (ForceTradeClosure)
                  Sleep(5000);//5 seconds
            }//while (ForceTradeClosure)
            
         }//if (ForceTradeClosure)
         
      }//if (HaveWeReachedGlobalBasketTP() )
      
   
   }//if (AllTradesBelongToBasket)

Consequently, the basket closure won't work when we have a certain amount of trade open but with limited margin. Leaving the poor trades up to themselves :)

A solution would be to move the basket closure condition before the margin check. Anyone can confirm ?
I am testing this solution right now.
All times are UTC Page 2 of 46