errore nell’incrocio medie mobili esponenziali

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • #142146 quote
    Ciurno981
    Participant
    Average

    Ho fatto un programma in che tiene conto di due medie a 9 e 21 periodi nel time frame orario, ed l’indicatore stocastico nel 5 minuti, le condizioni sono che se nel time frame 1h la media a 9 periodi è sotto la media a 21 e lo stocastico e in ipercomprato deve entrare short,mentre se la media  9 periodi e sopra la 21 e lo stocastico è in ipervenduto deve entrare long,ma ho notato mentre controllavo le posizioni che pure avendo incrociato la media a 9 periodi verso il basso, mi apriva comunque posizioni long nell’ora successiva per poi, cambiare e aprire posizioni short che è quello che dovrebbe succedere mi sapete dire perchè?grazie

    Vi allego due foto per farvi capire il punto preciso dove intendo

    Media-mobile.png Media-mobile.png Media-mobile-2.png Media-mobile-2.png
    #142177 quote
    robertogozzi
    Moderator
    Master

    Posta il codice.

    #142210 quote
    Ciurno981
    Participant
    Average
    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

     

    Le condizioni sono che deve entrare long quando la media 9 periodi si trova sopra la media a 21 periodi nel timeframe h1 e lo stocastico deve incrociare al rialzo il valore 20, mentre deve entrare short quando la media a 9 periodi si trova sotto la media a 21 periodi e lo stocastico deve incrociare verso l’alto il valore 20, ma ho notato spesso che quando c’è l’incrocio delle due medie e già si sono leggermente distanziate mi continua ad aprire posizioni dal verso sbagliato come posso fare? grazie
    #142213 quote
    robertogozzi
    Moderator
    Master

    Aggiungi

    And Not OnMarket

    alle condizioni d’entrata alle righe 21 e 35.

    #142244 quote
    Ciurno981
    Participant
    Average

    Ho inserito quello che mi ha detto lei ma ancora sbagliato le ho postato due foto dove mi fa un entrata long alle 18:35 (time frame 5 minuti) anche se l’incrocio delle due medie nell?timeframe h1 già c’è stato con la candela  che va dalle 17 alle 18 come in foto

    code2.png code2.png
    #142257 quote
    robertogozzi
    Moderator
    Master

    Mi occorre sapere:

    • lo strumento tradato
    • data ed ora della candela
    • settaggi esatti (sono ESATTAMENTE gli stessi di cui sopra?)
    #142261 quote
    Ciurno981
    Participant
    Average

    Lo strumento tradato: EUR/USD

    Candela: mercoledi 19 agosto 17:00 timeframe h1 dove c’è stato l’incrocio delle due medi mobili, mentre aperta posizione nella candela mercoledi 19 agosto 18:35 time frame 5 minuti

    I settaggi sono: medie mobili esponenziali 9 e 21 periodi, stocastico (5,3,3)

    Stoploss:3.5

    Takeprofit:10.5

    Grazie per l’aiuto

    #142265 quote
    robertogozzi
    Moderator
    Master

    Va bene, la candela che ha registrato l’incrocio è quella aperta alle 17, ma l’incrocio viene rilevato alla chiusura, cioè alle 18 e vale fino alla chiusura della barra successiva, cioè le 19.

    Nella foto dei due grafici messi insieme si vede bene la sovrapposizione dei tempi. Col cursore fermo sulla candela oraria che apre alle 18, nel TF a 5 minuti si vede che ti viene evidenziata l’ultina candela a 5 minuti, quella che chiude alle 19 (ed si è aperta alle 17:55), mentre la parte grigiata è quella dell’intera ora coinvolta, che parte alle 18:00.

    Se vuoi provare a non attendere la chiusura delle candele orarie, ma solo quella delle candele a 5 minuti (in questo caso rileverà prima l’incrocio, ma potrebbe non essere confermato alla chiusura), sostituisci “UPDATEONCLOSE” con “DEFAULT” dove c’è TIMEFRAME, così:

    TIMEFRAME(1 hour,default)

    questo significa che farà le verifiche e gli aggiornamenti delle variabili ad 1 ora secondo il passo stabilito dal TF di default (quello più piccolo, in questo caso 5 minuti, ma potrebbe essere anche 15 minuti o 2 minuti o 10 secondi, secondo le tue preferenze).

    Vedi cosa succede, poi decidi quele soluzione va meglio per te.

    Ciurno981 thanked this post
    x-9.jpg x-9.jpg
    #142287 quote
    Ciurno981
    Participant
    Average

    Grazie per il tuo aiuto è migliorato molto grazie a te, ti volevo chiedere se volessi aggiungere un trailing stop a 7 periodi in timeframe 5 minuti con stop loss 3,5 pips+ valore atr e take profit 3 volte lo stoploss come dovrei modificare il codice qua sopra?

    #142413 quote
    robertogozzi
    Moderator
    Master

    Per SL e TP con Average True Range ti ho già risposto sull’altro topic.

    Per il trailing stop scrivi:

    TIMEFRAME(5 minute,UpdateOnClose)
    // trailing stop code

    dove ho scritto TRAILING STOP CODE copiaci le righe dalla 17 alla 56 di questo link https://www.prorealcode.com/blog/trading/complete-trailing-stop-code-function/.

    Dovrai solo modificare i due valori, TRAILINGSTART e TRAILINGSTEP, per dirgli dopo quanti pips iniziare ed il passo da tenere.

    #142476 quote
    Ciurno981
    Participant
    Average

    No forse non mi sono spiegato bene io vorrei usare il valore dell’atr per decidere  lo stop loss e il take profit senza che segua l’operazione,ad esempio deve farmi un entrata short voglio che prenda il valore dell’atr e lo divida per 2-3(questo lo devo decidere) e il take profit sia 3 volte lo stop loss. Per me è importante solo il valore dell’atr nel momento in cui apro la posizione per decidere la perdita e il profitto,non mi deve seguire la posizione e spostrmeli, spero di essere stato più chiaro.

    #142483 quote
    robertogozzi
    Moderator
    Master

    Non è che non ti sei spiegato bene, è che non hai letto bene.

    #142491 quote
    robertogozzi
    Moderator
    Master

    Più che non avere letto bene, direi che è necessaria un’interpretazione che forse non è facile.

    SE vuoi che l’ATR non segua l’andamento dell’operazione devi aggiungere, alle tue condizioni della riga 1, la condizione:

    AND Not OnMarket

    in questo modo quando è a mercato il resto delle operazioni non viene eseguita, quindi SL e TP restano invariati per tutto il tempo.

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

errore nell’incrocio medie mobili esponenziali


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
Ciurno981 @ciurno981 Participant
Summary

This topic contains 12 replies,
has 2 voices, and was last updated by robertogozzi
5 years, 5 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 08/20/2020
Status: Active
Attachments: 4 files
Logo Logo
Loading...