
Originariamente Scritto da
CIVT
A qualcuno è già capitato? Questo errore sembra essere legato alle medie mobili e inibisce l'operatività del signal che viene caricato in strategy, non sono ancora riescito a capire come risolvere perchè in fase di backtest e di verifica va tutto bene ma poi quando carico tutto in paper money non esegue operazioni ed appare questo alert che vedete evidenziato nello snapshot...
Ciao caro,
prova così:
Buy Script:
INPUTS: @exitBars(6), @SignalExit(15), @TRIXperiods(10), @TakeProfict(300), @StopLoss(200)
INPUTS: @SMAPeriods(25), @EMAPeriods(25), @EMAtrend(60)
#@TrailStop(100), @TrailPerc(10)
#SET TRAILING_STOP = @TrailStop
#SET TRAILING_PERCENT = @TrailPerc
SET TAKE_PROFIT = @TakeProfict
SET STOP_LOSS = @StopLoss
SET REQUIRED_BARS = 200
SET T = TRIX(CLOSE, @TRIXperiods)
SET T1 = REF (T,1)
SET T2 = REF (T,2)
SET EMAtrend = ExponentialMovingAverage(CLOSE, @EMAtrend)
SET EMAsignal = ExponentialMovingAverage(CLOSE, @EMAPeriods)
SET SMAsignal = SimpleMovingAverage(CLOSE, @SMAPeriods)
#SET MMsignal = IF(EMAsignal < SMAsignal, IF(SMAsignal < EMAtrend, 1, 0), 0)
SET MMsignal = (EMAsignal < SMAsignal) AND (SMAsignal < EMAtrend)
#T< 0 AND T> T1 AND T1< T2 AND MMsignal = 1
T < 0 AND T > T1 AND T1 < T2 AND MMsignal
Sell Script:
SET REQUIRED_BARS = 200
SET T = TRIX(CLOSE, @TRIXperiods)
SET T1 = REF (T,1)
SET T2 = REF (T,2)
SET EMAtrend = ExponentialMovingAverage(CLOSE, @EMAtrend)
SET EMAsignal = ExponentialMovingAverage(CLOSE, @EMAPeriods)
SET SMAsignal = SimpleMovingAverage(CLOSE, @SMAPeriods)
#SET MMsignal = IF(EMAsignal > SMAsignal, IF(SMAsignal > EMAtrend, 1, 0), 0)
SET MMsignal = (EMAsignal > SMAsignal) AND (SMAsignal > EMAtrend)
#T> 0 AND T< T1 AND T1> T2 AND MMsignal = 1
T > 0 AND T < T1 AND T1 > T2 AND MMsignal
ExitLong Script:
SET SignalLine = LR(CLOSE, @SignalExit)
# Usiamo il LASTIF che misura il numero di barre da quando la SignalLine è verde
SET barre = LASTIF(SignalLine > REF(SignalLine, 1))
# barre > 3 significa che le ultime 2 barre la SignalLine e' stata verde ed anche
# la Slope della SignalLine corrente è negativa
SET Exit = barre > @exitBars AND LinearRegressionSlope(CLOSE, @SignalExit) < 0
Exit
ExitShort Script:
SET SignalLine = LR(CLOSE, @SignalExit)
# Usiamo il LASTIF che misura il numero di barre da quando la SignalLine è rossa
SET barre = LASTIF(SignalLine < REF(SignalLine, 1))
# barre > 3 significa che le ultime 2 barre la SignalLine e' stata verde ed anche
# la Slope della SignalLine corrente è positiva
SET Exit = barre > @exitBars AND LinearRegressionSlope(CLOSE, @SignalExit) > 0
Exit
Il pratica il problema è dovuto alle barre sulle quali effettui il calcolo, tu hai impostato 60 su @EMAtrend e di base il calcolo avviene su 50 (vedi pagine 21 del manuale), quindi va aggiunto SET REQUIRED_BARS = 200
Ciao Ciao