Salve a tutti, ho trovato questo indicatore all’interno della library, il link è il seguente:
https://www.prorealcode.com/prorealtime-indicators/normalized-bars/
Il codice l’ho leggermente modificato come segue:
TimeFrame(Daily)
// --- settings
p = 100
s = 2
// --- end of settings
myRange = close - open
myStd = std[p](myRange)*s
dynO = 0
dynH = high - open
dynL = low - open
dynC = close - open
if dync > 0 then
R = 0
G = 125
B = 255
else
R = 255
G = 125
B = 0
endif
DRAWBARCHART(dynO,dynH,dynL,dynC) coloured(r,g,b)
return myStd as "+std", -myStd as "-std", 0 as "0"
In sostanza vorrei codificare un trading system mean reverse che, per esempio:
-apra trade short se il prezzo è salito oltre 2 volte la deviazione standard calcolata sugli ultimi 100 giorni
-apra trade long se il prezzo è sceso oltre 2 volte la deviazione standard calcolata sugli ultimi 100 giorni
Ho provato a fare un backtest ma credo di aver sbagliato qualcosa, ho inserito l’indicatore direttamente nel TS senza usare la funzione CALL:
Defparam CumulateOrders = FALSE
DefParam PreLoadBars = 10000000
TimeFRame(Daily)
// --- settings
p = 100
s = 2
// --- end of settings
myRange = close - open
myStdPositiva = std[p](myRange)*s
myStdNegativa = (std[p](myRange)*s)*(-1)
dynO = 0
dynH = high - open
dynL = low - open
dynC = close - open
CondBuy = Close > myStdPositiva
CondSell = Close < myStdNegativa
Venerdi = OpendayofWeek=5 and CurrentTime >=200000
TimeFrame(Default)
// Condizioni per entrare su posizioni long
IF NOT LongOnMarket AND CondBuy THEN
BUY 1 CONTRACTS AT MARKET
ENDIF
// Condizioni per uscire da posizioni long
If LongOnMarket AND Venerdi THEN
SELL AT MARKET
ENDIF
// Condizioni per entrare su posizioni short
IF NOT ShortOnMarket AND CondSell THEN
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
// Condizioni per uscire da posizioni short
IF ShortOnMarket AND Venerdi THEN
EXITSHORT AT MARKET
ENDIF
Grazie a chi potrà aiutarmi
Alle righe 20 e 21 confronti il prezzo con l’indicatore, ma credo non vada bene, mi pare non restituisca un prezzo.
Ciao Roberto, non riesco a capire l’errore, quando hai tempo puoi aiutarmi?
Ti posso aiutare se mo spieghi cosa vuoi fare.
L’indicatore può valere 1.0345 oppure -0.3457, come puoi confrontarlo con un prezzo (close)?
Devi spiegarmi cosa vuoi fare con l’indicatore.
Vorrei un buy o un sell se il prezzo dell’asset supera 2 volte la deviazione standard di un determinato periodo.
buy: prezzo che supera di 2 volte la deviazione standard negativa
sell: il contrario
Prova a cambiare la riga 10 con questa:
myRange = close
In modo che la deviazione sia calcolata sul prezzo e non sul range.