Originariamente Scritto da
TFiutoT384
Quindi Apo, per il seguente script dunque il codice è:
per il backtest (evidenzio inverde sottolineato le 4 righe che sono differenti tra lo script per il backtets e il real time, cioè quelle dove devo applicare il REF)
Buy scripts
# Definiamo le variabili
INPUTS: @price(CLOSE), @BandPeriods(20, 10, 30, 1), @BigDev(1.6, 1, 3, 0.1), @SmalDev(0.83, 0.3, 0.9, 0.03), @matype(SIMPLE), @SLperiods(7)
SET BigTop = BollingerBandsTop(@price, @BandPeriods, @BigDev, @matype)
SET BigBottom = BollingerBandsBottom(@price, @BandPeriods, @BigDev, @matype)
SET SmallTop = BollingerBandsTop(@price, @BandPeriods, @SmalDev, @matype)
SET SmallBottom = BollingerBandsBottom(@price, @BandPeriods, @SmalDev, @matype)
SET SignalLine = LR(@price, @SLperiods)
# Primo Buy
CROSSOVER(SignalLine, BigBottom)
Sell Scripts
# Definiamo le variabili
SET BigTop = BollingerBandsTop(@price, @BandPeriods, @BigDev, @matype)
SET BigBottom = BollingerBandsBottom(@price, @BandPeriods, @BigDev, @matype)
SET SmallTop = BollingerBandsTop(@price, @BandPeriods, @SmalDev, @matype)
SET SmallBottom = BollingerBandsBottom(@price, @BandPeriods, @SmalDev, @matype)
SET SignalLine = LR(@price, @SLperiods)
# Primo Sell
CROSSOVER(BigTop,SignalLine)
Exit long script
# Definiamo le variabili
SET BigTop = BollingerBandsTop(@price, @BandPeriods, @BigDev, @matype)
SET BigBottom = BollingerBandsBottom(@price, @BandPeriods, @BigDev, @matype)
SET SmallTop = BollingerBandsTop(@price, @BandPeriods, @SmalDev, @matype)
SET SmallBottom = BollingerBandsBottom(@price, @BandPeriods, @SmalDev, @matype)
SET SignalLine = LR(@price, @SLperiods)
# Primo ExitLong
CROSSOVER(SmallBottom,SignalLine)
Exit short script
# Definiamo le variabili
SET BigTop = BollingerBandsTop(@price, @BandPeriods, @BigDev, @matype)
SET BigBottom = BollingerBandsBottom(@price, @BandPeriods, @BigDev, @matype)
SET SmallTop = BollingerBandsTop(@price, @BandPeriods, @SmalDev, @matype)
SET SmallBottom = BollingerBandsBottom(@price, @BandPeriods, @SmalDev, @matype)
SET SignalLine = LR(@price, @SLperiods)
# Primo ExitShort
CROSSOVER(SmallTop,SignalLine)
Per la strategia in real time, aggiungo il REF sostituendo alla riga: CROSSOVER(SmallTop,SignalLine),
la riga seguente: CROSSOVER(REF(SignalLine, 1), REF(BigBottom, 1)), ovvero (in tutto sono 4 sostituzioni che evidenzio perché le riporto in verde sottolineato):
Buy scripts
# Definiamo le variabili
INPUTS: @price(CLOSE), @BandPeriods(20, 10, 30, 1), @BigDev(1.6, 1, 3, 0.1), @SmalDev(0.83, 0.3, 0.9, 0.03), @matype(SIMPLE), @SLperiods(7)
SET BigTop = BollingerBandsTop(@price, @BandPeriods, @BigDev, @matype)
SET BigBottom = BollingerBandsBottom(@price, @BandPeriods, @BigDev, @matype)
SET SmallTop = BollingerBandsTop(@price, @BandPeriods, @SmalDev, @matype)
SET SmallBottom = BollingerBandsBottom(@price, @BandPeriods, @SmalDev, @matype)
SET SignalLine = LR(@price, @SLperiods)
# Primo Buy
CROSSOVER(REF(SignalLine, 1), REF(BigBottom, 1))
Sell Scripts
# Definiamo le variabili
SET BigTop = BollingerBandsTop(@price, @BandPeriods, @BigDev, @matype)
SET BigBottom = BollingerBandsBottom(@price, @BandPeriods, @BigDev, @matype)
SET SmallTop = BollingerBandsTop(@price, @BandPeriods, @SmalDev, @matype)
SET SmallBottom = BollingerBandsBottom(@price, @BandPeriods, @SmalDev, @matype)
SET SignalLine = LR(@price, @SLperiods)
# Primo Sell
CROSSOVER(REF(SignalLine, 1), REF(BigBottom, 1))
Exit long script
# Definiamo le variabili
SET BigTop = BollingerBandsTop(@price, @BandPeriods, @BigDev, @matype)
SET BigBottom = BollingerBandsBottom(@price, @BandPeriods, @BigDev, @matype)
SET SmallTop = BollingerBandsTop(@price, @BandPeriods, @SmalDev, @matype)
SET SmallBottom = BollingerBandsBottom(@price, @BandPeriods, @SmalDev, @matype)
SET SignalLine = LR(@price, @SLperiods)
# Primo ExitLong
CROSSOVER(REF(SignalLine, 1), REF(BigBottom, 1))
Exit short script
# Definiamo le variabili
SET BigTop = BollingerBandsTop(@price, @BandPeriods, @BigDev, @matype)
SET BigBottom = BollingerBandsBottom(@price, @BandPeriods, @BigDev, @matype)
SET SmallTop = BollingerBandsTop(@price, @BandPeriods, @SmalDev, @matype)
SET SmallBottom = BollingerBandsBottom(@price, @BandPeriods, @SmalDev, @matype)
SET SignalLine = LR(@price, @SLperiods)
# Primo ExitShort
CROSSOVER(REF(SignalLine, 1), REF(BigBottom, 1))
E I DUE SCRIPTS DEVONO ESSERE APPLICATI APPUNTO SEPARATAMENTE: IL PRIMO LO USO SOLO PER IL BACKTEST MENTRE IL SECONDO LO USO SOLO PER IL REAL TIME.
Ok Apo , attendo conferme, se naturalmente ti è possibile.
Intanto grazie per i tuoi suggerimenti dato che stò provando la stessa frustrazione di Thalos dovuto alla differenza tra il backtest e il real time.