Errore al cambio dei valori (da sempre lo stesso risultato)

Viewing 15 posts - 46 through 60 (of 98 total)
  • Author
    Posts
  • #145956 quote
    Ciurno981
    Participant
    Average

    Si ovviamente fare con i pips avrebbe poco senso, stavo pensando se invece facessimo che in un range di pips si entra con determinati lotti ad esempio quando MyAtr è tra 2-5 si entra con 1 lotto se tra 6-9  1 lotto emmezzo e cosi via,sarebbe una cosa lunga anche un po meno precisa però si avvicinerebbe molto alla mia idea si potrebbe fare?

    #146075 quote
    robertogozzi
    Moderator
    Master

    Prova questo:

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = false // Posizioni cumulate attivate
    // 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 = 230100
    // Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario "Flat After"
    DEFPARAM FLATAFTER = 230000
    //
    TIMEFRAME(default)
    // Impedisce al sistema di tradare in giorni specifici della settimana
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    //
    ONCE risk  = 50                                //max. capitale da rischiare
    ONCE lotti = 1                                 //1 lotto per difetto
    MyATR = AverageTrueRange[7](close)*10          // 10 volte atr
    //
    IF MyATR >= 2 AND MyATR <= 5 THEN
       Lotti = 1
    ELSIF MyATR >= 6 AND MyATR <= 9 THEN
       Lotti = 1.5
    ENDIF
    //
    Pips  = Risk / PipValue                        //Ricalcola
    SET STOP   pLOSS Pips
    SET TARGET pPROFIT Pips * 3
    //
    // Condizioni per entrare su posizioni long
    indicator1 = Average[3](Stochastic[5,3](close))
    c1 = (indicator1 CROSSES OVER 20)
    //
    TIMEFRAME(1 hour,default)
    indicator2 = ExponentialAverage[9](close)
    indicator3 = ExponentialAverage[21](close)
    c2 = (indicator2[1] > indicator3[1])
    //
    TIMEFRAME(default)
    IF (c1 AND c2) AND not daysForbiddenEntry THEN
       BUY Lotti SHARES AT MARKET
    ENDIF
    // Condizioni per entrare su posizioni short
    indicator4 = Average[3](Stochastic[5,3](close))
    c3 = (indicator4 CROSSES UNDER 80)
    //
    TIMEFRAME(1 hour,default)
    indicator5 = ExponentialAverage[9](close)
    indicator6 = ExponentialAverage[21](close)
    c4 = (indicator5[1] < indicator6[1])
    //
    TIMEFRAME(default)
    IF (c3 AND c4) AND not daysForbiddenEntry THEN
       SELLSHORT Lotti SHARES AT MARKET
    ENDIF
    TIMEFRAME (5minute,upDateOnClose)
    //************************************************************************
    //trailing stop function
    trailingstart = 20  //trailing will start @trailinstart points profit
    trailingstep  = 5   //trailing step to move the "stoploss"
    //reset the stoploss value
    IF NOT ONMARKET THEN
       newSL=0
    ENDIF
    //manage long positions
    IF LONGONMARKET THEN
       //first move (breakeven)
       IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THEN
          newSL = tradeprice(1)+trailingstep*pipsize
       ENDIF
       //next moves
       IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
          newSL = newSL+trailingstep*pipsize
       ENDIF
    ENDIF
    //manage short positions
    IF SHORTONMARKET THEN
       //first move (breakeven)
       IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THEN
          newSL = tradeprice(1)-trailingstep*pipsize
       ENDIF
       //next moves
       IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
          newSL = newSL-trailingstep*pipsize
       ENDIF
    ENDIF
    //stop order to exit the positions
    IF newSL>0 THEN
       SELL AT newSL STOP
       EXITSHORT AT newSL STOP
    ENDIF
    #146076 quote
    robertogozzi
    Moderator
    Master

    Ovviamente puoi aumentare le line 16-20, aggiungendo altri ELSIF o ELSE:

    IF MyATR >= 2 AND MyATR <= 5 THEN
       Lotti = 1
    ELSIF MyATR >= 6 AND MyATR <= 9 THEN
       Lotti = 1.5
    ELSIF MyATR >= 10 AND MyATR <= 11 THEN
       Lotti = 2
    ELSE
       Lotti = 0.5
    ENDIF
    #146113 quote
    Ciurno981
    Participant
    Average
    DEFPARAM CumulateOrders = false // Posizioni cumulate attivate
    // 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 = 230100
    // Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario "Flat After"
    DEFPARAM FLATAFTER = 230000
    //
    TIMEFRAME(default)
    // Impedisce al sistema di tradare in giorni specifici della settimana
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    //
    ONCE risk  = 50
    ONCE lotti = 10                           //max. capitale da rischiare
    //1 lotto per difetto
    MyATR = AverageTrueRange[7](close)*10        // 10 volte atr
    //
    IF MyATR >= 2 AND MyATR <= 3 THEN
    Lotti = 5
    ELSIF MyATR >= 3 AND MyATR <= 4 THEN
    Lotti = 3.3
    ELSIF MyATR >= 4 AND MyATR <= 5 THEN
    Lotti = 2.5
    ELSIF MyATR >= 5 AND MyATR <= 6 THEN
    Lotti = 2
    ELSIF MyATR >= 6 AND MyATR <= 7 THEN
    Lotti = 1.66
    ELSIF MyATR >=7 AND MyATR <= 8 THEN
    Lotti = 1.42
    ELSIF MyATR >= 8 AND MyATR <= 9 THEN
    Lotti = 1.25
    ELSIF MyATR >= 9 AND MyATR <= 10 THEN
    Lotti = 1.11
    ELSIF MyATR >= 10 AND MyATR <= 11 THEN
    Lotti = 1
    ELSIF MyATR >= 11 AND MyATR <= 12 THEN
    Lotti = 0.91
    ELSIF MyATR >= 12 AND MyATR <= 13THEN
    Lotti = 0.83
    ELSIF MyATR >= 13 AND MyATR <= 14 THEN
    Lotti = 0.77
    ELSIF MyATR >= 14 AND MyATR <= 15THEN
    Lotti = 0.71
    ELSIF MyATR >= 15 AND MyATR <= 16THEN
    Lotti = 0.66
    ELSIF MyATR >= 16 AND MyATR <= 17 THEN
    Lotti = 0.625
    ELSIF MyATR >= 17 AND MyATR <= 18THEN
    Lotti = 0.58
    ELSIF MyATR >= 18 AND MyATR <= 19 THEN
    Lotti = 0.55
    ELSIF MyATR >= 19 AND MyATR <= 20THEN
    Lotti = 0.53
    ENDIF
    //
    //Ricalcola
    SET STOP   pLOSS MyAtr
    SET TARGET pPROFIT MyAtr* 3
    //
    // Condizioni per entrare su posizioni long
    indicator1 = Average[3](Stochastic[5,3](close))
    c1 = (indicator1 CROSSES OVER 20)
    //
    TIMEFRAME(1 hour,default)
    indicator2 = ExponentialAverage[9](close)
    indicator3 = ExponentialAverage[21](close)
    c2 = (indicator2[1] > indicator3[1])
    //
    TIMEFRAME(default)
    IF (c1 AND c2) AND not daysForbiddenEntry THEN
    BUY Lotti SHARES AT MARKET
    ENDIF
    // Condizioni per entrare su posizioni short
    indicator4 = Average[3](Stochastic[5,3](close))
    c3 = (indicator4 CROSSES UNDER 80)
    //
    TIMEFRAME(1 hour,default)
    indicator5 = ExponentialAverage[9](close)
    indicator6 = ExponentialAverage[21](close)
    c4 = (indicator5[1] < indicator6[1])
    //
    TIMEFRAME(default)
    IF (c3 AND c4) AND not daysForbiddenEntry THEN
    SELLSHORT Lotti SHARES AT MARKET
    ENDIF
    TIMEFRAME (5minute,upDateOnClose)
    //************************************************************************
    //trailing stop function
    trailingstart = 20  //trailing will start @trailinstart points profit
    trailingstep  = 5   //trailing step to move the "stoploss"
    //reset the stoploss value
    IF NOT ONMARKET THEN
    newSL=0
    ENDIF
    //manage long positions
    IF LONGONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THEN
    newSL = tradeprice(1)+trailingstep*pipsize
    ENDIF
    //next moves
    IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
    newSL = newSL+trailingstep*pipsize
    ENDIF
    ENDIF
    //manage short positions
    IF SHORTONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THEN
    newSL = tradeprice(1)-trailingstep*pipsize
    ENDIF
    //next moves
    IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
    newSL = newSL-trailingstep*pipsize
    ENDIF
    ENDIF
    //stop order to exit the positions
    IF newSL>0 THEN
    SELL AT newSL STOP
    EXITSHORT AT newSL STOP
    ENDIF
    
    
    graph MyAtr
    graph Lotti
    

    Allora ci siamo più o meno, ho alcune domande, sulla foto myatr è 0,00899 che non riesco a capire quanti pips sono? sono 8.9 o 0.89? poi riguardante il programma ne ho aggiunti altri ed ho ristretto il range, ti volevo dire ho tolto questo:

    Pips  = Risk / PipValue               
    SET STOP   pLOSS Pips
    SET TARGET pPROFIT Pips * 3
    perchè io vorrei che lo stop e il profit sia dato dal valore del  MyAtr, ho calcolato in modo un po approssimativo i valori dei lotti da inserire per cercare di avere una perdita(il valore dei lotti per cercare di avere una massima perdita di 50euro ho fatto 50/myatr tutto /5 euro che è il valore di un pips va bene?) e perchè facendo backtest mi da guadagno e perdita di 0.10 centesimi?
    #146219 quote
    Ciurno981
    Participant
    Average
    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = false // Posizioni cumulate attivate
    // 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 = 230100
    // Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario "Flat After"
    DEFPARAM FLATAFTER = 230000
    //
    TIMEFRAME(default)
    // Impedisce al sistema di tradare in giorni specifici della settimana
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    //
    ONCE risk  = 500
    ONCE lotti = 1000                           //max. capitale da rischiare
    //1 lotto per difetto
    MyATR = AverageTrueRange[7](close)*100        // 10 volte atr
    VR=risk/MyATR
    VR1=VR/5
    IF MyATR >= 0 AND MyATR <= 1 THEN
    Lotti = VR1
    elsIF MyATR >= 1.01 AND MyATR <= 2 THEN
    Lotti = VR1
    elsIF MyATR >= 2.01 AND MyATR <= 3 THEN
    Lotti = VR1
    ELSIF MyATR >= 3.01 AND MyATR <= 4 THEN
    Lotti = VR1
    ELSIF MyATR >= 4.01 AND MyATR <= 5 THEN
    Lotti = VR1
    ELSIF MyATR >= 5.01 AND MyATR <= 6 THEN
    Lotti = VR1
    ELSIF MyATR >= 6.01 AND MyATR <= 7 THEN
    Lotti = VR1
    ELSIF MyATR >=7.01 AND MyATR <= 8 THEN
    Lotti = VR1
    ELSIF MyATR >= 8.01AND MyATR <= 9 THEN
    Lotti = VR1
    ELSIF MyATR >= 9.01 AND MyATR <= 10 THEN
    Lotti = VR1
    ELSIF MyATR >= 10.01 AND MyATR <= 11 THEN
    Lotti = VR1
    ELSIF MyATR >= 11.01 AND MyATR <= 12 THEN
    Lotti = VR1
    ELSIF MyATR >= 12.01 AND MyATR <= 13THEN
    Lotti = VR1
    ELSIF MyATR >= 13.01 AND MyATR <= 14 THEN
    Lotti = VR1
    ELSIF MyATR >= 14.01 AND MyATR <= 15THEN
    Lotti = VR1
    ELSIF MyATR >= 15.01 AND MyATR <= 16THEN
    Lotti = VR1
    ELSIF MyATR >= 16.01 AND MyATR <= 17 THEN
    Lotti = VR1
    ELSIF MyATR >= 17.01 AND MyATR <= 18THEN
    Lotti = VR1
    ELSIF MyATR >= 18.01 AND MyATR <= 19 THEN
    Lotti = VR1
    ELSIF MyATR >= 19.01 AND MyATR <= 20THEN
    Lotti = VR1
    elsIF MyATR >= 20.01 AND MyATR <= 21 THEN
    Lotti = VR1
    ELSIF MyATR >= 21.01 AND MyATR <= 22 THEN
    Lotti = VR1
    ELSIF MyATR >= 22.01 AND MyATR <= 23 THEN
    Lotti = VR1
    ELSIF MyATR >= 23.01 AND MyATR <= 24 THEN
    Lotti = VR1
    ELSIF MyATR >= 24.01 AND MyATR <= 25 THEN
    Lotti = VR1
    ELSIF MyATR >=25.01 AND MyATR <= 26 THEN
    Lotti = VR1
    ELSIF MyATR >=26.01 AND MyATR <= 27 THEN
    Lotti = VR1
    ELSIF MyATR >= 27.01 AND MyATR <= 28 THEN
    Lotti = VR1
    ELSIF MyATR >= 28.01 AND MyATR <= 29 THEN
    Lotti = VR1
    ELSIF MyATR >= 29.01 AND MyATR <= 30 THEN
    Lotti = VR1
    ELSIF MyATR >= 30.01 AND MyATR <= 31THEN
    Lotti = VR1
    ELSIF MyATR >= 31.01 AND MyATR <= 32THEN
    Lotti = VR1
    ELSIF MyATR >= 32.01AND MyATR <= 33 THEN
    Lotti = VR1
    ELSIF MyATR >= 33.01 AND MyATR <= 34THEN
    Lotti = VR1
    ELSIF MyATR >= 34.01 AND MyATR <= 35THEN
    Lotti = VR1
    ELSIF MyATR >= 35.01 AND MyATR <= 36 THEN
    Lotti = VR1
    ELSIF MyATR >= 36.01 AND MyATR <= 37THEN
    Lotti = VR1
    ELSIF MyATR >= 37.01 AND MyATR <= 38 THEN
    Lotti = VR1
    ELSIF MyATR >= 38.01 AND MyATR <= 39THEN
    Lotti = VR1
    ENDIF
    //
    //Ricalcola
    SET STOP   pLOSS MyAtr
    SET TARGET pPROFIT MyAtr*3
    //
    // Condizioni per entrare su posizioni long
    indicator1 = Average[3](Stochastic[5,3](close))
    c1 = (indicator1 CROSSES OVER 20)
    //
    TIMEFRAME(1 hour,default)
    indicator2 = ExponentialAverage[9](close)
    indicator3 = ExponentialAverage[21](close)
    c2 = (indicator2[1] > indicator3[1])
    //
    TIMEFRAME(default)
    IF (c1 AND c2) AND not daysForbiddenEntry THEN
    BUY Lotti SHARES AT MARKET
    ENDIF
    // Condizioni per entrare su posizioni short
    indicator4 = Average[3](Stochastic[5,3](close))
    c3 = (indicator4 CROSSES UNDER 80)
    //
    TIMEFRAME(1 hour,default)
    indicator5 = ExponentialAverage[9](close)
    indicator6 = ExponentialAverage[21](close)
    c4 = (indicator5[1] < indicator6[1])
    //
    TIMEFRAME(default)
    IF (c3 AND c4) AND not daysForbiddenEntry THEN
    SELLSHORT Lotti SHARES AT MARKET
    ENDIF
    TIMEFRAME (5minute,upDateOnClose)
    //************************************************************************
    //trailing stop function
    trailingstart = 20  //trailing will start @trailinstart points profit
    trailingstep  = 5   //trailing step to move the "stoploss"
    //reset the stoploss value
    IF NOT ONMARKET THEN
    newSL=0
    ENDIF
    //manage long positions
    IF LONGONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THEN
    newSL = tradeprice(1)+trailingstep*pipsize
    ENDIF
    //next moves
    IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
    newSL = newSL+trailingstep*pipsize
    ENDIF
    ENDIF
    //manage short positions
    IF SHORTONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THEN
    newSL = tradeprice(1)-trailingstep*pipsize
    ENDIF
    //next moves
    IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
    newSL = newSL-trailingstep*pipsize
    ENDIF
    ENDIF
    //stop order to exit the positions
    IF newSL>0 THEN
    SELL AT newSL STOP
    EXITSHORT AT newSL STOP
    ENDIF
    
    
    graph MyAtr
    graph Lotti
    graph VR1
    graph MyAtr*3

    ok credo di aver capito adesso più o meno torna, ma non capisco perchè sulle posizioni mi da, numero barre zero?Cioè apre e chiude la posizione nella stessa candela?!

    #146460 quote
    robertogozzi
    Moderator
    Master

    Per favore non duplicare i post!

    Tu l’hai addiruttura triplicato inserendone uno nel forum sbagliato!

    Può solo frammentare le informazioni in quanto qualcuno può risponderti ad un post, qualcun altro ad altri post, col risultato di rendere più difficile trovare le informazioni.

    Hai postato qui Venerdì sera, adesso è Lunedì mattina e c’è stato un fine settimana nel mezzo in cui non sempre c’è qualcuno disponibile. Le risposte vengono date da trader appassionati e volontari, quando hanno dei momenti liberi. A volte ne hanno di più, altre di meno.

    Ti prego di avere pazienza e di rispettare le regole basilari ben evidenziate in giallo quoi sotto.

    Grazie 🙂

    #146483 quote
    robertogozzi
    Moderator
    Master

    E’ impossibile capire cosa vuoi fare, vedo che hai impostato 1000 lotti, cerca di acquistarne oltre 50000!

    Sul mini EurGbp non sono sufficientoi 10 milioni di capitale! Hai SL di 2 dollari, il che comporta sempre una chiusura in perdita.

    Lasciamo perdere quanto detto e fatto finora, ripartiamo da zero, con la tua strategia di base.

    Devi ripartire a spiegarmi:

    • cosa vuoi fare con l’ATR
    • quanto vuoi perdere, al massimo, ogni volta e quanto vuoi guadagnare
    • per limitare la perdita vuoi agire sui Pip, oppure sui Lotti? Si può anche agire innanzitutto sui Lotti e se il risultato è inferiore al numero minimo di lotti mettere il minimo e provare ad agire sui Pips

    Un suggerimento, quando fai il backtest e le prove, fallo con un numero minimo di lotti e capitale, per vedere se funziona basta 1 lotto, non ne servono 1000, tanto quando l’hai provato con 1 lotto basta che moltiplichi tutto per 1000 ed è fatta, però con i numeri grandi come hai messo le cifre sono più difficili da interpretare.

    #146492 quote
    Ciurno981
    Participant
    Average

    Si forse si è creata un po di confusione, io vorrei un atr di 7 periodi che mi definisca il mio stop loss che si a di 50 euro quindi atr=Sl=50 euro e il take profit 3 volte l’atr e quindi 150 euro, l’atr non deve seguire la posizione lo uso solo perchè mi serve solo il suo valore e basta, e vorrei andare ad agire sui lotti quindi per ogni posizione in cui viene definito lo stop loss ci sia un entrata di n.lotti per cui la perdita si aggiri a 50 euro e di conseguenza il guadagno di 150. Rispiego anche la strategia di ingresso, entrata in long quando la media esponenziale a 9 periodi incrocia verso l’alto la media esponenziale a 21 periodi nel time frame h1 e allo stesso tempo lo stocastico (settato 5,3,3) incrocia verso l’alto il valore 20, entrata short quando la media esponenziale a 9 periodi incrocia verso il basso la media esponenziale a 21 periodi nel time frame h1 e allo stesso tempo lo stocastico incrocia verso il basso il valore 80 in time frame 5minuti, spero di essere stato chiaro

    #146631 quote
    robertogozzi
    Moderator
    Master

    Finalmente sono riuscito a finirlo. Mi sembra vada bene, dalle prove fatte su GBPUSD, 5 minuti. La pardita massima non eccede mai i $50, salvo in rare occasioni in cui c’è un gap d’apertura contrario (questo è inevitabile).

    Alle righe da 12 a 27 c’è la gestione dei lotti e, successivamente, dei pips per adeguarli al numero dei lotti nel caso eccedessero il capitale di rischio:

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = false // Posizioni cumulate attivate
    // 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 = 230100
    // Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario "Flat After"
    //DEFPARAM FLATAFTER = 230000
    //
    TIMEFRAME(default)
    // Impedisce al sistema di tradare in giorni specifici della settimana
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    //
    //////////////////////////////////////////////////////////////////////////////////
    ONCE risk     = 50                                 //max. capitale da rischiare
    ONCE PipNum   = risk / pipvalue                    //Numero di Pips in base al rischio
    ONCE lotti    = 1                                  //1 lotto per difetto
    ONCE MinLotti = 0.5                                //Numero minimo di lotti
    MyATR         = (AverageTrueRange[7](close) / pipsize) * 2
    Perc          = (100 * MyATR) / PipNum             //Percentuale tra numero Pips ed ATR
    Lot1          = (risk / MyATR) * (Perc / 100)      //Calcolo del numero dei lotti (1)
    Lot2          = round((Lot1 * 100) - 0.5)          //Calcolo del numero dei lotti (2)
    Lot3          = Lot2 / 100                         //Calcolo del numero dei lotti (3)
    Lotti         = max(MinLotti,Lot3)                 //Verificare che ci sia il minimo di
    //                                                   lotti richiesto
    Pips          = PipNum / Lotti                     //Adeguare il numero dei Pips al
    //                                                   numero di Lotti per non eccedere
    //                                                   il rischio
    //////////////////////////////////////////////////////////////////////////////////
    //
    // Condizioni per entrare su posizioni long
    indicator1 = Average[3](Stochastic[5,3](close))
    c1 = (indicator1 CROSSES OVER 20)
    //
    TIMEFRAME(1 hour,default)
    indicator2 = ExponentialAverage[9](close)
    indicator3 = ExponentialAverage[21](close)
    c2 = (indicator2[1] > indicator3[1])
    //
    TIMEFRAME(default)
    IF (c1 AND c2) AND not daysForbiddenEntry AND Not OnMarket THEN
    BUY Lotti SHARES AT MARKET
    SET STOP   pLOSS   Pips
    SET TARGET pPROFIT Pips * 3
    ENDIF
    // Condizioni per entrare su posizioni short
    indicator4 = Average[3](Stochastic[5,3](close))
    c3 = (indicator4 CROSSES UNDER 80)
    //
    TIMEFRAME(1 hour,default)
    indicator5 = ExponentialAverage[9](close)
    indicator6 = ExponentialAverage[21](close)
    c4 = (indicator5[1] < indicator6[1])
    //
    TIMEFRAME(default)
    IF (c3 AND c4) AND not daysForbiddenEntry AND Not OnMarket THEN
    SELLSHORT Lotti SHARES AT MARKET
    SET STOP   pLOSS   Pips
    SET TARGET pPROFIT Pips * 3
    ENDIF
    TIMEFRAME (5minute,upDateOnClose)
    //************************************************************************
    //trailing stop function
    trailingstart = 20  //trailing will start @trailinstart points profit
    trailingstep  = 5   //trailing step to move the "stoploss"
    //reset the stoploss value
    IF NOT ONMARKET THEN
    newSL=0
    ENDIF
    //manage long positions
    IF LONGONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THEN
    newSL = tradeprice(1)+trailingstep*pipsize
    ENDIF
    //next moves
    IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
    newSL = newSL+trailingstep*pipsize
    ENDIF
    ENDIF
    //manage short positions
    IF SHORTONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THEN
    newSL = tradeprice(1)-trailingstep*pipsize
    ENDIF
    //next moves
    IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
    newSL = newSL-trailingstep*pipsize
    ENDIF
    ENDIF
    //stop order to exit the positions
    IF newSL>0 THEN
    SELL AT newSL STOP
    EXITSHORT AT newSL STOP
    ENDIF
    //
    //graph MyATR
    //graph Lotti
    //graph Pips
    //graph PerC

    ATTENZIONE: alle righe 39 e 54 ho aggiunto la condizione AND Not OnMarket, altrimenti viene variato, ad ogni candela, il valore dei Pips di stop loss.

    #146650 quote
    Ciurno981
    Participant
    Average

    Scusi ancora per il disturbo, ma mi da errore cioè non mi fa vedere alcun dato, mi da come se non ha fatto nessuna operazione, sto usando ancora la versione demo forse è per quello?( ho  messo una foto)

    Immagine222.png Immagine222.png
    #146655 quote
    robertogozzi
    Moderator
    Master

    Vedo stai usando la v11. La v11 consente solo il backtest, non il trading automatico.

    Ha un modo diverso di gestire i lotti perché opera sui Futures, non sui CFD.

    Io l’ho fatta sulla v10.3 di IG e funziona.

    #146660 quote
    Ciurno981
    Participant
    Average

    ok va bene allora finisco di attivare il conto di ig

    #147415 quote
    Ciurno981
    Participant
    Average

    Allora ho visto le istruzioni che avevi scritto e che la massima perdita sia 50 va bene, quello che però non capisco se il profit è 3 volte lo stop perchè non ho operazioni vinte di 150 euro ma cambia ogni volta? ho postato anche una foto dove non capisco perchè lo stop sia di 50 pips  (credo che siano 5 correggimi se sbaglio) nonostante sotto l atr a 7 periodi segni 3.7 pips perchè l’atr deve darmi il mio stop

    33.png 33.png
    #147439 quote
    robertogozzi
    Moderator
    Master

    Intanto noto che hai un orario diverso, un’ora in meno rispetto a quella italiana, forse usi quella inglese.

    Bene, dovremmo esserci, ho trovato degli errori logici nel calcolo, che è più semplice di quanto pensassi prima.

    Vedrai che ci sono molte operazioni che finiscono con 150 di guadagno, mentre quelle in perdita sono di 50, tranne alcune perché hanno chiuso l’operazione in occasione di gap contrari, quindi hanno chiuso al primo prezzo disponibile, anche se distante molti pip!

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = false // Posizioni cumulate attivate
    // 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 = 230100
    // Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario "Flat After"
    //DEFPARAM FLATAFTER = 230000
    //
    TIMEFRAME(default)
    // Impedisce al sistema di tradare in giorni specifici della settimana
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    //
    //////////////////////////////////////////////////////////////////////////////////
    ONCE risk     = 50                                 //max. capitale da rischiare
    ONCE PipNum   = risk / pipvalue                    //Numero di Pips in base al rischio
    ONCE lotti    = 1                                  //1 lotto per difetto
    //ONCE MinLotti = 0.5                                //Numero minimo di lotti
    MyATR         = (AverageTrueRange[7](close) / pipsize) * 2
    Pips          = max(0,min(PipNum,MyATR))
    Lotti         = PipNum / Pips
    //////////////////////////////////////////////////////////////////////////////////
    //
    // Condizioni per entrare su posizioni long
    indicator1 = Average[3](Stochastic[5,3](close))
    c1 = (indicator1 CROSSES OVER 20)
    //
    TIMEFRAME(1 hour,default)
    indicator2 = ExponentialAverage[9](close)
    indicator3 = ExponentialAverage[21](close)
    c2 = (indicator2[1] > indicator3[1])
    //
    TIMEFRAME(default)
    IF (c1 AND c2) AND not daysForbiddenEntry AND Not OnMarket THEN
    BUY Lotti SHARES AT MARKET
    SET STOP   pLOSS   Pips
    SET TARGET pPROFIT Pips * 3
    ENDIF
    // Condizioni per entrare su posizioni short
    indicator4 = Average[3](Stochastic[5,3](close))
    c3 = (indicator4 CROSSES UNDER 80)
    //
    TIMEFRAME(1 hour,default)
    indicator5 = ExponentialAverage[9](close)
    indicator6 = ExponentialAverage[21](close)
    c4 = (indicator5[1] < indicator6[1])
    //
    TIMEFRAME(default)
    IF (c3 AND c4) AND not daysForbiddenEntry AND Not OnMarket THEN
    SELLSHORT Lotti SHARES AT MARKET
    SET STOP   pLOSS   Pips
    SET TARGET pPROFIT Pips * 3
    ENDIF
    TIMEFRAME (5minute,upDateOnClose)
    //************************************************************************
    //trailing stop function
    trailingstart = 20  //trailing will start @trailinstart points profit
    trailingstep  = 5   //trailing step to move the "stoploss"
    //reset the stoploss value
    IF NOT ONMARKET THEN
    newSL=0
    ENDIF
    //manage long positions
    IF LONGONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THEN
    newSL = tradeprice(1)+trailingstep*pipsize
    ENDIF
    //next moves
    IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
    newSL = newSL+trailingstep*pipsize
    ENDIF
    ENDIF
    //manage short positions
    IF SHORTONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THEN
    newSL = tradeprice(1)-trailingstep*pipsize
    ENDIF
    //next moves
    IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
    newSL = newSL-trailingstep*pipsize
    ENDIF
    ENDIF
    //stop order to exit the positions
    IF newSL>0 THEN
    SELL AT newSL STOP
    EXITSHORT AT newSL STOP
    ENDIF
    //
    //graph MyATR
    //graph Lotti
    //graph Pips
    //graph NewSL
    #147463 quote
    Ciurno981
    Participant
    Average

    Ok ci siamo quasi alcune corrispondono a 150 cioè come volevo ma perchè ancora altre chiudono ad un valore errato, che intendi per gap contrari, il gap non c’è alle 23?e poi perchè solo le posizioni che chiudono in positivo hanno il valore errato? posto due foto di un esempio della posizione

    Ah e se poi mi potevi dire come si aggiusta l orario che non lo trovo grazie

    34.png 34.png 35.png 35.png
Viewing 15 posts - 46 through 60 (of 98 total)
  • You must be logged in to reply to this topic.

Errore al cambio dei valori (da sempre lo stesso risultato)


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
author-avatar
Ciurno981 @ciurno981 Participant
Summary

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

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 09/08/2020
Status: Active
Attachments: 20 files
Logo Logo
Loading...