A me funziona benissimo, TIME segnala l’ora di esecuzione della strategia cioè alla chiusura della barra. Per cui alle 090000 è quando CHIUDE la candela delle 080000, e sono quelli i dati HIGH e LOW che prende, per cui se nella candela successiva li supera (candela di setup che inizia alle 09000) entra immediatamente all’apertura della successiva cioè alle 100000.
Se invece t’interessa l’ora d’APERTURA devi usare OPENTIME.
Buongiono
ho provato l’ultima versione presente ….
ma il mio backtest è alquanto deludente con spread a 1 …sbaglio qualcosa ?
🙁
In effetti non da affatto buoni risultati, anche considerando il fatto che lo spread sul DAX è 2 pips.
Ad ogni modo pubblico di nuovo il codice dove ho corretto i calcoli relativi al profitto ed allo stop loss, ma non cambia la sostanza
DEFPARAM CumulateOrders = false
DEFPARAM FlatAfter = 180000 //Puoi indicare una data oltre la quale le posizioni aperte vengono chiuse
ONCE Rialzo = 1 //Predisporre affinché possa fare tradare LONG
ONCE Ribasso = 1 //Predisporre affinché possa fare tradare SHORT
IF IntraDayBarIndex = 0 THEN
Rialzo = 1 //All'inizio del giorno resettare le variabili al valore di default
Ribasso = 1
ENDIF
IF time = 090000 THEN //Al termine della candela dell8 rileva Minimo/Massimo
Massimo = high
Minimo = low
Profitto = range
ENDIF
IF time >= 090000 AND time <= 170000 THEN
IF close > Massimo AND Rialzo THEN
SET STOP LOSS ((close - Minimo) + (5 * pipsize))
SET TARGET PROFIT Profitto
BUY 1 CONTRACTS AT MARKET
Rialzo = 0 //Settare la variabile a ZERO per impedire ulteriori operazioni LONG
ELSIF close < Minimo AND Ribasso THEN
SET STOP LOSS ((Massimo - close ) + (5 * pipsize))
SET TARGET PROFIT Profitto
SELLSHORT 1 CONTRACTS AT MARKET
Ribasso = 0 //Settare la variabile a ZERO per impedire ulteriori operazioni SHORT
ENDIF
ENDIF
Per assurdo ” testando ” la versione errata ELSIF close > Massimo AND Ribasso THEN ….
DEFPARAM CumulateOrders = false
DEFPARAM FlatAfter = 180000 //Puoi indicare una data oltre la quale le posizioni aperte vengono chiuse
ONCE Rialzo = 1 //Predisporre affinché possa fare tradare LONG
ONCE Ribasso = 1 //Predisporre affinché possa fare tradare SHORT
IF IntraDayBarIndex = 0 THEN
Rialzo = 1 //All’inizio del giorno resettare le variabili al valore di default
Ribasso = 1
ENDIF
IF time = 090000 THEN //Al termine della candela dell8 rileva Minimo/Massimo
Massimo = high
Minimo = low
Profitto = range
ENDIF
c1 = RSI[2]<90
if currentdayofweek <> 5 then
IF time >= 090000 AND time <= 170000 THEN
IF close > Massimo AND Rialzo and c1 THEN
SET STOP LOSS Minimo - (5 * pipsize)
SET TARGET PROFIT Profitto
BUY 1 CONTRACTS AT high stop
Rialzo = 0 //Settare la variabile a ZERO per impedire ulteriori operazioni LONG
ELSIF close > Massimo AND Ribasso THEN
//ELSIF close <minimo AND Ribasso THEN
SET STOP LOSS Massimo + (5 * pipsize)
SET TARGET PROFIT Profitto
SELLSHORT 1 CONTRACTS AT low stop
Ribasso = 0 //Settare la variabile a ZERO per impedire ulteriori operazioni SHORT
ENDIF
ENDIF
endif
//set stop ploss 200
evitando di lavorare al venerdi + controllo RSI in caso di LONG fornisce dei risultati migliori
spread 2
Anche se tutto cio’ cambia notevolmente di significato rispetto all’idea iniziale
Quando succede così significa che non è una buona strategia a mio parere, meglio ripensarla o riporla tra i tentativi non andati a buon fine.
Io ne ho scritte e accantonate oltre 700!