DEFPARAM CumulateOrders = false // Acumulación de posiciones desactivada
units=10 //units to buy or sell
takeprofit = 100 //takeprofit in points
stoploss = 100 //stoploss in points
BreakevenAt = 25 //percent achieved of target to move stop to entry (breakeven)
PointsToKeep = 1 //how much points to keep in profit above of below our entry price when the breakeven is activated (beware of spread)
// Condiciones para entrada de posiciones largas
indicator1 = ExponentialAverage[30](close)
indicator2 = ExponentialAverage[60](close)
c1 = (indicator1 > indicator2)
indicator3 = ExponentialAverage[60](close)
c2 = (close < indicator3)
IF c1 AND c2 THEN
BUY units CONTRACT AT MARKET
SET STOP pTRAILING stoploss
ENDIF
// Condiciones de entrada de posiciones cortas
indicator6 = ExponentialAverage[30](close)
indicator7 = ExponentialAverage[60](close)
c4 = (indicator6 < indicator7)
indicator8 = ExponentialAverage[60](close)
c5 = (close > indicator8)
IF c4 AND c5 THEN
SELLSHORT units CONTRACT AT MARKET
SET STOP pTRAILING stoploss
ENDIF
//reset the breakevenLevel when no trade are on market
IF NOT ONMARKET THEN
breakevenLevel=0
ENDIF
startBreakeven = (BreakevenAt/100)*takeprofit //how much points in gain to activate the breakeven function
// --- BUY SIDE ---
//test if the price have moved favourably of "startBreakeven" points already
IF LONGONMARKET AND close-tradeprice(1)>=startBreakeven*pipsize THEN
//calculate the breakevenLevel
breakevenLevel = tradeprice(1)+PointsToKeep*pipsize
ENDIF
//place the new stop orders on market at breakevenLevel
IF LONGONMARKET AND breakevenLevel>0 THEN
SELL AT breakevenLevel STOP
ENDIF
// --- SELL SIDE ---
//test if the price have moved favourably of "startBreakeven" points already
IF SHORTONMARKET AND tradeprice(1)-close>=startBreakeven*pipsize THEN
//calculate the breakevenLevel
breakevenLevel = tradeprice(1)-PointsToKeep*pipsize
ENDIF
//place the new stop orders on market at breakevenLevel
IF SHORTONMARKET AND breakevenLevel>0 THEN
EXITSHORT AT breakevenLevel STOP
ENDIF