2 registered members (VoroneTZ, AndrewAMD),
833
guests, and 5
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Optimizing equity curve trading
#467685
08/21/17 17:14
08/21/17 17:14
|
Joined: Aug 2017
Posts: 102 Spain
Brax
OP
Member
|
OP
Member
Joined: Aug 2017
Posts: 102
Spain
|
Hi, I am trying to optimize the lowpass filter in equity curve trading for a basket of assets. It seems the optimization is not being performed, surely there is some kind of issue with Balance or ProfitClosed behaviour. This is my code:
static var opt_Filtered;
static var opt_Signal;
static var opt_Threshold;
static var opt_Stop_Cntr;
static int opt_EquityAvg;
var equityCurveSizing()
{
if(Train) { return 1; } // no phantom trades in training mode
vars EquityCurve = series(BalanceLong+BalanceShort);
// vars EquityLP = series(LowPass(EquityCurve,10));
vars EquityLP = EquityCurve;
if(EquityLP[0] < LowPass(EquityLP,opt_EquityAvg))// && falling(EquityLP))
return -1; // drawdown -> phantom trading
else
return 1; // profitable -> normal trading
}
function tradeCounterTrend()
{
vars Price = series(priceClose());
vars Filtered = series(BandPass(Price,opt_Filtered,0.5));
vars Signal = series(Fisher(Filtered,opt_Signal));
var Threshold = opt_Threshold;
Stop = opt_Stop_Cntr * ATR(10);
Trail = 4*ATR(10);
if(crossUnder(Signal,-Threshold))
enterLong();
else if(crossOver(Signal,Threshold))
enterShort();
}
function run()
{
set(LOGFILE+PARAMETERS);
NumCores = -2;
BarPeriod = 24*60;
LookBack = 500;
StartDate = 2005;
EndDate = 2015;
Capital = 10000;
if(ReTrain) {
UpdateDays = -1;
SelectWFO = -1;
reset(FACTORS);
}
while(asset(loop("EUR/USD","USD/JPY","GBP/USD","USD/CHF"))){
// Parameters
opt_Filtered = optimize(30,20,40,1);
opt_Signal = optimize(10,5,20,1);
opt_Threshold = optimize(1,0.5,1.5,0.1);
opt_Stop_Cntr = optimize(4,2,10,1);
opt_EquityAvg = optimize(100,5,200,5);
Lots = 5;
Lots = equityCurveSizing() * Lots;
tradeCounterTrend();
}
PlotWidth = 1024;
PlotHeight1 = 400;
}
¿The behaviour of equity curve trading is for the global equity produced from all the assets or it´s applied on every asset equity? If globally, ¿Could i store the different asset equities and apply it separately with a function that receives that equity?. Thanks.
|
|
|
Re: Optimizing equity curve trading
[Re: Brax]
#467939
09/08/17 20:00
09/08/17 20:00
|
Joined: Aug 2017
Posts: 102 Spain
Brax
OP
Member
|
OP
Member
Joined: Aug 2017
Posts: 102
Spain
|
Well, after some research i can answer myself some questions: First, equity curve trading as explained in the manual is only for global equity produced by all trades from all assets. If you want to individualize it, you must do some workarounds. Second, i haven´t realized how to optimize the parameter for the average, but it doesn´t matter. Finally, i have found a mechanism i think is better than doing it with averages. It consists of applying the kelly factor for every asset on every trade close, this way i don´t need any parameters at all and it serves the purpose of avoiding broken systems to be traded. The only problem is that most times it hinders performance but seems to be a good contingency plan. More about this can be found here: http://www.financemagnates.com/forex/bloggers/equity-curve-trading-part-2-rolling-expectancy-ratio/In my case, as i don´t want to add more parameters i´ve used all data to implement it. Hope it is useful for everybody.
Last edited by brax; 09/08/17 20:01.
|
|
|
|