Great EA in backtest! - page 112

 
BrazilianTrader:
what is the point of taking conlusions over low modeling quality reports??

pple should know that they should improve their modeling quality before taking decisions over virtual results;

even backtests with 90% aren't very worthy of trust;

sounds wise that mechanic traders should work this way:

1. Backtesting with 90%;

2. Demo account for a couple of months;

3. Real account;

4. Profit;

5. Laughs.

I think that we shouldn't give all the credits to an EA that "works very well" on a 50% modeling quality report.

Good Point

 
BrazilianTrader:
modeling quality 50.00% that doesn't sound good...

Not even 90% is good enough, but if the forward test draws good results thats what we need to go on.

 

Need coding help...

I need some help here... I don't understand why this is being so difficult.

All I want is a simple close order based on a few conditions.

This is the short half. There is another Long half that corresponds with it.

But why does this code...

int ExitMarket() // -------------------- Working the open orders -------------------

{

total = OrdersTotal();

for(int cnt = 0; cnt < OrdersTotal(); cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

// We search for orders opened by this code on our currency

if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)// if this code has an open order on this currency

{

if(OrderType() == OP_SELL) // If the obtained order is by the selling of the currency

{

if(Ask >= OrderStopLoss())// Closing order if it reached the level of the stoploss

{

OrderClose(OrderTicket(), OrderLots(), MODE_ASK , SlipPage, Violet); // Close the order

}

else

{

// We close when the direction reverses

if(ADX DIplus1 || Closing > LowerE)

{

total = OrdersTotal();

OrderClose(OrderTicket(), OrderLots(), MODE_ASK , SlipPage, Violet); // Close the order

Print("Patient1 closed short ticket ",OrderTicket()," on a reverse @: ",Ask," Orders remaining open: ",total," BECAUSE cls: ",Closing," > lwrE: ",LowerE," or ADX: ",ADX," DI+1: ",DIplus1);

total = OrdersTotal();

Print(" Orders remaining open: ",total);

}

else

{

Print("stays open");

}

}

}//ifsell

}//if order is open

}//fororders

return(0);

}//exitmarket [/PHP]

why does it produce this output?

[PHP]2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.272 Orders remaining open: 1 BECAUSE cls: 1.2718 > lwrE: 1.2715 or ADX: 30.0152 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.2719 Orders remaining open: 1 BECAUSE cls: 1.2717 > lwrE: 1.2715 or ADX: 30.0152 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

2006.11.06 19:07:30 2006.11.05 23:10 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:10 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.272 Orders remaining open: 1 BECAUSE cls: 1.2718 > lwrE: 1.2715 or ADX: 30.0152 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:10 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

2006.11.06 19:07:30 2006.11.05 23:08 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:08 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.2718 Orders remaining open: 1 BECAUSE cls: 1.2716 > lwrE: 1.2715 or ADX: 31.5632 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:08 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

2006.11.06 19:07:30 2006.11.05 23:07 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:07 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.2717 Orders remaining open: 1 BECAUSE cls: 1.2715 > lwrE: 1.2715 or ADX: 31.5632 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:07 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

WHICH never meets the reversal condition yet it prints the reversal line?

and even though it prints the reversal line it never closes the position?

 

Why do people waste their time with this EA? It's not going to work on a live account. You won't get those kind of fills.

 
aegis:
Why do people waste their time with this EA? It's not going to work on a live account. You won't get those kind of fills.

Lack of something better?

Personally I'm here to learn, I'm getting lots of coding experience and practice. If the goal is to learn then there is alot of value for me. However if you have a better EA for me to 'waste my time on'....i'm all ears.

btw feel free to solve this coding problem if you can.

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

 
aegis:
Why do people waste their time with this EA? It's not going to work on a live account. You won't get those kind of fills.

Interesting conclusion, "Dr. EA Specialist"...

We wonder your real experience with this EA to tell us it didn't work...

Or at least, with any EA at all...

Perhaps, and that is what seems to be the most probable, you have no experience at all with any EA on the "classical 3 steps", and are afraid of making up your hopes with a "magical formula to richness" and get disappointed; so what is easier? to block our mind and say this EA doesn't work at all, of course.

How pathetic.

Some are here to lose, one would say.But they are here to learn and improve, definitely.

We, differently than pple like you, prefer to test, lose, improve, change, over and over, reset our point of views and believe on solid or flexible strategies, what definitely include "accepting changes".

This EA could seem not to work on a real account, but we are here to make it do it.

 

It appears that I have resolved my previous coding problem.

This now leaves me with a new set of problems and questions to answer.

I have concluded that because of the way this EA trades that it's very unlikely that any of the traditional indicators will really help it much. It places a large majority if it's trades within the same bar so no trending indicator will track it intrabar. Being a reverse trader typical trending indicators don't help it much anyway.

There remains however one avenue to filter trades which hasn't yet been exploited, namely, the programs own unique decisionmaking logic. While it is a rather daunting task I belive there is potential reward in developing a data profile of what cyberia parameters make up a winning trade and what makes up a losing trade, IN CYBERIA LOGIC.

To do this I propose to use the backtester to generate in the journal the determining parameters that cyberia accepts when it opens each order, then sort all the winning trades and losing trades into their respective groups and then see from an analysis of those two groups if there is anything of a distinguishing nature that is readily apparent that can be installed and used as a filter parameter.

I think the previous movie clip I posted a while back about 212 degree temperature of water applies here. Right now this trades around 70 - 72%. which is good but it's just now quite steam yet. It's hot but it is like water at 211 degrees, it's one degree shy of really being useful. My goal is to get that one degree. That may only mean adding a few more percent to it's win/loss ratio. if it made it to 80% just ten percent more it would be amazing. As is it's a hard program to stick with because it doesn't seem to ever really take off. (my experience anyway)...

if I pursue this course I wonder if anyone else would like to assist me in it. I have created a version of the code that prints out the data at the time the EA opens the order. This will output about 7 to 14 orders at a time in the journal before the journal starts compressing the output and the data is lost. that means that to gather any substantial amount of data the tester needs to be restarted alot of times...unless someone teaches me how to get it to print all this information to a file instead.....I know that's possible I just don't know how to do it.

at any rate I'm looking for people with an IBFX mini account who would like to serve as data gatherers on this project while I develop a spreadsheet to analyze the data. If you are interested let me know by pm and give me your email address and I'll send you the EA version I have modified to output the data. I still have one more modification to make on it but it's almost ready to go to work.

The data I am most interested in is that which occurs within the same bar in the tower patterns I have already identified. I want to collect enough test data about what's happening inside Cyberia's logic during these times in particular first. Not that I think the other trading situation should be ignored but they don't seem to hold as much potential so I'm focusing on the area of highest probable return first....

I guess I've been working with cybeira enough that some of this probability stuff is starting to rub off on me.

 

also heres a file write sample, its right out of the MT editor...

This will allow ya to log to a csv file, modify for your output you wish.

int handle;

datetime orderOpen=OrderOpenTime();

handle=FileOpen("c:\cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');

if(handle>0)

{

FileWrite(handle, Close[0], Open[0], High[0], Low[0], TimeToStr(orderOpen));

FileClose(handle);

}

I'm on IBFX live, I can forward test live for ya on micro lots. However i have other live trades on the account so I'd have to strip out the CT results seperately.

PM me for email address

 

engineer for hire !!!!

Aaragorn:
It appears that I have resolved my previous coding problem.

This now leaves me with a new set of problems and questions to answer.

I have concluded that because of the way this EA trades that it's very unlikely that any of the traditional indicators will really help it much. It places a large majority if it's trades within the same bar so no trending indicator will track it intrabar. Being a reverse trader typical trending indicators don't help it much anyway.

There remains however one avenue to filter trades which hasn't yet been exploited, namely, the programs own unique decisionmaking logic. While it is a rather daunting task I belive there is potential reward in developing a data profile of what cyberia parameters make up a winning trade and what makes up a losing trade, IN CYBERIA LOGIC.

To do this I propose to use the backtester to generate in the journal the determining parameters that cyberia accepts when it opens each order, then sort all the winning trades and losing trades into their respective groups and then see from an analysis of those two groups if there is anything of a distinguishing nature that is readily apparent that can be installed and used as a filter parameter.

I think the previous movie clip I posted a while back about 212 degree temperature of water applies here. Right now this trades around 70 - 72%. which is good but it's just now quite steam yet. It's hot but it is like water at 211 degrees, it's one degree shy of really being useful. My goal is to get that one degree. That may only mean adding a few more percent to it's win/loss ratio. if it made it to 80% just ten percent more it would be amazing. As is it's a hard program to stick with because it doesn't seem to ever really take off. (my experience anyway)...

if I pursue this course I wonder if anyone else would like to assist me in it. I have created a version of the code that prints out the data at the time the EA opens the order. This will output about 7 to 14 orders at a time in the journal before the journal starts compressing the output and the data is lost. that means that to gather any substantial amount of data the tester needs to be restarted alot of times...unless someone teaches me how to get it to print all this information to a file instead.....I know that's possible I just don't know how to do it.

at any rate I'm looking for people with an IBFX mini account who would like to serve as data gatherers on this project while I develop a spreadsheet to analyze the data. If you are interested let me know by pm and give me your email address and I'll send you the EA version I have modified to output the data. I still have one more modification to make on it but it's almost ready to go to work.

The data I am most interested in is that which occurs within the same bar in the tower patterns I have already identified. I want to collect enough test data about what's happening inside Cyberia's logic during these times in particular first. Not that I think the other trading situation should be ignored but they don't seem to hold as much potential so I'm focusing on the area of highest probable return first....

I guess I've been working with cybeira enough that some of this probability stuff is starting to rub off on me.

i,m ready wiling and able to help outAragorn. Check your p.m for my email address

 

Back testing

Aaragorn,

Is there any chance you can fix cyberia, so that you can backtest it on the open prices of the bar. This currently does not work.

This is the most reliable way to backtest.

Read this Article.

https://www.mql5.com/en/code/9500

Backtest results will always be unreliable if an order is filled and exited on the same bar unless the entry is on the open or the exit on the close. This is because it is impossible to tell the price action within the bar. A backtest will make an estimation of what happened during the bar. At times the estimation may result in a fill at a price that is estimated to occur before the exit but in realty occured after. This can result in fills at impossible prices, especially when the market moves quickly in one direction. Some strategies will inadvertently exploit these impossible prices to produce impossible results.