Acquisto / vendita intersezione MME
Forums › ProRealTime forum Italiano › Supporto ProOrder › Acquisto / vendita intersezione MME
- This topic has 7 replies, 2 voices, and was last updated 5 years ago by robertogozzi.
-
-
01/25/2019 at 6:10 PM #89665
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.
01/26/2019 at 11:57 AM #89685Ok, 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!
01/26/2019 at 7:15 PM #89713Ciao, 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:
123456789101112131415161718192021222324252627282930313233343536373839404142434445MME5=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 MME20c2=close < dclose(1)*1.02c3=MME5 crosses under MME10c4=MME20 crosses over MME25 and MME10 crosses under MME20c5=MME25 crosses over MME50 and MME20 crosses under MME25c6=MME50 crosses over MME100 and MME25 crosses under MME50c7=MME100 crosses over MME200 and MME50 crosses under MME100c8=MME200 crosses over MME300 and MME100 crosses under MME200c9=MME300 crosses over MME600 and MME200 crosses under MME300c10=MME600 crosses over MME800 and MME300 crosses under MME600If longonmarket and (c3 or c4 or c5 or c6 or c7 or c8 or c9 or c10) thensell at marketendifif longonmarket thenif mystop=0 and close > tradeprice*1.03 thenmystop=1stopprice=tradeprice*1.003endifif mystop=1 and close > tradeprice*1.07 thenmystop=2stopprice=tradeprice*1.03endifif mystop=2 and close > tradeprice*15 thenmystop=3stopprice=tradeprice*1.15endifif mystop <> 0 thensell at stopprice stopendifendif
Come puoi vedere, ci sono le seguenti 2 condizioni:
- 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…)
- 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!
01/28/2019 at 7:51 PM #89859Per 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?
01/28/2019 at 10:52 PM #89882Ammetto 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)?
01/29/2019 at 12:53 AM #89899Si, esatto.
Si possono utilizzare al massimo 5 TF (+ quello di default, che deve essere il più basso di tutti).
01/29/2019 at 9:36 PM #89984Ammetto 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.
01/30/2019 at 12:29 AM #89995Questo è il codice del tuo ultimo esempio:
12345678910111213DEFPARAM PreLoadBars = 2000TIMEFRAME(1 hour,updateonclose) //h1Media10 = average[10,0](close)Media20 = average[20,0](close)TIMEFRAME(default) //da lanciare da un grafico a 1 MinutoMedia600 = average[600,0](close)Media1200 = average[1200,0](close)IF Media10 CROSSES OVER Media20 AND Not OnMarket THENBUY 1 CONTRACT AT MARKETENDIFIF Media600 CROSSES UNDER Media1200 AND OnMarket THENSELL AT MARKETENDIFDevi 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:
1234567891011TIMEFRAME(1 hour,updateonclose) //h1, aggiornata all'ultima chiusuraMedia10a = average[10,0](close)TIMEFRAME(1 hour,default) //h1, a candela in corso di formazioneMedia10b = average[10,0](close)TIMEFRAME(default) //da lanciare da un grafico a 1 MinutoBUY AT -close LIMIT //istruzione inutile, ma richiesta da ProOrderGRAPH Media10aGRAPH Media10b -
AuthorPosts