Info su codice – distanza dall’apertura della candela

Viewing 15 posts - 1 through 15 (of 15 total)
  • Author
    Posts
  • #65856 quote
    beppe8949
    Participant
    Average

    Ciao!
    Vorrei gentilmente capire una cosa, cosa significa questa dicitura nel codice:

    c1 = (close +2 > open)
    c2 = (close -2 < open

    Lo chiedo perchè ho notato che su backtest, così mi da un risultato 10 volte superiore rispetto a:

    c1 = (close > open)
    c2 = (close < open
    #65864 quote
    robertogozzi
    Moderator
    Master

    Immagino che

    (close +2 > open)   //o -2

    significhi, per chi l’ha scritto, 2 pips sopra/sotto il prezzo di chiusura.

    E’ comunque scritto in modo logicamente scorretto, può andare bene col Dax o SP500 o simili indici o azioni, ma NON funzionerebbe con le coppie valutarie.

    Se si somma/sottrae 2 al DAX si ottiene un risultato corretto perché non c’è bisogno di una conversione, ma se si fa con Eur/Usd, ad esempio, sommare 2 al prezzo di chiusura somma 20.000 pips, non 2, in quanto 1.2350 non darebbe 1.2352, ma 3.2350!

    Quindi è bene usare PIPSIZE in modo che la conversione, quando necessaria, la faccia il sistema internamente, in modo che il codice funzioni su tutti gli strumenti, quindi la riga di cui sopra dovrebbe essere scritta così:

    (close + 2*pipsize > open)   //o -2*pipsize
    #65865 quote
    beppe8949
    Participant
    Average

    Ok Roberto ti ringrazio, però ho fatto entrambe le prove, con entrambi i codici e ho notato che comunque non apre la posizione a 2 pips di distanza dall’apertura della nuova candela, come mai? Guarda, ti inoltro i due trading system con entrambi i codici che ho usato, riusciresti gentilmente a provarli e a spiegarmi il motivo? Il TF che ho usato è 1 ora e i trading system sono per il DAX LONG.
    Grazie mille!

    #65882 quote
    Nicolas
    Keymaster
    Master

    Si prega di inviare il codice completo direttamente nell’argomento, dovrebbe essere più veloce per capire dove si trova il problema nel codice.

    #65883 quote
    robertogozzi
    Moderator
    Master

    Le variabili sono SEMPRE vere, perché CLOSE+2 sarà sempre maggiore (o minore nel caso di -2) di CLOSE da solo!  La sola utilità delle due variabili è di stabilire se andare LONG o SHORT, non influiscono sul prezzo.

    A parte questo, una volta verificata la suddetta condizione entra al prezzo di MERCATO, come gli hai detto tu, quindi a qualunque prezzo ci sia in quel preciso istante in cui l’ordine viene piazzato.

    Se vuoi che apra la posizione a quel prezzo specifico devi mettere un ordine pendente, tipo

    BUY size CONTRACTS AT Close  + 2 * pipsize STOP
    SELLSHORT size CONTRACTS AT Close  - 2 * pipsize STOP
    #65896 quote
    beppe8949
    Participant
    Average

    A ok ho capito, il fatto è che sul dax lo devi mettere ad almeno 10 pips di distanza dal prezzo attuale altrimenti non te lo piazza.. Va be.. grazie mille Roberto, buona serata!

    #65929 quote
    beppe8949
    Participant
    Average

    Scusami Roberto, una domanda.. Ma se io volessi che invece la posizione si chiuda se il prezzo torna allo stesso livello del prezzo di apertura.. Come posso fare (se si può fare)?

    #65930 quote
    beppe8949
    Participant
    Average

    Oppure, ancora meglio.. Se quando torna al prezzo d’apertura chiude la posizione e la apre nel verso opposto.. (se non si può fare sul prezzo d’apertura va bene anche che la apre al contrario una volta preso lo stop) Grazie mille!!

    #65941 quote
    robertogozzi
    Moderator
    Master

    Per chiuderla al prezzo d’apertura basta mettere un’ordine STOP pendente, SELL se eri Long oppure EXITSHORT se eri Short, il prezzo d’apertura te lo fornice TRADEPRICE(1):

    SELL      AT TRADEPRICE(1) STOP  //esci dal Long
    SELLSHORT AT TRADEPRICE(1) STOP  //entra Short per il reverse
    //
    EXITSHORT AT TRADEPRICE(1) STOP  //esci dallo Short
    BUY       AT TRADEPRICE(1) STOP  //entra Long per il reverse

    Dovrai mettere tu le condizioni per fare queste operazioni, nell’ordine in cui sono scritte finiresti per uscire in SL dal long, entrare Short, Uscire subito dallo Short e rientrare immediatamente Long (da dove eri uscito in SL). Sono solo esempi di codice, sta a te utilizzarli nel modo più appropriato per te.

    Se, invece, non vuoi usare ordini pendenti, puoi fare una verifica alla chiusura della candela:

    IF close <= TRADEPRICE(1) THEN
       SELL AT MARKET                 //per i Long
       SELLSHORT 1 CONTRACT AT MARKET //Reverse
    ENDIF
    //
    IF close >= TRADEPRICE(1) THEN
       EXITSHORT AT MARKET            //per gli Short
       BUY 1 CONTRACT AT MARKET       //Reverse
    ENDIF
    #65944 quote
    beppe8949
    Participant
    Average

    Ok perfetto! Provo subito un backtest e ti faccio sapere, grazie! 🙂

    #65950 quote
    beppe8949
    Participant
    Average

    Ok l’ho provato, ma secondo me.. Non va bene ahah Mi perde tutto nel giro di qualche giorno!

    DEFPARAM FLATBEFORE = 090000
    DEFPARAM FLATAFTER = 180000
    c1 = (close[0] > open[0])
    c2 = (close[0] < open[0])
    
    
    IF c1 AND NOT LONGONMARKET THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    IF close <= TRADEPRICE(1) AND LONGONMARKET THEN
    SELL AT MARKET
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
    
    IF c2 AND NOT SHORTONMARKET THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
    
    IF close >= TRADEPRICE(1) AND SHORTONMARKET THEN
    EXITSHORT AT MARKET            
    BUY 1 CONTRACT AT MARKET       
    ENDIF
    
    set stop ploss 10
    set target profit 15
    #65953 quote
    robertogozzi
    Moderator
    Master

    Su questo non c’è dubbio!

    Il codice è neutro, non fa né guadagnare, né perdere. Dipende da come lo usi.

    Nel caso sopra entri long appena una candela chiude Long e viceversa per gli short, ma anche una lunga pin bar di una solo pip di corpo può essere long o short, quindi è molto probabile che tu entri nel verso sbagliato!

    Dovrai usare il codice in una tua strategia, è ovvio che un esempio tanto per fare non da risultati positivi.

    #65968 quote
    beppe8949
    Participant
    Average

    Guarda ti spiego subito la strategia dell’autotrading che sto testando in demo e che sta dando ottimi risultati, ma vorrei ottimizzarlo.. In pratica entro su ogni candela da un’ora appena aprono, nel verso in cui si muove il prezzo.. però vorrei appunto che se il prezzo torna indietro, me la chiude subito a 0 in modo da pagarci solo lo spread al massimo, e quando chiude vorrei appunto si aprisse al contrario come ti dicevo.. Non so se mi sono spiegato bene 🙂

    #65975 quote
    robertogozzi
    Moderator
    Master

    Il problema è che se metti un ordine pendente subito, ad esempio fai il BUY a mercato e metti subito un pendente SELL al prezzo d’entrata rischi di uscire immediatamente!

    Se verifichi il prezzo alla chiusura della candela, rischi, col DAX ad 1 ora, di essere ben oltre lo SL desiderato!

    Un’alternativa è quella di usare il pendente SELL sul prezzo d’entrata, ma metterlo alla candela successiva, cioè quando sei già LongOnMarket, sperando che, in quell’ora, il DAX non ti sia andato troppo contro!

    Se hai seguito questo recentissimo topic di Nicolas (https://www.prorealcode.com/topic/betatesting-multitimeframe-support-automatic-trading/), oppure lo leggi adesso, vedrai che la versione MTF (Multi Time Frame) è già in beta test agli sviluppatori e Nicolas la sta provando, quindi a breve (forse non troppo breve… speriamo entro fine estate!) il problema sarà risolto, perché tu potrai usare parti di codice Daily, alcune h4, altre h1 ed infine scegliere il TF di default, 1 minuto o magari inferiore, che verrà utilizzato per i controlli da fare nell’immediato!

    #65976 quote
    beppe8949
    Participant
    Average

    Wow perfetto, non l’ho letto, faccio subito e seguo gli sviluppi futuri! Grazie mille come sempre!

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

Info su codice – distanza dall’apertura della candela


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
beppe8949 @beppe8949 Participant
Summary

This topic contains 14 replies,
has 3 voices, and was last updated by beppe8949
7 years, 10 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 03/20/2018
Status: Active
Attachments: 2 files
Logo Logo
Loading...