Gogetter EA

 

Testers and developers wanted..

You may find this similar to other EA's because it is.. This is where my exploration of EA's has led to. I wonder if the strengths of this system could be successfully integrated with the strengths of a system that does better on non-trending conditions?

I (we-Eaglehawk and I) have been working on this EA. I would like to know if anyone can tell me why this is only opening long positiions when I know it's getting valid short entry signals as well?

Happily it seems that for some mysterious reason the backtester has decided to grace me with a respectable modeling quality. and it seems that with the limited amount of historical data that I have managed to actually get installed in the bloody thing it's showing it wins more than it loses despite only opening long positions.

The logic of this is pretty basic at this point. It's a moving average cross signal above or below a longer moving average to determine the trend. This EA likes to profit from trending. I named it the gogetter after the book by that name The Gogetter where this poor dude is given an impossible task with a limited amount of time to get it done. This EA triggers a close on time in trade if the position moves against it. So I figured it kind of fit the profile of the book.

These are the settings I've found work best for me so far..

I am running this on the 5m gpb/usd pair. I get different reports from my demo account and my live account about how well it works on the 4H chart. One reports it is better than the 5m and the other says it's worse.

#property copyright "Aaragorn and Eaglehawk"

#property link "http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/"

#include

extern int MagicNumber = 0;

extern bool SignalMail = False;

extern bool EachTickMode = False;

extern double Lots = 0.35;

extern int Slippage = 3;

extern bool StopLossMode = False;

extern int StopLoss = 50;

extern double ReversalTriggerRange = 173;

extern bool TakeProfitMode = True;

extern int TakeProfit = 45;

extern bool TrailingStopMode = False;

extern int TrailingStop = 10;

extern int MaxOpenTrade = 1;

extern int Shift = 3;

//extern double Slope = 2;

extern int EntLongEMA = 43;

extern int EntShortEMA = 1;

extern int ExitEMA = 51;

extern int TrendEMA = 1500;

//+-----------close based on not triggering trailing stop in allotted time----------------+

extern int MonitorInMinutes = 60; // minutes after open to check state of trade

extern int ThresholdMove = 1; // if after that time we don't have +'x' pips we will exit

extern int MinsMultiplier = 30; // multiplies the MonitorInMinutes to make minutes (if 'x'=60) into hours

[/PHP]

I would be happy to have anyone else test this and developers to make suggestions for it's improvement.

Since I'm only a novice programmer I don't mind at all if other programmers want to make code upgrades rather than try to explain to me everything about the upgrade idea they have. Just post the upgrade if you do one so we can all benefit.

I look hopefully for the valuable insight and input I know is available from you developers and coders.

I have reached the limits of my own present understanding with debugging this. I wonder how much better it could be if it opened both long and short orders?

The rules for the system are simply this...

if (c51ema < c43ema && s51ema < s43ema && curren1500EMA < c51ema < c43ema && shift 1500ema < curren1500ema) Open Long (buy)

if (cr51ema > cr43ema && sh51ema > sh43ema && curren1500EMA > cr51EMA > cr43ema && shift 1500ema > curren1500ema) Open Short (sell)

where the c=current time period

s=shifted time period

at one point there was a criteria that the slope of the longest EMA had to meet a certain angle also but that didn't seem like it made too much difference so I turned it off.

the exit rules are ...

[PHP] if (Sell1_1 - ReversalTriggerRange*Point >= C_trendsetter) Order = SIGNAL_CLOSESELL;

if (Sell1_1 >= CloseSell1_2) CloseOrder();

if (Sell1_1 >= CloseSell1_2) TrailingStopMode = True;

where if the current c43ema crosses back on the c51ema it will turn on the trailing stop and call for the time in trade function and if it goes further crossing back within a specified range beyond the 1500ema it will close. This range is based on the divergence of the two moving averages. I've toyed around with just a regular stop loss but that seemed to limit the wins too much. I think there could be better ways to close that could be explored. This is just what has worked best with what we've tried so far.

Please test enjoy and report back.

 

Specialization Improving...

I spent a couple hours reading C++ books today and came home and have managed to make some upgrades to this program...

I first made a copy of the EA and turned off everything in one of them that does long orders and everything in the other one that does short orders. I have worked on specializing each one for the different conditions..

There's alot more I can see to do now...

It's good to learn new things!

Files:
 

Build 1006

gave some thanks for all the encouragement,

organized the variables a little more,

added 'to do' list at the bottom of the code, for anyone wanting to assist with development,

cleaned it up some more, it was getting crazy..

Files:
 

Can't always trust the tester

Would this happen if it was running live too?

also

despite using the trailing stop it puzzles me that I never see any order modifications from tester reports

 

Build 1010

I added two more control buttons so you can choose to use each signal independently and from external input..

added some more comments to lines..explainations and test results from changing settings.

I don't know why it updated itself to GoGetShorts-2 I didn't tell it to do that (I think ) all I did was change the build number...perhaps it will call itself -3 now?

anyway..I seek progress not perfection, I like the progress.

enjoy

Files:
 

Build 1020

Ok I added the buttons that let you select max trades to each signal...

I think you can see what I'm going for here...making each signal fully customizable...

From what I can see of signal #1 its a higher probability if you don't ask too much from it TP. It doesn't trigger very often but when it does it seems to be great.

If you look at the 2.11p thumbnail you can see that signal one triggers two orders the first time and three orders the second time...I had the maxorder setting to three...it appears that it will only order one order per bar or something and that it must have moved below it's 'offave' parameter before it could get the third order placed the first series....

is there a way to get around that so that If I allow 3 orders I GET three orders? And the other thing is that with it hesitating to open the second and third order in the series when I allow 2 or three the second and third order are not places as well to win, they are always lagging a few pips behind because it hesitates to open them until the next bar....

I don't like that. Can that be fixed? That plagues all the multiple orders!! Only the first of the series is really in the best timing. I'm sure that creates losses sometimes on the second or more orders.

 

See... you are becoming an "expert" now... pretty soon you will become an "expert advisor"... and then you can be applied directly to charts

For real... congratulations... your tenacity is commendable. Aren't you glad that you learnt this stuff?

Good luck.

 

Go Get Longs build 1.0

This next ea is just like version 2.11 of Go Get Shorts, except I haven't done anything with the settings. I've just done the code to save any one who's taking on this project. I've done this much with the longs. I havn't redone the logics of the buy signals yet so I don't expect this to perform yet.

Files:
gogetlongs.mq4  15 kb
 

yes, thankyou I have good tutors. I'm also still pretty handy at copy and paste creations... I don't suppose you could tutor me in some of the issues I still am stuck with on this? Pleeeeeease???

such as...

https://www.mql5.com/en/forum

actually that is more cosmtic compared to the issue of the multiple trades not all opening at the same time which messes up the timing of the orders after the first one. I'd rather solve the substantiative issues first...

function before beauty?

 

Truthfully, I am not sure if I can help you there. First because I have to spend time to do it, and that is right now at a squeeze for me. Second because till now I let the "indicators" do all the drawings and have never used EAs to do it. It is possible and I think the theory is the same.

I believe Codersguru had written a chapter on drawing lines, arrows etc. Try to read it up

Again, copying and pasting still requires you to understand what you are doing. Nothing like self help and you are proving that point very well. Keep up the hard work.

 

Hi

Congratulations for the nice looking curve. I think one thing that could be improved is the modelling quality of the test. 90% would be better.

Reason: