CALCOLO DISTANZA CICLICA

Viewing 15 posts - 1 through 15 (of 21 total)
  • Author
    Posts
  • #49447 quote
    papero76
    Participant
    Senior

    ciao

    sto elaborando un sistema che in primis mi calcoli la distanza ciclica

    1 deve trovare il minimo di x barre quindi lowest[x] (low)

    2 trovato il minimo deve aggiungere sequenzialmente 200 punti, quindi se il minimo e 3000 dovrà risultare 3000, 3200, 3400, 3600. 3800 ecc . Questi 200 punti sono un livello di resistenza

    3 calcolato il primo livello 3200 , se la chiusura supera i 3200 entra un ordine long a 3200+10 quindi 3210

    4 chiudi la posizione a 3400-10

    5 se close supera 3400 entra long a 3410 chiudi a 3990

    ecc ecc ecc

    #49497 quote
    robertogozzi
    Moderator
    Master

    Dovresti specificare:

    1. su quale strumento vuoi operare
    2. su quale timeframe
    3. ogni quanto vuoi ricercare i nuovi massimi/minimi (continuamente ad ogni candela, oppure ad un ora precisa, oppure una sola volta al giorno)

    Con questi dati posso provare a scrivere qualcosa.

    Roberto

    #49553 quote
    papero76
    Participant
    Senior

    grazie Roberto per la tua puntuale risposta

    1 analisi su forex e indici

    2 prettamente daily ma con opzione 15 e 30 minuti

    3 il periodo lo imposto io, diciamo sulle 500/1000 candele

    #49615 quote
    robertogozzi
    Moderator
    Master

    Ho iniziato a lavorarci e mi sto accorgendo che richiede un bel pò di logica, sii paziente!

    #49619 quote
    papero76
    Participant
    Senior

    si lo so Roberto grazie per il tempo che dedichi.

    ci sto lavorando anche io fino ad ora lavora al 60% di come dovrebbe

    #49674 quote
    robertogozzi
    Moderator
    Master

    Ho buttato giù queste righe, per un uso almeno parziale della strategia (tu avevi scritto solo LONG, io ho inserito anche la parte SHORT):

    DEFPARAM CumulateOrders = false
     
    ONCE PositionSize       = 1
    ONCE LowHighBars        = 10                         //10    (numero di barre da considerare)
    ONCE PriceChunk         = 20                         //20    numero di PIPS da aggiungere/togliere ai limiti
    ONCE PriceOffset        = 10                         //10    numero di PIPS da aggiungere/togliere all'entrata
    ONCE LowestPrice        = 0
    ONCE HighestPrice       = 0
    ONCE NewLowestPrice     = 0
    ONCE NewHighestPrice    = 0
    
    LowestPrice             = lowest[LowHighBars](low)
    HighestPrice            = highest[LowHighBars](high)
    
    IF NewLowestPrice = 0 THEN
       NewLowestPrice = LowestPrice   + (PriceChunk * pipsize)
    ENDIF
    IF NewHighestPrice = 0 THEN
       NewHighestPrice = HighestPrice - (PriceChunk * pipsize)
    ENDIF
    
    //                LONG
    IF close > NewLowestPrice THEN
       Tp = NewLowestPrice + ((PriceChunk - PriceOffset) * pipsize)
       SET Target pProfit Tp
       BUY PositionSize CONTRACTS AT NewLowestPrice + (PriceOffset * pipsize) LIMIT       //Ordine pemdente
       NewLowestPrice = NewLowestPrice   + (PriceChunk * pipsize)
    ENDIF
    //                SHORT
    
    IF close < NewHighestPrice THEN
       Tp = NewHighestPrice - ((PriceChunk + PriceOffset) * pipsize)
       SET Target pProfit Tp
       SELLSHORT PositionSize CONTRACTS AT NewHighestPrice - (PriceOffset * pipsize) LIMIT //Ordine pemdente
       NewHighestPrice = NewHighestPrice - (PriceChunk * pipsize)
    ENDIF
    //
    SET Stop pLoss 250                               //250
    //
    GRAPH LowestPrice
    GRAPH NewLowestPrice
    GRAPH HighestPrice
    GRAPH NewHighestPrice
    GRAPH Tp

    ma con GRAPH noto che alcune variabili, specificatamente HighestPrice e LowestPrice, assumono un valore diverso secondo quante barre vengono inizialmente caricate, non sulla base di quando la strategia parte.

    Quindi non riesco ad andare avanti, anche perché la logica di entrata/uscita non è semplicissima.

    Tu sei riuscito a trovare qualche soluzione?

    #49678 quote
    papero76
    Participant
    Senior

    ciao Roberto grazie per la gentile risposta e del tempo dedicato

    il codice che io cerco è leggermente differente, comunque mi hai dato degli spunti utili.

    in pratica non avrei bisogno del highest

    una volta calcolato il minimo , quindi lowest, ad esso viene sommato ad esempio 200pt.

    piubasso=lowest[x](low)  //calcolo livello piu basso

    livello= piubasso+200*pipsize  // calcolo primo livello di acquisto

    //                LONG
    IF close > livello THEN  //condizione di acquisto
      prezzodiacquisto= livello+10*pipsize //calcolo prezzo di acquisto
      buy 1 contracts at prezzodiacquisto limit  //acquisto effettivo
    ENDIF
    if longonmarket then
      livello=livello[1]+200*pipsize  // calcolo secondo livello
      prezzodivendita= livello-10*pipsize  // calcolo livello di vendita
      sell at prezzodivendita limit  // vendita a livello di vendita
    endif
    questa dovrebbe essere il primo codice che ho provato ieri, se ricordo bene
    ora sono a pranzo al ristorante e non posso testare l’esattezza 😉 te lo invio per darti un idea di come dovrebbe essere
    grazie in anticipo
    un altra domanda, vedo che utilizzi once per dare un valore di partenza alle variabili, mi consigli di utilizzarlo sempre? le variabili potrebbero partire da valori diversi da zero?
    #49686 quote
    robertogozzi
    Moderator
    Master

    Le variabili in qualche modo vanno sempre inizializzate, nel senso che se tu scrivi

    IF close > x THEN...

    ProOrder ti segnala l’errore “definisci la variabile x”.

    Quindi devi mettere

    x = 0

    ed in questo modo, ad ogni candela, viene SEMPRE resettata a zero, qualunque fosse il suo valore precedente.

    Se, invece, scrivi

    ONCE x = 0

    viene inizializzata a zero quando lanci la strategia, dopodiché mantiene il valore precedente tra una candela e l’altra.

    Esiste anche la forma

    x = undefined

    cioè indefinita, ma non l’ho mai usata e non so bene che valore possa avere inizialmente ed in quali circostanze è opportuno usarla.

    #49749 quote
    papero76
    Participant
    Senior

    grazie Roberto per questa spiegazione

    per il codice mi puoi aiutare?

    #49770 quote
    robertogozzi
    Moderator
    Master

    Per il codice, come ti ho detto sopra, ho rilevato valori strani sul DAX, per cui non ho finito. Provo comunque a finire la strategia, indipendentemente dai risultati, poi vediamo.

    Serve un pò di tempo.

    #50062 quote
    papero76
    Participant
    Senior

    Fino ad ora sta lavorando così. ma è in fase di miglioramento

    #50069 quote
    robertogozzi
    Moderator
    Master

    Vedrò di aiutarti a migliorarla, purtroppo nel fine settimana non potrò metterci mano.

    Ci risentiamo da lunedì.

    #50091 quote
    papero76
    Participant
    Senior

    grazie mitico Roberto

    #50097 quote
    Fr7
    Participant
    Master

    Ciao Papero,

    Potresti mettere il codice di sistema dell’immagine? Aud / cad 15 minuti, sembra interessante

    #50201 quote
    papero76
    Participant
    Senior

    sicuramente è molto interessante

    ma decisamente pesante da elaborare

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

CALCOLO DISTANZA CICLICA


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
papero76 @papero76 Participant
Summary

This topic contains 20 replies,
has 3 voices, and was last updated by papero76
8 years, 3 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 10/15/2017
Status: Active
Attachments: 1 files
Logo Logo
Loading...