Strategia Ichimoku + HA

Viewing 15 posts - 1 through 15 (of 16 total)
  • Author
    Posts
  • #116340 quote
    Sirobi
    Participant
    Junior

    Buonasera a tutti,

    vi chiedo un aiuto in merito a questa strategia. Vorrei aprire una posizione long quanto l’Heikin Ashi è blu (rialzista), solo ed esclusivamente quando il prezzo è sopra la Kumo verde (rialzista), chiudere il long, non appena la candela diventa rossa.

    Vi allego il codice che ho usato ed uno screenshot della posizione aperta. Il problema è il seguente : apertura long giusta, ma avrebbe dovuto aprirne più di una (anzichè una soltanto) e la chiusura non è avvenuta alla comparsa della candela rossa, bensì prima).

    Vi ringrazio fin da subito per un aiuto ad imparare come scrivere il codice corretto.

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    
    // Condizioni per entrare su posizioni long
    indicator1 = SenkouSpanA[9,26,52]
    c1 = (close[1] > indicator1[1])
    c2 = (close[1] >= open[1])
    indicator2 = SenkouSpanA[9,26,52]
    indicator3 = SenkouSpanB[9,26,52]
    c3 = (indicator2 CROSSES OVER indicator3)
    
    IF c1 AND c2 AND c3 THEN
    BUY 1 SHARES AT MARKET
    ENDIF
    
    // Condizioni per uscire da posizioni long
    c4 = (close[1] < open[1])
    
    IF c4 THEN
    SELL AT MARKET
    ENDIF
    Immagine.jpg Immagine.jpg
    #116353 quote
    robertogozzi
    Moderator
    Master

    A parte ogni altra verifica, tu non stai applicando la strategia alle candele HA, ma a quelle normali giapponesi.

    Alla riga 3 inserisci queste righe per definire le candele HA:

    once haOpen = open
    haClose = (open+close+high+low)/4
    if barindex > 0 then
       haOpen = (haOpen+haClose[1])/2
    endif
    //haLow = min(low,min(haClose,haOpen))
    //haHigh = max(high,max(haClose,haOpen))

    poi sostituisci, nelle righe successive, ogni CLOSE con haClose.

    Provalo così intanto, ma credo dovremo modificare anche i calcoli  delle SpanA e SpanB, perché così come sono credo anch’esse facciano i calcoli sulle candele giapponesi.

    Nella definizione delle HA ho commentato le ultime due righe perché tu non usi mai Low e High.

    Un’ultima cosa, tu fai sempre riferimento alla candela precedente mettendo [1]  dopo CLOSE, è voluto oppure è un errore?

    #116409 quote
    Sirobi
    Participant
    Junior

    Grazie Roberto,

    non sapevo come impostare le HA nel codice, grazie per avermelo insegnato.

    Purtroppo però non è cambiato un gran che… evidentemente sbaglio a impostare le altre condizioni. Ti allego il nuovo codice modificato come da tua indicazione. Come dici tu, dovremo cambiare anche il settaggio della SpanA e SpanB.

    Per rispondere alla tua domanda del riferimento alla candela precedente, l’ho inserita semplicemente perchè in questo modo avevo almeno 1 long aperto, nel tratto di trend che ho screenshottato, togliendo [1] non ho neppure quel segnale aperto…

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    
    once haOpen = open
    haClose = (open+close+high+low)/4
    if barindex > 0 then
    haOpen = (haOpen+haClose)/2
    endif
    //haLow = min(low,min(haClose,haOpen))
    //haHigh = max(high,max(haClose,haOpen))
    
    // Condizioni per entrare su posizioni long
    indicator1 = SenkouSpanA[9,26,52]
    c1 = (haclose > indicator1)
    c2 = (haclose >= haopen)
    indicator2 = SenkouSpanA[9,26,52]
    indicator3 = SenkouSpanB[9,26,52]
    c3 = (indicator2 CROSSES OVER indicator3)
    
    IF c1 AND c2 AND c3 THEN
    BUY 1 SHARES AT MARKET
    ENDIF
    
    // Condizioni per uscire da posizioni long
    c4 = (haclose < haopen)
    
    IF c4 THEN
    SELL AT MARKET
    ENDIF
    
    #116412 quote
    robertogozzi
    Moderator
    Master

    Prova questa (io ho solo fatto verifiche sintattiche):

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    //     settaggi candele HA
    once haOpen = open
    haClose = (open+close+high+low)/4
    if barindex > 0 then
    haOpen = (haOpen+haClose)/2
    endif
    haLow  = min(low,min(haClose,haOpen))
    haHigh = max(high,max(haClose,haOpen))
    //
    //     settaggi e parametri Ichimoku
    //
    Tenkansen = (highest[9](haHigh)  + lowest[9](haLow))  / 2        //media Veloce
    Kijunsen  = (highest[26](haHigh) + lowest[26](haLow)) / 2        //media LENTA
    SpanA     = (tenkansen[26] + kijunsen[26]) / 2
    SpanB     = (highest[52](haHigh[26]) + lowest[52](haLow[26])) / 2
    //Chikou  = haClose[26]
    //
    // Condizioni per entrare su posizioni long
    indicator1 = SpanA
    c1 = (haclose > indicator1)
    c2 = (haclose >= haopen)
    indicator2 = SpanA
    indicator3 = SpanB
    c3 = (indicator2 CROSSES OVER indicator3)
     
    IF c1 AND c2 AND c3 THEN
    BUY 1 SHARES AT MARKET
    ENDIF
     
    // Condizioni per uscire da posizioni long
    c4 = (haclose < haopen)
     
    IF c4 THEN
    SELL AT MARKET
    ENDIF
    #116413 quote
    robertogozzi
    Moderator
    Master

    Ho dovuto ridefinire ICHIMOKU perché con IG non ho la versione 11. Avrei la 11 in formato gratuito con i dati di fine giornata, ma non ho candele intraday quindi non la uso.

    #116415 quote
    Sirobi
    Participant
    Junior

    Grazie Roberto,

    ho provato il codice che mi hai dato, ma mi da errore alla riga 14 e 15 dicendomi che mancano dei caratteri..

    #116417 quote
    robertogozzi
    Moderator
    Master

    E’ dovuto alla v11. La 10.3 non ha le nuove istruzioni per Ichimoku, per cui le ho definite io. Eeventualmente i due nomi, Tenkansen e Kijunsen, sono riservati sulla tua versione e dobbiamio cambiarli, basta che aggiungi una lettera qualunque, diciamo X, in modo che diventino TenkansenX e KijunsenX (sia alle righe 14 e 15 che alle successive dove si fa riferimento a quelle variabili, mi pare ci sia solo la riga 16, in ogni caso ti verrebbe segnalato se ce ne fossero altre).

    #116468 quote
    Sirobi
    Participant
    Junior

    Funziona alla perfezione! 🙂

    Grazie Roberto

    #116930 quote
    Sirobi
    Participant
    Junior

    Ciao Roberto,

    visto che il codice funziona perfettamente grazie alle tue indicazioni, ti chiedo se è possibile implementare la seguente funzione: c’è un modo per dire alla strategia di aprire un long o uno short alle stesse condizioni ma non alla prima candela positiva in caso di long o alla prima candela negativa in caso di short, bensì dopo n candele positive o n candele negative ?

    Grazie in anticipo

    #116945 quote
    robertogozzi
    Moderator
    Master

    Eccolo modificato, all’inizio ho messo 3 candele consecutive, ma puoi variarlo da 1 a quello che vuoi:

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    ONCE NumeroBarre = 3
    //     settaggi candele HA
    once haOpen = open
    haClose = (open+close+high+low)/4
    if barindex > 0 then
       haOpen = (haOpen+haClose)/2
    endif
    haLow  = min(low,min(haClose,haOpen))
    haHigh = max(high,max(haClose,haOpen))
    //
    //     settaggi e parametri Ichimoku
    //
    Tenkansen = (highest[9](haHigh)  + lowest[9](haLow))  / 2        //media Veloce
    Kijunsen  = (highest[26](haHigh) + lowest[26](haLow)) / 2        //media LENTA
    SpanA     = (tenkansen[26] + kijunsen[26]) / 2
    SpanB     = (highest[52](haHigh[26]) + lowest[52](haLow[26])) / 2
    //Chikou  = haClose[26]
    //
    // Condizioni per entrare su posizioni long
    indicator1 = SpanA
    c1 = (haclose > indicator1)
    c2 = (summation[NumeroBarre](haclose >= haopen) = NumeroBarre)
    indicator2 = SpanA
    indicator3 = SpanB
    c3 = (indicator2 CROSSES OVER indicator3)
     
    IF c1 AND c2 AND c3 THEN
       BUY 1 SHARES AT MARKET
    ENDIF
     
    // Condizioni per uscire da posizioni long
    c4 = (haclose < haopen)
     
    IF c4 THEN
       SELL AT MARKET
    ENDIF

    quindi ho solo aggiunto la riga 3 ed ho modificato la riga 24 (prima era la 23).

    #117027 quote
    Sirobi
    Participant
    Junior

    Grazie ancora Roberto, domani lo carico su.

    Buona serata

    #119057 quote
    Sirobi
    Participant
    Junior

    Ciao Roberto,

    sto testando la strategia da alcune settimane, con discreto successo. Vorrei integrare un’ antimartingala come money managment. L’antimartingala funziona in questo modo : all’apertura del segnale di entrata a mercato, vengono fatti successivi tre ingressi a distanza fissa tra loro (in pratica la differenza tra segnale di ingresso e segnale di uscita viene divisa in 4 entrate). Gli stop loss sono effettuati nel seguente modo : lo stop loss del primo ingresso ha un R/R pari a 1:1, così come per tutti gli altri tre ingressi.

    Pensi sia possibile inserire questi parametri all’interno del codice ?

    Come sempre ti ringrazio per la pazienza.

    #119072 quote
    robertogozzi
    Moderator
    Master

    Purtroppo non si possono fare chiusure parziali e può esserci un solo stop loss che sarà calcolato dal prezzo medio tra i vari prezzi d’ingresso.

    #119241 quote
    Sirobi
    Participant
    Junior

    Grazie Roberto per la risposta.

    Pensi ci possa essere qualcuno che possa fare un EA (ovviamente pagando), per raggiungere questo obiettivo ?

    #119242 quote
    robertogozzi
    Moderator
    Master

    Per i servizi a pagamento puoi visitare questa pagine e compilare la richiesta https://www.prorealcode.com/trading-programming-services/.

    Però IG non consente la chiusura parziale delle posizioni aperte (almeno quelle in automatico), anche se stanno lavorando per fare in modo che in un futuro si possa, magari entro fine anno. Quindi quando fai la richiesta riformula la domanda, perché così com’è conosci già la risposta: c’è un solo stop loss per tutte le posizioni aperte.

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

Strategia Ichimoku + HA


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
Sirobi @sirobi Participant
Summary

This topic contains 15 replies,
has 2 voices, and was last updated by Sirobi
6 years ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 01/09/2020
Status: Active
Attachments: 1 files
Logo Logo
Loading...