Acquisto / vendita intersezione MME

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #89665 quote
    dollarieur
    Participant
    Senior

    Ciao, ti volevo chiedere se potresti gentilmente creare le 2 formule di trading automatico basate sulle successive indicazioni.

    Premetto di chiederti 2 formule (una di acquisto long ed una di vendita short) fatte per grafici a 15m.


     

    A = Apertura posizione

    C = Chiusura posizione


    • REGOLA 1 (ACQUISTO LONG CON CANDELE DA 15 minuti):

    CONDIZIONI DI ACQUISTO (APERTURA POSIZIONE LONG) (A):

     

    CONDIZIONE A1: Compra quando la MME 238 interseca al rialzo MME 640 A CHIUSURA DI BARRA (GRAFICO A 15m).

     

    CONDIZIONE A2: Il prezzo dell’azione, al momento dell’acquisto, NON deve essere superiore del 2% rispetto al prezzo di chiusura DELLA GIORNATA PRECEDENTE.

     

    SI DEVONO VERIFICARE ENTRAMBE LE CONDIZIONI A1 e A2 PER L’ACQUISTO.

     

    CONDIZIONI DI VENDITA (CHIUSURA POSIZIONE) (C) (SEMPRE GRAFICO A 15m, ndr):

     

    CONDIZIONE C1): Se la MME 170 interseca al ribasso la MME 340, vendi (A CHIUSURA DI BARRA)

     

    Essendo orientato a prolungare nel tempo la posizione, vorrei aggiungere le seguenti condizioni:

    CONDIZIONE C2): Se la MME 680 interseca al rialzo la MME 850, poni lo stop loss a incrocio ribassista di MME 510 e MME 680 (a chiusura barra, ndr)

    CONDIZIONE C3): Se la MME 850, interseca al rialzo la MME 1700, poni lo stop loss a incrocio ribassista di MME 680 e MME 850, (a chiusura barra, ndr)

    CONDIZIONE C4): Se la MME 1700, interseca al rialzo la MME 3400, poni lo stop loss a incrocio ribassista di MME 850 e MME 1700, (a chiusura barra, ndr)

     

    Per evitare falsi segnali, vorrei che la vendita si effettuasse solo alla CHIUSURA della barra (di 15m) per cui, per avere sicurezza il prezzo non sia nel frattempo “crollato”, vorrei aggiungere la seguente condizione (C5):

     

    CONDIZIONE C5): Se il prezzo cala del 2% rispetto a prezzo di acquisto (quindi anche prima che la candela di 15m sia chiusa!), procedere alla vendita.

    CONDIZIONE C6): se il guadagno è >= 3%, la condizione C5 deve essere annullata e lo stop loss deve essere spostato alla percentuale di guadagno +0,2% (quindi anche prima che la candela di 15m sia chiusa!).

    PER LA VENDITA SI DEVONO VERIFICARE :

    – una delle condizioni da C1 a C4 (comprese),

    oppure:

    – condizione C5 o C6.

    __________________________________________________________________________________

    • REGOLA 2 (VENDITA SHORT CON CANDELE DA 15 minuti):

    CONDIZIONI DI VENDITA (APERTURA POSIZIONE) (A):

    CONDIZIONE A1: Vendi quando la MME 238 interseca al ribasso la MME 640 A CHIUSURA DI BARRA (GRAFICO A 15m).

     

    CONDIZIONE A2: Il prezzo dell’azione, al momento della vendita, NON deve essere inferiore del 2% rispetto al prezzo di chiusura DELLA GIORNATA PRECEDENTE.

     

    SI DEVONO VERIFICARE ENTRAMBE LE CONDIZIONI A1 e A2 PER LA VENDITA (APERTURA POSIZIONE).

     

    CONDIZIONI DI ACQUISTO (CHIUSURA POSIZIONE) (C) (SEMPRE GRAFICO A 15m, ndr):

     

    CONDIZIONE C1): Se la MME 170 interseca al rialzo la MME 340, acquista (A CHIUSURA DI BARRA)

     

    Essendo orientato a prolungare nel tempo la posizione, vorrei aggiungere le seguenti condizioni:

    CONDIZIONE C2): Se la MME 680 interseca al ribasso la MME 850, poni lo stop loss a incrocio rialzista di MME 510 e MME 680 (a chiusura barra, ndr)

    CONDIZIONE C3): Se la MME 850 interseca al ribasso la MME 1700, poni lo stop loss a incrocio rialzista di MME 680 e MME 850, (a chiusura barra, ndr)

    CONDIZIONE C4): Se la MME 1700 interseca al ribasso la MME 3400, poni lo stop loss a incrocio rialzista di MME 850 e MME 1700, (a chiusura barra, ndr)

     

    Per evitare falsi segnali, vorrei che l’acquisto (chiusura posizione) si effettuasse solo alla CHIUSURA della barra (di 15m) per cui, per avere sicurezza il prezzo non sia nel frattempo “sceso troppo”, vorrei aggiungere la seguente condizione (C5):

     

    CONDIZIONE C5): Se il prezzo sale del 2% rispetto a prezzo di vendita(prezzo di apertura posizione, ndr) (quindi anche prima che la candela di 15m sia chiusa!), procedere alla vendita.

    CONDIZIONE C6): se il guadagno è >= 3%, la condizione A5 deve essere annullata e lo stop loss deve essere spostato alla percentuale di guadagno +0,2% (quindi anche prima che la candela di 15m sia chiusa!).

    PER L’ACQUISTO (CHIUSURA DI POSIZIONE) SI DEVONO VERIFICARE :

    – una delle condizioni da C1 a C4 (comprese),

    oppure:

    – condizione C5 o C6.


    Grazie ciao.

    #89685 quote
    robertogozzi
    Moderator
    Master

    Ok, ci studio un pò e ti farò sapere.

    Voglio solo avvisarti che NON si può intervenire durante la formazione di una candela (che sia da 1 minuto, 15 minuti o Giornaliera), ma solo alla chiusura. E’ sempre stato così.

    La novità del MTF (Multi Time Frame) introdotta in demo a metà 2018 ed in reale da poco (su richiesta) permette di “aggirare” quest’ostacolo utilizzando dei TF più brevi (anche 1 secondo!). L’unico handicap è che il TF più breve è considerato quello PRINCIPALE (detto DEFAULT) ed è quello che deve essere visualizzato quando esegui la strategia o il backtest. Questo, purtroppo, riduce la quantità di storico a disposizione. Se vuoi utilizzare la tua strategia con il Daily hai un certo numero di anni di storico a disposizione, ma se aggiungi il TF ad 1 minuto per potere intervenire durante la giornata, allora lo storico esaminato sarà quello del minuto, che è pari a circa 3 mesi e mezzo (con 100k barre disponibili, il doppio con 200k).

    Se vuoi possiamo provare a farla intanto nel modo tradizionale, usanto il solo TF a 15 minuti, una volta  che funziona correttamente si può modificare in MTF e vedere quali differenze si riscontrano.

    Lunedì comincerò a lavorarci su. Buon fine settimana!

    #89713 quote
    dollarieur
    Participant
    Senior

    Ciao, purtroppo mi hai dato una brutta notizia…. 🙂 Io volevo proprio aggirare la pericolosità dell’attesa di tutta la candela (sia essa 15m, 1h o 1 g..). E sinceramente credevo proprio si potesse fare. Infatti, nella mia “biblioteca” personale…già avevo la seguente formula, molto simile, risalente a vari anni fa….non ricordo nemmeno quanti…e ti chiedevo infatti una formula più recente per poter adattarsi ad eventuali modifiche ed aggiornamenti del portale.

    La “formula era la seguente:


    MME5=ExponentialAverage[5](close)
    MME10=ExponentialAverage[10](close)
    MME20=ExponentialAverage[20](close)
    MME25=ExponentialAverage[25](close)
    MME50=ExponentialAverage[50](close)
    MME100=ExponentialAverage[100](close)
    MME200=ExponentialAverage[200](close)
    MME300=ExponentialAverage[300](close)
    MME600=ExponentialAverage[600](close)
    MME800=ExponentialAverage[800](close)
    
    c1=MME10 crosses over MME20
    c2=close < dclose(1)*1.02
    
    
    c3=MME5 crosses under MME10
    c4=MME20 crosses over MME25 and MME10 crosses under MME20
    c5=MME25 crosses over MME50 and MME20 crosses under MME25
    c6=MME50 crosses over MME100 and MME25 crosses under MME50
    c7=MME100 crosses over MME200 and MME50 crosses under MME100
    c8=MME200 crosses over MME300 and MME100 crosses under MME200
    c9=MME300 crosses over MME600 and MME200 crosses under MME300
    c10=MME600 crosses over MME800 and MME300 crosses under MME600
    
    If longonmarket and (c3 or c4 or c5 or c6 or c7 or c8 or c9 or c10) then
    sell at market
    endif
    
    if longonmarket then
    if mystop=0 and close > tradeprice*1.03 then
    mystop=1
    stopprice=tradeprice*1.003
    endif
    if mystop=1 and close > tradeprice*1.07 then
    mystop=2
    stopprice=tradeprice*1.03
    endif
    if mystop=2 and close > tradeprice*15 then
    mystop=3
    stopprice=tradeprice*1.15
    endif
    if mystop <> 0 then
    sell at stopprice stop
    endif
    endif

    Come puoi vedere, ci sono le seguenti 2 condizioni:

    1. c2=close < dclose(1)*1.02 Questa pone un limite al prezzo di acquisto, che non deve essere superiore del 2% rispetto al prezzo di chiusura della sessione precedente (del giorno prima, insomma..almeno cosi credo significhi…)
    2. if not shortonmarket and c1 and c2 then
      buy 213 share at market
      set stop %loss 2
      mystop=0
      endif

    Questa condizione (in particolare credo la sola riga “set stop %loss 2″) DOVREBBE fare ciò che io chiedo..e cioè….A PRESCINDERE DALL’INTERSEZIONE DELLE MME…DOVREBBE FISSARE LO STOP LOSS AL 2%. Almeno io credevo facesse ciò…vari anni fa, come ti dicevo.

    Altrimenti..è un bel….casino…! 🙂  Perché….a parte intersezione di MME…di uno stop loss “di emergenza”…sinceramente non credo proprio riuscire a fare a meno. Tanto più che, con MME di queste lunghezze….ho notato che, in molti grafici..si deve usare il grafico ad 1 ora! Sono pochi i titoli aventi un “lungo” grafico a 15m! Tanto meno ad 1m!

    Grazie e buon week end anche a te!

    #89859 quote
    robertogozzi
    Moderator
    Master

    Per scrivere il codice , utilizza il pulsante <> “insert PRT code”, per rendere il codice più leggibile. Grazie.

    Vuoi che provi a trasformala in MTF, utilizzando il 15 minuti per i calcoli delle medie ed 1 minuto per gli stop?

    #89882 quote
    dollarieur
    Participant
    Senior

    Ammetto di non avere capito bene cosa siano gli MTF….chiedo….per capire…: gli MTF servono ad es per permetterti di acquistare (su grafico ad es 1h) all’intersezione di MME 10 e 20….e di vendere su grafico a 1 min a intersezione ribassista di MME 600 e 1200 (le stesse, ma a 1 min, ndr)?

    #89899 quote
    robertogozzi
    Moderator
    Master

    Si, esatto.

    Si possono utilizzare al massimo 5 TF (+ quello di default, che deve essere il più basso di tutti).

    #89984 quote
    dollarieur
    Participant
    Senior

    Ammetto di non conoscere proprio questo nuovo “sistema” e, di conseguenza…di non capire la tua frase… 🙂

    Mi puoi spiegare il significato della tua frase? TF=?

    Oltre a ciò..ti chiedo allora questo….ma..potendo utilizzare diversi time frames…non si potrebbe allora utilizzare una formula in base a cui…AD ESEMPIO…acquisto all’intersezione rialzista delle MME 10 e 20 SU GRAFICO AD 1 H… e vendo all’intersezione ribassista delle MME 600 e 1200 su grafico di 1 minuto? Non ho ancora capito se si possa ..o meno…. 🙂 Grazie.

    #89995 quote
    robertogozzi
    Moderator
    Master

    Questo è il codice del tuo ultimo esempio:

    DEFPARAM PreLoadBars = 2000
    TIMEFRAME(1 hour,updateonclose)     //h1
    Media10 = average[10,0](close)
    Media20 = average[20,0](close)
    TIMEFRAME(default)                  //da lanciare da un grafico a 1 Minuto
    Media600  = average[600,0](close)
    Media1200 = average[1200,0](close)
    IF Media10 CROSSES OVER Media20 AND Not OnMarket THEN
       BUY 1 CONTRACT AT MARKET
    ENDIF
    IF Media600 CROSSES UNDER Media1200 AND OnMarket THEN
       SELL AT MARKET
    ENDIF
    

    Devi lanciarla dal grafico a 1 minuto che è quello di default o principale, cioè quello che “detta” i tempi di esecuzione. Se facessi riferimento a BARINDEX, ti restituirebbe il numero della candela ad 1 minuto, non quello relativo agli altri TF usati.

    La strategia verrà eseguita OGNI minuto, anche la parte relativa ad H1, solo che essendoci UPDATEONCLOSE assegnerà i valori delle medie solo alla chiusura di quella barra (se non mettessi UPDATEONCLOSE ma DEFAULT ti aggiornerebbe le medie orarie ogni minuto, quindi mentre la barra H1 si sta formando).

    DEFAULT da solo tra le parentesi di TIMEFRAME indica l’unità di tempo (TF o Time Frame) più piccola utilizzata (quella che è sul grafico quando esegui la strategia), mentre DEFAULT messo dopo l’indicazione dell’unità di tempo sostituisce UPDATEONCLOSE ed indica a ProOrder quando deve aggiornare le variabili.

    Si possono usare fino a 5 TF diversi (+ quello di default) in una strategia.

    Lo stesso TF puoi indicarlo più volte, prova questo esenpio e vedrai, nel backtest, mediante GRAPH, il valore diverso che hanno le due variabili, pur relative alla stessa media, solo che una si riferisce all’ultima candela chiusa, l’altra a quella in corso, utilizzando sempre 1 minuto come timeframe principale:

    TIMEFRAME(1 hour,updateonclose)     //h1, aggiornata all'ultima chiusura
    Media10a = average[10,0](close)
    
    TIMEFRAME(1 hour,default)           //h1, a candela in corso di formazione
    Media10b = average[10,0](close)
    
    TIMEFRAME(default)                  //da lanciare da un grafico a 1 Minuto
    BUY AT -close LIMIT                 //istruzione inutile, ma richiesta da ProOrder
    
    GRAPH Media10a
    GRAPH Media10b
    y-1.jpg y-1.jpg
Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.

Acquisto / vendita intersezione MME


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
dollarieur @dollarieur Participant
Summary

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

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