Welcome to Forex-TSD!, one of the largest Forex forums worldwide, where you will be able to find the most complete and reliable Forex information imaginable.
From the list below, select the forum that you want to visit and register to post, as many times you want. It’s absolutely free. Click here for registering on Forex-TSD.
Exclusive Forum
The Exclusive Forum is the only paid section. Once you subscribe, you will get free access to real cutting-edge Trading Systems (automated and not), Indicators, Signals, Articles, etc., that will help and guide you, in ways that you could only imagine, with your Forex trading.
Elite Section
Get access to private discussions, specialized support, indicators and trading systems reported every week.
Advanced Elite Section
For professional traders, trading system developers and any other member who may need to use and/or convert, the most cutting-edge exclusive indicators and trading systems for MT4 and MT5.
Does anyone have experience in optimizing profitable EAs in order to adopt them to the ever changing forex market? I'm not talking about curve fitting an EA to look good in a backtest.
I have an EA which I designed to reflect my trading style. It uses some basic MT4 indicators and price action to dynamically calculate SL and TP levels plus filter choppy markets to lower the number of bad trades. The EA performs nicely, but sometimes it takes trades which I would not take because the market is choppy.
I use the ATR and CCI indicators as a filter and these are the parameters I would like to optimize on a regular basis - this is where my questions begin:
1. How often should an EA be optimized to offer best performace?
2. How much data should be analyzed by the optimizer?
3. Which optimizer results should be chosen?
4. Should All parameters (there are 3) be optimized at once or
would it be better to optimize them in pairs or one by one?
BTW: I've optimized the EA about 1 month ago and the past month has been profitable. I'm wondering if I should re-optimize it with last month's data or leave it as is, but for how long?
Lot of people back testing years but I think it's not going to help us. Because market situation wasn't same as now and end of the year and begining of year is not good for testing or trading.
Therefore, I'd like to backtest and optimize EAs with 1-3 monthes only.
I also optimize my EA with about 2 - 3 months of data. This usually gives me good settings for the following week. I've also noticed that live trading is almost perfectly resembled on a back test - unfortunately slippage and spread changes are not taken into account. I don't mind the slippage, but MT4 should register spread changes along with tick data.
There is also another thing that sucks; demo account feed is different from real account feed (at least for my broker) so I'm forced to "pay" for my live testing.
I would want an aid for a script program to insert after the start and open discretional trades
After I have opened an order at the market of SELL or BUY,
I want to activate a script program for
CASE A - AFTER I HAVE SOLD:
a1) when the price arrives to -14 from the ask:
I insert the stop to -6 from the OpenPrice
I insert the take profit to -40 from the OpenPrice
a2) when the price arrives to +8 from the ask:
I insert the stop loss to +250 from the OpenPrice
I insert the take profit to -5 from the OpenPrice
CASE B - AFTER I HAVE BOUGHT:
b1) when the price arrives to +14 from the bid:
I insert the stop to +6 from the OpenPrice
I insert the take profit to +40 from the OpenPrice
b2) when the price arrives to -8 from the bid:
I insert the stop loss to -250 from the OpenPrice
I insert the take profit to +5 from the OpenPrice
This EA, not work.
Why?
Thanks in advance
Quote:
#property copyright "Mark 2009"
#property link "winken@inwind.it"
extern bool Scalper_mode = TRUE;
extern int digitPips = 0;
extern int DistanceUp_Buy=14;
extern int SL_Up_Buy=6;
extern int TP_Up_Buy=40;
extern int DistanceDown_SELL=14;
extern int SL_Down_SELL=6;
extern int TP_Down_SELL=40;
extern int DistanceDown_Buy=-9;
extern int SL_Down_Buy=250;
extern int TP_Down_Buy=5;
extern int DistanceUp_SELL=-9;
extern int SL_Up_SELL=250;
extern int TP_Up_SELL=5;
extern
int init() {
return (0);
}
int deinit() {
return (0);
}
int start() {
int digitPips = MarketInfo(OrderSymbol(),MODE_DIGITS);
double point = MarketInfo(OrderSymbol(),MODE_POINT);
double PointRatio = 1;
if (digitPips==3 || digitPips==5) PointRatio = 10;
int ordine;
if (Scalper_mode) {
for (int q = 0; q < OrdersTotal(); q++) {
//OrderSelect(q, SELECT_BY_TICKET, MODE_TRADES);
OrderSelect(q, SELECT_BY_POS, MODE_TRADES);