Buonasera,
sto scrivendo il codice di un trading system che lavora in questo modo:
Time Frame:Daily
-Impostare un valore di volatilità media in base all’asset
-Impostare ordini limit se la candela ha superato il valore della volatilità media
-Ordini sell limit se la candela è stata ribassista (vorrei impostare ordini al 23.6%, 38.2% e 50% della candela appena chiusa)
Perchè dopo una candela con alta volatilità mi spetto un ritracciamento .
Vi allego la prova che sto facendo con il solo valore di 23.6 ma i backtest non aprono operazioni.
Ho impostato come stop loss il massimo della candela (1) e target in pips
CODICE:
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
//CONDIZIONI SHORT
volatilitamedia=100*pipsize*moltiplicatorevolatilita // condizione di volatilità media daily, dati acquisibili da investing
C0= Open[1]> Close[1] // Candela daily ROSSA
C1=(ABS(Open[1]-close[1]))*pipsize > volatilitamedia
C2= close[1]+((((ABS(Open[1]-close[1]))/100))*23.6*pipsize)
MYSTOP=DHIGH(1)
// Condizioni per SHORT
IF C0 and C1 then
sellshort 1 shares at C2 limit
ENDIF
// Condizioni per uscire da posizioni short
IF SHORTONMARKET THEN
SET TARGET pPROFIT TPSELL
SET STOP LOSS MYSTOP
ENDIF
Devi specificare:
1) valore di moltiplicatorevolatilita
2) strumento su cui fare le prove
altrimenti non riesco a replicare la situazione.
Buonasera Roberto,
il valore del moltiplicatore della volatilità l’ho impostato nelle variabili tra 1.05 e 1.5 con passo 0.o5, ovvero se la volatilità media dello strumento è 100 pips al giorno ed imposto come moltiplicatore 1.1 se la candela[1] supera i 110 pips di tra open e close allora si impostano gli ordini limit.
STRUMENTO GBPUSD
Per scrivere il codice , utilizza il pulsante <> “insert PRT code”, in modo da rendere il codice più leggibile. Grazie.
La riga 9 è errata in quanto assegni a MYSTOP un prezzo, mentre occorre una differenza di prezzo (oppure una differenza in pips se alla riga 18 usi PLOSS invece di LOSS).
Manca il calcolo di TSELL.
Alla riga 6 verifichi che la cendela del giorno precedente (non di quello appena corrente, cioè appena chiuso) sia rossa, va bene?
Queste precisazioni mi servono per potere replicare la tua situazione esattamente.
Ciao Roberto,
ti spiego il funzionamento a parole:
-Candela daily del lunedi appena chiusa (rispetta la condizione del superamento della volatilità per cui 100 pips, che sarebbe la volatilità media daily di gbpusd x un moltiplicatore compreso tra 1.05 e 1.50)
A questo punto (appena iniziata la candela del martedi) il ts posiziona degli ordini limit al 23.6%-38.2% e 50% del range della candela del lunedi (range= open(lunedi)-close(lunedi))
Take profit = TPSELL (lo metto tra le variabili ma è un numero)
Stop loss = se possibile vorrei inserire il massimo della candela del lunedi
PS: l’esempio con i giorni è solo per farti capire cosa intendo, ma il ts lavora sulle candele di tutti i giorni.
Non hai risposto alla mia precedente domanda “Alla riga 6 verifichi che la cendela del giorno precedente (non di quello appena corrente, cioè appena chiuso) sia rossa, va bene?“, questo perché mi parli di candela appena chiusa (identificata con [0] oppure niente) però nell’esempio fai riferimento alla [1] che è quella precedente a quella appena chiusa! C’è una contraddizione tra quanto hai scritto (candela del lunedì appena chiusa) e codice da te scritto (che farebbe riferimento a quella del venerdì).
Quando parli di range in realtà intendi l’ampiezza del corpo della candela, perché il range è dato da HIGH – LOW. Comunque questo va bene. Il punto in questione è quello sopra.