Breakout strategy only going long..

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • #241850 quote
    Joefalchetto
    Participant
    New

    Hi guys,

    I’m making a strategy for the breakout of the 15 min range of the NY open.
    This is the code. I have nice results, but I can’t make the code open sellshort positions, don’t understand why, can somebody help?
    Thank you!

    Ciao ragazzi,

    Sto creando una strategia per la rottura del range di 15 minuti dell’apertura di NY.
    Questo è il codice. Ho buoni risultati, ma non riesco a far aprire al codice posizioni sellshort, non capisco perché, qualcuno può aiutarmi?
    Grazie!

    // Parametri per il trading
    defparam flatafter = 200000
    defparam flatbefore = 154500
    defparam cumulateorders = false
    
    // Intervallo per calcolare il range
    startRangeTime = 153000
    endRangeTime = 154500
    
    // Inizializzazione delle variabili
    if barindex = 0 then
    rangeHigh = 0
    rangeLow = 0
    endif
    
    // Aggiornamento del range durante l'intervallo specificato
    if time >= startRangeTime and time <= endRangeTime then
    rangeHigh = max(high, rangeHigh)
    rangeLow = min(low, rangeLow)
    endif
    
    // Condizioni per il breakout (dopo l'intervallo)
    if time > endRangeTime then
    // Breakout al rialzo
    if close > rangeHigh then
    buy 1 contract at market
    // Breakout al ribasso
    elsif close < rangeLow then
    sellshort 1 contract at market
    endif
    endif
    #241851 quote
    druby
    Participant
    New

    Sulla riga 12, rangeHigh = 0 , la riga 18 rangeHigh è impostata su max di (high,rangeHigh). Poiché il massimo > 0 , allora rangeHigh = alto.

    Tuttavia, la riga 13 rangeLow = 0, la riga 19 rangeLow è impostata su min di (low, rangeLow). Poiché il basso > 0, allora rangeLow = 0.

    Il valore minimo non può mai essere inferiore a zero, quindi la condizione non è mai vera per la riga 28.

    #241853 quote
    druby
    Participant
    New

    Inoltre, la riga 17 non può essere uguale a ‘=’ allo stesso tempo.

    Una soluzione semplice, la riga 13 impostata a 1.000.000.
    Rimuovi ‘=’ dall’ora di fine della riga 17.
    Il prossimo problema sarà l’azzeramento degli intervalli, poiché diventeranno sempre più grandi (alti) o più piccoli (bassi).

    #241855 quote
    Joefalchetto
    Participant
    New

    Grazie mille intanto per la velocissima risposta. Chiarissimo il concetto sul problema a riga 13 e anche gli altri.
    Mi puoi spiegare cosa intendi con l’azzeramento degli intervalli e di perché tenderanno ad aumentare o diminuire?
    Grazie infinite!

    #241858 quote
    druby
    Participant
    New

    Aggiungere le righe di codice seguenti alla fine del programma.

    Questi dovrebbero evidenziare i livelli di intervallo alto e basso.

    Si noterà che, quando il tempo è attivo e un intervallo viene interrotto, il valore dell’intervallo viene aggiornato al nuovo valore.

    Basta guardare la gamma alta, questa diventerà sempre più alta ad ogni pausa.

    Se in una tendenza, questo potrebbe essere buono ad ogni breakout verso un nuovo massimo di tendenza.

    Tuttavia, quando si arriva al punto più alto, non c’è alcuna implementazione nel codice per reimpostare il livello a un livello più basso.

    Questo sarebbe lo stesso ma opposto per la pausa bassa.

    Col passare del tempo, gli intervalli finiranno sempre più per essere estremamente alti e bassi. Ciò si tradurrà in una notevole quantità di tempo prima che la chiusura possa rompere nuovamente uno qualsiasi dei livelli.

    graphonprice rangeHigh coloured("lime")
    graphonprice rangeLow coloured("red")
    #241860 quote
    druby
    Participant
    New

    Tieni presente che, in un programma di test retrospettivo, ci sono altre 1000 barre precaricate, come impostazione predefinita, oltre alle barre nel grafico.

    Ho aggiunto più unità al grafico per vedere perché la linea bassa non era nella sua posizione predefinita.

    Il minimo è stato rotto da qualche parte nella sezione delle barre di precarico.

    #241872 quote
    robertogozzi
    Moderator
    Master

    @Joefalchetto

    Pubblica solo nella lingua del forum in cui stai postando. Ad esempio solo l’inglese nei forum di lingua inglese e il francese solo nei forum di lingua francese. Grazie 🙂

    Joefalchetto thanked this post
    #241882 quote
    Joefalchetto
    Participant
    New

    Thank you!!
    So I imagine that I should reset the interval everyday? There is a function for this?

    Grazie!!
    Quindi immagino che dovrei reimpostare l’intervallo ogni giorno? C’è una funzione per questo?

    #241887 quote
    druby
    Participant
    New

    Prova quanto segue.
    Linea 11,
    if intradaybarindex = 0 then
    Linea 12,
    rangeHigh = low
    linea 13,
    rangeLow = high

    INTRADAYBARINDEX tiene il conto delle barre nel grafico in modo simile a BARINDEX, ma si azzera ogni giorno.

    Poiché le linee di intervallo vengono ripristinate ogni giorno, la creazione di valori predefiniti come sopra, aiuta con il ridimensionamento del grafico con le linee di intervallo visualizzate.

    #241891 quote
    robertogozzi
    Moderator
    Master

    @Joefalchetto

    Per favore leggi bene le regole basilari ben evidenziate in giallo più sotto.

    Grazie 🙂

    Joefalchetto thanked this post
    #241916 quote
    JS
    Participant
    Senior

    Ciao,
    Se utilizzi un intervallo di tempo di 15 minuti e il “range” che vuoi applicare è anch’esso di 15 minuti, puoi recuperare tutte le informazioni con:

    defparam flatafter = 200000
    defparam flatbefore = 154500
    defparam cumulateorders = false
    
    if OpenTime = 153000 then
    rangeHigh = High
    rangeLow = Low
    endif
    
    if close > rangeHigh then
    buy 1 contract at market
    elsif close < rangeLow then
    sellshort 1 contract at market
    endif
    Iván González thanked this post
    #242791 quote
    Joefalchetto
    Participant
    New

    Ciao, grazie per il tuo tempo!
    Ho notato che il codice non chiude le operazioni dopo il tempo selezionato (200000). Qualcuno ha qualche idea su questo?

    #242818 quote
    robertogozzi
    Moderator
    Master

    A me  chiude tutte le operazioni alle 20.

    Verifica che tu usi una timeframe in cui ci sia una barra che chiude/apre alle ore 20.

Viewing 13 posts - 1 through 13 (of 13 total)
  • You must be logged in to reply to this topic.

Breakout strategy only going long..


Supporto ProOrder

New Reply
Author
Summary

This topic contains 12 replies,
has 4 voices, and was last updated by robertogozzi
1 year ago.

Topic Details
Forum: Supporto ProOrder
Language: Italian
Started: 12/28/2024
Status: Active
Attachments: 3 files
Logo Logo
Loading...