CANDELA IN CUI E' AVVENUTA L'APERTURA DEL TRADE
Forums › ProRealTime forum Italiano › Supporto ProOrder › CANDELA IN CUI E' AVVENUTA L'APERTURA DEL TRADE
- This topic has 15 replies, 2 voices, and was last updated 5 years ago by robertogozzi.
Tagged: Dhigh, Dlow, tradeindex
-
-
02/28/2019 at 10:50 AM #92509
Buon Giorno,
qualcuno puo’ aiutarmi a creare una funzione che determini la candela di tipo Day in cui e’ avvenuta l’apertura dell’ultima posizione identificando anche il Low e Higt a candela chiusa, per utilizzarli come Stop loss sul trade in corso?
Nei video tutorial ho intravisto la funzione TRADEINDEX ma non gli si puo’ applicare il Low e l’High, inoltre non la vedo presente nelle “funzioni” aggiuntive per la creazione di indicatori personalizzati, quindi non presente nella memoria del programma e inutilizzabile.
Vi ringrazio
Giuseppe
02/28/2019 at 12:22 PM #92522TRADEINDIX è l’indicazione giusta per una strategia, ma tu stai parlando di strategie o indicatori?
Perché solo una strategia può aprire posizioni, però alla fine parli di indicatori personalizzati, che sono un’altra cosa.
02/28/2019 at 10:29 PM #92570Ciao Roberto,
grazie per avermi risposto, effettivamente avevo visionato solo le funzioni per la creazione degli indicatori ed il TRADEINDEX e’ presente nelle funzioni per la creazione delle strategie.
Quello di cui avrei bisogno e’ il Dlow ed il Dhigt di tale funzione (TRADEINDEX) per la creazione di una strategia di uscita da un trade aperto . Infatti, da quel che ho capito, posso solo decidere se tale funzione appartiene all’ultimo ordine lasciando TRADEINDEX(1) oppure tre precedenti ordini mettendo TRADEINDEX(3), ma non e’ possibile impostare il Low o Higt di tale candela.
Non avendo una buona padronanza del sistema trovo un po’ complicato impostarlo, se riesci a darmi una soluzione ben volentieri.
Grazie
02/28/2019 at 11:54 PM #92593Intanto ho spostato il topic nel supporto ProOrder, trattandosi di un problema relativo ad una strategia.
La barra dove è iniziata l’operazione in corso è TRADEINDEX, per cui basta fare la differenza tra BARINDEX (totale barre) e TRADEINDEX per capire di quante barre indietro devi andare per cercare i valori di HIGH e LOW.
Stiamo parlando di candele DAILY:
123BarraApertura = BARINDEX - TRADEINDEXMassimo = high[BarraApertura]Minimo = low[BarraApertura]03/01/2019 at 12:07 PM #92631Ho provato ad inserire il tuo suggerimento nella strategia che sto testando ma non mi da’ le chiusure che dovrebbe dare .
provo ad iserirla sul portale , in pratica attivo un acquisto a candela low (a 2 min)quando il prezzo tocca verso il basso una media mobile esp.152 periodi con spostamento verticale -0,86(di tipo giornaliera), e dovrebbe uscire dal trade quando la candela high(a due min) tocca al rialzo una seconda media mobile esp.152 periodi con spostamento verticale -1,8(di tipo giornaliera) oppure in stop loss utilizzando quello che mi hai scritto , ossia quando la candela low(a 2 min) e’ inferiore al Low[BarraApertura](di tipo giornaliero).
Il test viene eseguito su un grafico a 1 minuto con 100000 barre precaricate nelle x unita’
1234567891011121314151617181920212223242526272829303132333435363738// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Condizioni per entrare su posizioni longTIMEFRAME(2 minute)a = lowTIMEFRAME(1440 minute)indicator1 = ExponentialAverage[152](close)*0.982c1 = (a CROSSES UNDER indicator1)IF c1 THENBUY 1 CONTRACT AT MARKETENDIF// Condizioni per uscire da posizioni longTIMEFRAME(1440 minute)indicator2 = ExponentialAverage[152](close)*0.855ab = BARINDEX-TRADEINDEXMinimo = low[ab]TIMEFRAME(2 minute)b = highc2 = (b CROSSES OVER indicator2)C3 = (a<Minimo)IF c2 or c3 THENSELL AT MARKETENDIF03/01/2019 at 12:37 PM #92636Per scrivere il codice , utilizza il pulsante <> “insert PRT code”, in modo da rendere il codice più comprensibile.
Grazie.
03/01/2019 at 12:55 PM #92640Acquisto m.m.e. ed uscita su supporto Low TRADEINDEX DAILY123456789101112131415161718192021222324252627282930313233343536// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Condizioni per entrare su posizioni longTIMEFRAME(2 minute)a = lowTIMEFRAME(1440 minute)indicator1 = ExponentialAverage[152](close)*0.982c1 = (a CROSSES UNDER indicator1)IF c1 THENBUY 1 CONTRACT AT MARKETENDIF// Condizioni per uscire da posizioni longTIMEFRAME(1440 minute)indicator2 = ExponentialAverage[152](close)*0.855ab = BARINDEX - TRADEINDEXMinimo = low[ab]TIMEFRAME(2 minute)b = highc2 = (b CROSSES OVER indicator2)C3 = (a<Minimo)IF c2 or c3 THENSELL AT MARKETENDIF03/02/2019 at 3:32 AM #92676Ci sono vari problemi:
- Lo scostamento delle medie è veramente enorme, 0.982 è già molto elevato, perché è l’1.8%, ma l’altro di 0.855 è praticamente quasi impossibile vederlo sul grafico perché ha una distanza dal prezzo del 14.5%, credo sia impossibile da raggiungere (sul DAX assolutamente impossibile, su EUR/USD qualche volta accade)
- BarIndex fa riferimento alle barre trascorse di ciascun TF, per cui ha valore diverso secondo il TF dove lo usi, inoltre ha un valore diverso, nello stesso TF, se usi UPDATEONCLOSE oppure no
- TradeIndex fa riferimento sempre al TF principale, cioè il più basso utilizzato, nel tuo caso quello ad 1 minuto da cui hai eseguito la strategia
Per cui il problema è che la riga 22 assegna ad AB un valore sballato.
Inoltre non ha molto senso eseguirla da un TF ad 1 minuto quando nella strategia il più basso TF che usi è il 2 minuti, perché così facendo “sprechi” un Time Frame (ProOrder ne permette 6, compreso quello di default) ed inoltre hai un minore numero di barre di storico a disposizione.
03/02/2019 at 6:01 PM #92723Ciao Roberto, ancora grazie per avermi supportato.
In realta’ le medie mobili che ho utilizzato sono m.m.esp. 152 scost. vert. -1.25 e la seconda idem con scost.vert. -1,8 entrambe giornaliere.
Per quanto riguarda i timeframe , a me piacerebbe utilizzare un solo timeframe giornaliero, il problema e’ che l’ attivazione della posizione arriva solo dopo la sua chiusura , quindi nella candela giornaliera successiva, per me troppo tardi dopo aver toccato un determinato indicatore. Ho quindi optato per entrare con timeframe bassi come i 2 minuti . Un altro paletto che ho riscontrato e’ che quando provo a testare in backtest devo farlo con timeframe multipli ma uguali o inferiori a quello piu’ basso utilizzato nel progetto. Non mi e’ chiaro la possibilita’ di avere 6 possibilta’ di timeframe piu’ quello di default per il backtest.
Per quanto riguarda il TRADEINDEX, che mi crea veramente un vero blocco nell’andare avanti nella progettazione, pensavo che introducendolo all’interno della programmazione nelle righe inerenti al TIMEFRAME(1440 minute) con la colorazione rossastra come per gli indicatori m.m.e. di tipo Day potesse essere visionato dal programma proprio come la candela di tipo Day. L’ UPDATEONCLOSE non so a cosa si riferisca , non l’ ho riscontrato nel glossario della programmazione.
Se mi potessi aiutare ad inserire un TRADEINDEX all’interno del programma in modo che venga letto di tipo DAY pur usando il backtesting a 2 minuti ti sarei molto grato.
123456789101112131415161718192021222324252627282930313233343536// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Condizioni per entrare su posizioni longTIMEFRAME(2 minute)a = lowTIMEFRAME(1440 minute)indicator1 = ExponentialAverage[152](close)*0.982c1 = (a CROSSES UNDER indicator1)IF c1 THENBUY 1 CONTRACT AT MARKETENDIF// Condizioni per uscire da posizioni longTIMEFRAME(1440 minute)indicator2 = ExponentialAverage[152](close)*0.9875ab = BARINDEX - TRADEINDEXMinimo = low[ab]TIMEFRAME(2 minute)b = highc2 = (b CROSSES OVER indicator2)C3 = (a<Minimo)IF c2 or c3 THENSELL AT MARKETENDIF03/03/2019 at 9:37 AM #92744UpdateOnClose fa aggiornare le variabili solo alla chiusura di quella barra, mentre Default (o niente, viene assunto per difetto se l’ometti) le aggiorna ogni volta che la strategia viene letta ed eseguita, quindi ogni candela del TF principale che è il più piccolo e che viene usato per lanciare la strategia.
Prova a lanciare questa da un TF a 4 ore e vedi la differenza dei valori delle variabili, candela dopo candela, nella finestra delle variabili che viene aperta da ProBackTest;
12345678910Timeframe(Daily)Media1 = average[20,0](close)Timeframe(Daily,updateonclose)Media2 = average[20,0](close)Timeframe(default)if Media1 > Media2 thenBuy at -close limitEndifGraph Media1Graph Media203/03/2019 at 1:39 PM #92754Ciao Roberto, ho provato ad inserire UpDateOnClose nel T.F. Daily per far si che avvenisse la lettura delle variabili a fine candela di quel T.F. (Daily) ma non ha risposto come dovuto , infatti se prendi il trade con apertura del giorno 3/10/2018, avrebbe dovuto chiudere in loss in data 08/10/2018 ma ha chiuso in data 11/10/2018.
Possibile che abbia sbagliato qualcosa nella procedura della programmazione ?
Grazie
1234567891011121314151617181920212223242526272829303132333435// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Condizioni per entrare su posizioni longTIMEFRAME(2 minute,updateonclose)a = lowTIMEFRAME(daily,updateonclose)indicator1 = ExponentialAverage[152](close)*0.982indicator2 = ExponentialAverage[152](close)*0.9875c1 = (a CROSSES UNDER indicator1)IF c1 THENBUY 1 CONTRACT AT MARKETENDIF// Condizioni per uscire da posizioni longTIMEFRAME(daily,updateonclose)ab = BARINDEX - TRADEINDEXMinimo = low[ab]TIMEFRAME(2 minute,updateonclose)b = highc2 = (b CROSSES OVER indicator2)C3 = (a<Minimo)IF c2 or c3 THENSELL AT MARKETENDIF03/03/2019 at 2:18 PM #92757Prova a sostituire le righe 21-23 con:
123If OnMarket and Not OnMarket[1] ThenMinimo = low[1]Endifprova eventualmente anche togliendo UpdateOnClose dalla riga 19.
03/03/2019 at 4:00 PM #9275803/03/2019 at 4:16 PM #92761Per verificare se è stata appena aperta una posizione.
Se la barra prima non era a mercato, mentre ora si, significa che è appena stata aperta una nuova posizione e calcola il minimo sulla barra precedente, quella di setup.
03/03/2019 at 4:21 PM #92762 -
AuthorPosts