function trade(){
vars Close = series(priceClose());
vars High = series(priceHigh());
vars Low = series(priceLow());
DChannel(10);
vars donch_10_up = series(rRealUpperBand);
vars donch_10_dn = series(rRealLowerBand);
DChannel(20);
vars donch_20_up = series(rRealUpperBand);
vars donch_20_dn = series(rRealLowerBand);
DChannel(55);
vars donch_55_up = series(rRealUpperBand);
vars donch_55_dn = series(rRealLowerBand);
Stop = optimize(1,1,5,1)*ATR(optimize(10,10,100,5));
if((NumOpenShort<1 and Low[0]<donch_20_dn[1])or(NumOpenShort<1 and Low[0]<donch_55_dn[1])or(NumOpenShort<1 and Low[0]<donch_10_dn[1])) {enterShort();exitLong();}
if((NumOpenLong<1 and High[0]>donch_20_up[1])or(NumOpenLong<1 and High[0]>donch_55_up[1])or(NumOpenLong<1 and High[0]>donch_10_up[1])) {enterLong();exitShort();}
}
function run()
{
StartDate = 20170301;
Capital = 400;
Lots = 1;
if(Train) {Hedge = 2;LookBack = 400;NumWFOCycles = 5;}
vars Price = series(price());
vars High = series(priceHigh());
vars Low = series(priceLow());
vars Open = series(priceOpen());
set(PARAMETERS);
while(asset(loop("AUD/CAD","AUD/CHF","AUD/JPY","AUD/NZD","AUD/USD","CAD/CHF","CAD/JPY","CHF/JPY","EUR/AUD","EUR/CAD","EUR/CHF","EUR/GBP","EUR/JPY","EUR/NZD","EUR/USD","GBP/AUD","GBP/CAD","GBP/CHF","GBP/JPY","GBP/NZD","GBP/USD","NZD/CAD","NZD/CHF","NZD/JPY","NZD/USD","USD/CAD","USD/CHF","USD/JPY")))
{
trade();
}
}