Ciao a tutti, ho per la prima volta creato questo codice che lavora sul dax con tf a 5min. :
// 5min. dax con spread ad 1
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.
DEFPARAM FLATBEFORE = 080000
// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
DEFPARAM FLATAFTER = 220000
// Impedisce al sistema di tradare in giorni specifici della settimana
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
mom = 12 //default 10
mom2 = 8 //defaul 5
mom3 = 30 //dafault 30
mom4 = 5 //default 5
// Condizioni per entrare su posizioni long
indicator1, ignored = CALL "PRC_ATR&Volume adj Momentum"[mom, 0, mom2, mom3, mom4](close)
c1 = (indicator1 > 10)
ignored, indicator2 = CALL "PRC_ATR&Volume adj Momentum"[mom, 0, mom2, mom3, mom4](close)
c2 = (indicator2 <= 19)
IF (c1 AND c2) AND not daysForbiddenEntry THEN
BUY 2 CONTRACT AT MARKET
ENDIF
// Condizioni per uscire da posizioni long
indicator3, ignored = CALL "PRC_ATR&Volume adj Momentum"[mom, 0, mom2, mom3, mom4](close)
c3 = (indicator3[1] < 1)
IF c3 THEN
SELL AT MARKET
ENDIF
// Condizioni per entrare su posizioni short
indicator4, ignored = CALL "PRC_ATR&Volume adj Momentum"[mom, 0, mom2, mom3, mom4](close)
c4 = (indicator4 <= 0)
ignored, indicator5 = CALL "PRC_ATR&Volume adj Momentum"[mom, 0, mom2, mom3, mom4](close)
c5 = (indicator5[1] <= 0)
IF (c4 AND c5) AND not daysForbiddenEntry THEN
SELLSHORT 2 CONTRACT AT MARKET
ENDIF
// Condizioni per uscire da posizioni short
indicator6, ignored = CALL "PRC_ATR&Volume adj Momentum"[mom, 0, mom2, mom3, mom4](close)
c6 = (indicator6 > 0)
IF c6 THEN
EXITSHORT AT MARKET
ENDIF
// Stop e target
SET STOP pLOSS 15
SET TARGET pPROFIT 45
Vi chiedo aiuto perché non riesco a trovare un modo per poterlo ottimizzare in quanto capita che l’ingresso sia ottimo ma l’uscita non porti poi benefici sperati. Nel senso vorrei trovare un modo di inserire un stop in pari se il trade è in positivo dopo n candele o se sono già in guadagno di n € (una variabile da definire) mantenendo anche lo stop fisso e se fosse possibile inserire una specie di trailing per non mangiarmi un possibile guadagno o cmq limitare la possibilità che il trade da positivo torni in pari o persino in negativo. Cosa mi consigliate ?
Grazie a chi mi risponderà.
PRC_ATR&Volume non esistono è un tuo indicatore creato ad hoc?
Ciao, no, è un’indicatore scaricato dalla sezione indicatori postato se non ricordo male da Nicolas.
Ciao, a me 5 minuti mi sembra una complicazione inutile, prova questo a 15 minuti con trailing stop
compra quando l’indicatore è >0 e vende quando è<0…. è semplice con molti errori ma è più profittevole, poi ci lavori sopra
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Condizioni per entrare su posizioni long
indicator1, ignored = CALL “PRC_ATR&Volume adj Momentum”[10, 0, 5, 5, 30](close)
c1 = (indicator1 >= 0)
IF c1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Condizioni per entrare su posizioni short
indicator2, ignored = CALL “PRC_ATR&Volume adj Momentum”[10, 0, 5, 5, 30](close)
c2 = (indicator2 < 0)
IF c2 THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
// Stop e target
SET STOP pTRAILING 6
provalo anche a 4 ore ti fai 4 risate per il valore che raggiunge in 7 mesi
Ok, grazie per il tuo suggerimento. Proverò come mi hai scritto e poi ti dico 🙂
Porca trota … sul 4 ore è impressionante mentre sul 15 min non da buoni risultati.
C’è da lavorarci.
Il problema è che il probacktest non funziona tick per tick. Oltretutto se provo il test tick per tick fin dove funziona mi uccide il capitale, mentre nell’altro modo no.
Cosa si potrebbe fare ?
Dobbiamo lavorarci su migliorando le posizioni di ingresso priva a fare una stampa del grafico a 4 ore guarda quante ne sbaglia bisogna riparametrare l indicatore atr in modo che sia più reattivo. Oggi in modalità reale mi ha fatto 40 euro in demo ma è stato un caso fortuito… direi di mandare avanti il 4 h se sei d accordo
Si, credo che il 4 h sia la soluzione migliore. Credo che possa essere una buona strategia 😉
L’unico punto è che io non dispongo della cifra iniziale che viene impostata in automatico quando si crea una nuova strategia.
Quindi, per quanto mi riguarda, la strategia dovrebbe essere profittevole con una partenza di 1000 euro e uno spread impostato a 1.
Inoltre in altre strategie io imposto normalmente questi “paletti” :
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.
DEFPARAM FLATBEFORE = 080000
// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
DEFPARAM FLATAFTER = 220000
// Impedisce al sistema di tradare in giorni specifici della settimana
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
Se sei d’accordo, procederei così.
Grazie per la tua disponibilità.
ok
per il dax eur 5 mini uso capitale 10.000 e spread 2 punti (perché sarebbe 1 punto ma i costi extra ci sono sempre). Basta che per qualsiasi motivo ti apra 2 posizioni e fai in fretta ad avere 5000 euro di margine richiesto.
Ho provato modificando indicatore con avg type=5, così è più reattivo
dobbiamo fare in modo che rimanga di più a mercato , aumentando il numero barre
Ti ho allegato un’immagine che rappresenta il problema dell’inversione di tendenza che dobbiamo risolvere ; vedi rettangoli, il sistema entra ancora short quando è diventato long e viceversa….
Il codice è stato modificato in creazione semplificata mettendo atr volume …. > segnale per il long e atrvolume….<segnale
Senti questo tipo di dax è un futures e lavora anche di notte quindi se fai flat prima delle 8 e dopo le 22 ti tagli molti profitti…!!!!
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Impedisce al sistema di tradare in giorni specifici della settimana
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
// Condizioni per entrare su posizioni long
indicator1, indicator2 = CALL “PRC_ATR&Volume adj Momentum”[10, 0, 5, 5, 30](close)
c1 = (indicator1 > indicator2)
IF c1 AND not daysForbiddenEntry THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Condizioni per entrare su posizioni short
indicator3, indicator4 = CALL “PRC_ATR&Volume adj Momentum”[10, 0, 5, 5, 30](close)
c2 = (indicator3 < indicator4)
IF c2 AND not daysForbiddenEntry THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
// Stop e target
SET STOP pTRAILING 6
Il taglio profitti è voluto in quanto dalle 8 alle 22 lo spread è di 1 mentre nelle altre fasce orarie lo spread cambia almeno per quanto riguarda il dax.
Ho trovato questa tabella che indica i vari costi : https://www.ig.com/it/indici-costi-margini
Devo premettere che non sono molto forte in programmazione e quindi sono un pò lento nel capire le variazioni al codice.
Non è da molto che mi sono “buttato” in questo nuovo vortice 🙂