Salve ho una domanda per quanto riguarda il trading automatico, nella mia strategia utilizzo lo stocastico nel timi frame a 5 minuti e l’incrocio di medie mobili esponenziali nel timeframe h1 per aprire posizioni long e short nel time frame 5 minuti ma quando vado ad inserire le mie condizioni mi da solo un time frame devo scegliere o h1 o 5 minuti come posso risolvere questo problema? (spero che sono stato chiaro nell’esposizione)
Essendo alle prime esperienze con il trading automatico avevo fatto con le funzioni semplificate cioè attraverso gli indicatori nel grafico impostavo le mie condizioni, è possibile farlo anche senza codice?
No, purtroppo la creazione semplificata non consente di selezionare più time frame.
E’ necessario farlo con il codice.
Posto il codice, dove vorrei che la media a 9 e 21 vengano tenute in conto nel h1 mentre lo stocastico nel 5minuti
// 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 = 000000
// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario “Flat After”
DEFPARAM FLATAFTER = 235900
// Impedisce al sistema di tradare in giorni specifici della settimana
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
// Condizioni per entrare su posizioni long
indicator1 = Average[5](Stochastic[5,8](close))
c1 = (indicator1 CROSSES OVER 20)
indicator2 = ExponentialAverage[9](close)
indicator3 = ExponentialAverage[21](close)
c2 = (indicator2[1] > indicator3[1])
IF (c1 AND c2) AND not daysForbiddenEntry THEN
BUY 1 SHARES AT MARKET
ENDIF
// Condizioni per entrare su posizioni short
indicator4 = Average[5](Stochastic[5,8](close))
c3 = (indicator4 CROSSES UNDER 80)
indicator5 = ExponentialAverage[9](close)
indicator6 = ExponentialAverage[21](close)
c4 = (indicator5[1] < indicator6[1])
IF (c3 AND c4) AND not daysForbiddenEntry THEN
SELLSHORT 1 SHARES AT MARKET
ENDIF
// Stop e target
SET STOP pLOSS 1
SET TARGET pPROFIT 2
Per favore usa sempre il pulsante “Insert PRT code” quando inserisci il codice nei tuoi post per facilitare la lettura degli altri. Grazie 🙂
Devi modificare il codice così, aggiungendo i vari TIMEFRAME:
// 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 = 000000
// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario “Flat After”
DEFPARAM FLATAFTER = 235900
//
TIMEFRAME(default)
// Impedisce al sistema di tradare in giorni specifici della settimana
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
// Condizioni per entrare su posizioni long
indicator1 = Average[5](Stochastic[5,8](close))
c1 = (indicator1 CROSSES OVER 20)
//
TIMEFRAME(1 hour,UpdateOnClose)
indicator2 = ExponentialAverage[9](close)
indicator3 = ExponentialAverage[21](close)
c2 = (indicator2[1] > indicator3[1])
//
TIMEFRAME(default)
IF (c1 AND c2) AND not daysForbiddenEntry THEN
BUY 1 SHARES AT MARKET
ENDIF
// Condizioni per entrare su posizioni short
indicator4 = Average[5](Stochastic[5,8](close))
c3 = (indicator4 CROSSES UNDER 80)
//
TIMEFRAME(1 hour,UpdateOnClose)
indicator5 = ExponentialAverage[9](close)
indicator6 = ExponentialAverage[21](close)
c4 = (indicator5[1] < indicator6[1])
//
TIMEFRAME(default)
IF (c3 AND c4) AND not daysForbiddenEntry THEN
SELLSHORT 1 SHARES AT MARKET
ENDIF
// Stop e target
SET STOP pLOSS 1
SET TARGET pPROFIT 2
Puoi eseguirlo da un grafico a 5 minuti, 1 minuto, 10 minuti, ecc… anche 1 ora.
L’importante è che 1 ora (60 minuti) sia un multiplo del time frame prescelto, quindi non va bene un TF > 1 ora né, ad esempio, un TF di 7 minuti (perché 60 non è un multiplo di 7). Il TF da dove lo esegui DEVE essere sempre il più piccolo.
Tieni presente che lo stop ed il terget indicato NON ha molte possibilità di funzionare. Va bene nel backtest, ma in reale il broker richiede una distanza minima, diversa strumento per strumento, e non credo sia così piccola. Rischi che gli ordini vengano rifiutati.
Occorre chiedere al broker, oppure andare a vedere sul suo sito, quant’è la distanza minima, oppure provare a piazzare un ordine dalla sua piattaforma (senza confermarlo).