Problem invio codice ProOrder

Viewing 15 posts - 16 through 30 (of 36 total)
  • Author
    Posts
  • #53417 quote
    keemax73
    Participant
    Average

    Grazie.

    Avevo notato che mancava un pezzetto di codice 🙂

    Ora provo a variare i valori del macd in short, perchè cmq non mi piace come si comporta.

    Ho allegato un’immagine del comportamento.

    #53458 quote
    keemax73
    Participant
    Average

    Ciao, questa è la mia prima versione finale del codice, senza trailing o Breakeven, perchè ho sempre avuto risultati peggiori.

    Che ne pensi ?

    Ho notato che ho solo il 50% di trades vincenti. Da qualche parte avevo letto che sotto il 70% il codice non è da considerarsi buono, eppure

    non mi sembra che si stia comportando male.

    Allego qualche immagine.

     

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    //DEFPARAM FLATBEFORE = 080000
    //DEFPARAM FLATAFTER = 220000
    
    //Definizione variabili MACD Long
    ONCE Macd1 = 12                //12
    ONCE Macd2 = 27                //26
    ONCE Macd3 = 9                  //9
    
    //Definizione variabili MACD Short
    ONCE Macd4 = 12                //12
    ONCE Macd5 = 21                //26
    ONCE Macd6 = 18                //9
    
    //Cross OVER
    ONCE crover = 3                 //3
    //Cross UNDER
    ONCE crunder = 9                //9
    
    //Exit Long
    ONCE exlong = 4                 //4
    //Exit Short
    //ONCE exshort = 6                //6
    
    //Stop Loss
    ONCE stploss = 13               //13
    ONCE avrtrangeloss = 8          //8
    //Target Profit
    ONCE tarprof = 15               //14
    ONCE avrtrangeprofit = 13       //13
    
    //Contratti
    c = 1
    
    // Condizioni per entrare su posizioni long
    indicator1 = MACD[Macd1,Macd2,Macd3](close)
    c1 = (indicator1 >= 0)
    indicator2 = MACDline[Macd1,Macd2,Macd3](close)
    c2 = (indicator2 CROSSES OVER crover) //3
    
    IF c1 AND c2 THEN
    BUY c CONTRACT AT MARKET
    ENDIF
    
    // Condizioni per uscire da posizioni long
    indicator3 = MACD[Macd1,Macd2,Macd3](close)
    c3 = (indicator3 <= -exlong) //-4
    
    IF c3 THEN
    SELL AT MARKET
    ENDIF
    
    // Condizioni per entrare su posizioni short
    indicator4 = MACD[Macd4,Macd5,Macd6](close)
    c4 = (indicator4[1] <= 0)
    indicator5 = MACDline[Macd4,Macd5,Macd6](close)
    c5 = (indicator5[1] CROSSES UNDER -crunder)
    
    IF c4 AND c5 THEN
    SELLSHORT c CONTRACT AT MARKET
    ENDIF
    
    // Condizioni per uscire da posizioni short
    indicator6 = Average[20](close)
    c6 = (close[1] >= indicator6)
    
    IF c6 THEN
    EXITSHORT AT MARKET
    ENDIF
    // Loss, Profit
    SET STOP LOSS stploss*AverageTrueRange[avrtrangeloss](close) //8
    SET TARGET PROFIT tarprof*AverageTrueRange[avrtrangeprofit](close) //13
    
    #53467 quote
    robertogozzi
    Moderator
    Master

    Prova ad inserire qualche altro indicatore, qualcosa puoi ottenere. Però non è che con 5 indicatori va meglio che con due, perché se sono simili…. non fanno gran che. Potresti provare ad inserire un ADX (ad esempio):

    AdxVal  = Adx[31] > 22           //31, 22

    in alto, prima/dopo

    c = 1

    Poi dovrai modificare l’entrate LONG e SHORT così:

    IF c1 AND c2 AND AdxVal THEN
    IF c4 AND c5 AND AdxVal THEN

    Si tratta, alla fine, d’impiegarci parecchio tempo facendo modifiche su modifiche.      

    #53469 quote
    keemax73
    Participant
    Average
    Grazie come sempre. Provo e poi posto qualche risultato. Cmq speravo che il Breakeven mi aiutasse a non perdere troppo, invece non porta, almeno nel mio caso, i benefici sperai. O forse non sono io in grado di integrarlo come si deve …
    #53471 quote
    keemax73
    Participant
    Average
    Questo è il risultato con l’inserimento dell’adx. Che ne pensi ? Allego immagini.
    #53497 quote
    robertogozzi
    Moderator
    Master

    Le percentuali le hai esagerate parecchio indicando una capitale così basso che ti porterebbe quasi sicuramente ad un Margin Call.

    Metti 5000 euro iniziali, saranno più veritiere.

    Comunque sono buone.

    Lavoraci su, cerca di migliorarlo. Provando e facendo tanti test ti divertirai ed imparerai molto di questa piattaforma. Ovviamente t’impegnerà un sacco di tempo.

    Prima di mettere una strategia in reale provala sempre in demo a fondo, direi non meno di 5-6 mesi.

     

    #53506 quote
    keemax73
    Participant
    Average
    Questo è il risultato : Se indico un singolo contratto, la percentuale crolla al 268% Se indico come capitale iniziale i 5000 che mi hai suggerito, la percentuale è del 53% con un singolo contratto. Se indico come capitale iniziale 5000, e inserisco 3 contratti la percentuale è del 161%. Booo 🙂 Si, ho anche il conto demo ed è da quello che faccio i miei test. Cmq il mio vero ptf è di 1000 euro ed è da li che partirei …
    #53521 quote
    robertogozzi
    Moderator
    Master

    E’ naturale che sia così. Se con 1 contratto e 5000 uro di capitale hai un profitto del 53%, con 3 contratti triplichi quel valore, per cui 161 (tenuto conto degli arrotondamenti) è perfetto. Capisco che parti con euro 1000, ma con quel capitale puoi permetterti un drawdown di quasi il 100%?  

    #53525 quote
    keemax73
    Participant
    Average

    Ovviamente no altrimenti i giochi finirebbero subito. 

    A questo punto mi domando cosa dovrei fare. Aumentare il mio ptf  ? Suggerimenti? 

    Grazie.

    #53527 quote
    robertogozzi
    Moderator
    Master

    Aumenti il tuo ptf, oppure cerchi (con varie modifiche)  di arrivare ad un drawdown che puoi sopportare facilmente, oppure…. pensi ad un’altra strategia!

    #53528 quote
    keemax73
    Participant
    Average

    Capito.

    Cerco di ottimizzare il mio codice 🙂

    #53631 quote
    keemax73
    Participant
    Average

    Piccola domanda : quando in un codice si indica che le posizioni cumulative sono disattivate si indica questo codice :

    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate

    Ma come funziona quando nel codice indichi il true ?

    Se opero normalmente e apro una posizione short, non posso nello stesso momento aprire una posizione long senza chiudere la short utilizzando, ad esempio il dax.

    Quindi immagino che il comando indichi che puoi accumulare posizioni ma nelle stessa direzione della prima.

    Corretto ?

    Grazie.

     

    #53635 quote
    robertogozzi
    Moderator
    Master

    Esatto, è proprio così, puoi accumulare ulteriori posizioni nella stessa direzione.

    Ma ci sono due avvertenze da fare:

    1. il margine aumenta (IG lo fa a scaglioni)
    2. non puoi fare chiusure parziali, quando chiudi le devi chiudere tutte, anche se aperte in momenti diversi

    Roberto

    #54475 quote
    keemax73
    Participant
    Average

    Ciao, una informazione, perchè sto notando delle incongruenze tra la realtà e il backtesting attivando anche la funzione tick per tick. Praticamente capita abbastanza spesso che ciò che il codice fa in modalità non reale è ben diversa da ciò che fa il codice nella realtà. Se così è, esiste qualche funzione/modo per poter mitigare questo problema ?  Altrimenti che senso ha creare codici che nella realtà sbagliano abbastanza spesso ?

    Grazie.

    #54481 quote
    robertogozzi
    Moderator
    Master

    Forse stai usando la versione con i dati a fine giornata, oppure durante la fase di ottimizzazione, la modalità Tick per Tick è esclusa anche se selezionata.

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

Problem invio codice ProOrder


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
keemax73 @keemax73 Participant
Summary

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

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 11/19/2017
Status: Active
Attachments: 9 files
Logo Logo
Loading...