This is just based on the tutorials...

bool findTrade(var Price,bool IsShort)
{
for(open_trades){
if(TradeIsShort == IsShort and TradeAsset == "EUR/CHF")
return false;
}
return true;
}

function tradeEURCHF()
{
TimeFrame = 1;
TimeExit = 1000;
var Price;
var Grid = optimize(10,10,100,10) * PIP;
vars Prices = series(price());
vars Trend = series(LowPass(Prices,optimize(1000,500,2000)));
var Current = priceClose();

var PriceHigh=optimize(1.22,1.2,1.26,0.01);
var PriceLow =optimize(1.25,1.22,1.3,0.01);

TakeProfit=Grid;

if(Current > PriceHigh and findTrade(Price,true) and !peak(Trend))
enterShort();

if(Current < PriceLow and findTrade(Price,false) and !valley(Trend))
enterLong();

}

function tradeCounterTrend()
{
TimeFrame = 4;
vars Price = series(price());
vars DomPeriod = series(DominantPeriod(Price,30));
var LowPeriod = LowPass(DomPeriod,500);
vars HP = series(HighPass(Price,LowPeriod*optimize(1,0.5,2)));
vars Signal = series(Fisher(HP,500));
var Threshold = optimize(1,0.9,1.5,0.1);

Stop = optimize(5,3,7) * ATR(100);
Trail = optimize(5,3,7) * ATR(100);
TrailLock = 10;
if(crossUnder(Signal,-Threshold))
reverseLong(1);
else if(crossOver(Signal,Threshold))
reverseShort(1);
}

function tradeTrend()
{
TimeFrame = 1;
vars Price = series(price());
vars Trend = series(LowPass(Price,optimize(1000,500,2000)));


Stop = optimize(5,3,7) * ATR(100);
Trail = optimize(5,3,7) * ATR(100);
TrailLock = 10;
if(valley(Trend)) {
enterLong();
} else if(peak(Trend)) {
enterShort();
}

}

function run()
{
set(PARAMETERS+FACTORS);
set(LOGFILE);
set(TICKS);
set(HEDGING);

BarPeriod = 60;
LookBack = 2000;
StartDate = 2002;
NumWFOCycles = 5;
Capital = 400;

if(ReTrain) {
UpdateDays = -1;
SelectWFO = -1;
}

// portfolio loop
while(asset(loop( "EUR/CHF", "EUR/USD", "USD/JPY", "USD/CHF", "GBP/USD")))
while(algo(loop("GRID","TRND","CNTR")))
{
Margin = MarginCost + (Capital + 0.5 * ProfitClosed) * OptimalF;

if(Algo == "TRND" and Asset!= "EUR/CHF")
tradeTrend();
else if(Algo == "CNTR" and Asset!= "EUR/CHF")
tradeCounterTrend();
else if(Algo == "GRID" and Asset== "EUR/CHF")
tradeEURCHF();
}

It also crashes when a trade closes because of the s/l.