Sell alla chiusura della barra
Forums › ProRealTime forum Italiano › Supporto ProOrder › Sell alla chiusura della barra
- This topic has 9 replies, 3 voices, and was last updated 4 years ago by robertogozzi.
-
-
06/30/2020 at 11:24 AM #137669
Salve a tutti…sono nuovo e poco pratico di programmazione…cercavo un codice per chiudere l operazione in profit o loss oppure alla chiusura della barra corrente(ogni barra = 1 operazione ).
Usando
12If LongOnMarket AND BarIndex >= (TradeIndex + N) THENSELL AT MARKETDove n= 0 …. Mi chiude all’apertura della barra successiva ed andrebbe bene ma non mi parte a questo punto la condizione per quella barra…in poche parole mi scavalla e l ordine entra dopo 2 barre. Ho cosi 1 ordine una barra si e una no…a me serve 1 ordine ogni barra…mi sapete aiutare?Grazie a tutti in anticipo
06/30/2020 at 11:42 AM #137674Per aggiornare le varie costanti relative ai vari stati (OnMarket, StrategyProfit, ecc…) ProOrder ha bisogno di una barra, per cui tu dai il comando di cui sopra, che va bene, ma non riesce a saperlo prima della barra successiva.
Per risolvere il problema basta che, all’inizio metti:
1DEFPARAM CumulateOrders = truein tal modo gli dici che può aprire anche più posizioni contemporaneamente (non è vero perché tu l’hai già chiusa, ma lui ancora non lo sa).
Inoltre NON usare queste condizioni per aprire una posizione:
123IF OnMarketIF LongOnMarketIF ShortOnMarketaltrimenti NON entra a mercato fino alla barra successiva.
1 user thanked author for this post.
06/30/2020 at 12:10 PM #137681Grazie Roberto per la risposta tempestiva innanzitutto.
In realtà io usavo proprio if not OnMarket come condizione…
123456789con = CLOSE + 1 * pipsizen = 0// Condizioni per entrare su posizioni longIF NOT LongOnMarket THENBUY 1 CONTRACTS AT con STOPSET TARGET PROFIT abs(close - low) + 2 * pipsizeSET STOP LOSS abs(close - low) + 5 * pipsizeENDIFOra che condizione uso?
Poi in realtà ho riscontrato altro problema con profit e loss….(sono su Forex eur aud) non dovrebbe essere 20 ticks e 50 ticks? Oltre a non corrispondere a volte non entrano proprio….
06/30/2020 at 12:28 PM #137685Per TICKS intendi il quinto decimale dopo la virgola? Si, 2 pips equivalgono a 20 decimi di pips (o ticks se preferisci). Generalmente il prezzo ufficiale si dovrebbe fermare a 4 decimali, il quinto è stato aggiunto da vari anni per facilitare e rendere più precisi i calcoli e gli indicatori ).
Perché vuoi usare LONGONMARKET, se la posizione l’hai già chiusa poche righe prima sai benissimo che non può essere a mercato, no?
1 user thanked author for this post.
06/30/2020 at 12:39 PM #137687Si intendo 2 pips…ma provandola sul grafico non corrisponde…e nn capisco il perchè…
Per la condizione io vorrei eliminare LONGONMARKET ma mi da errore anche inserendo DEFPARAM CumulateOrders = true
Un IF devo cmq metterlo per la condizione giusto? metto qualcosa che risulta sempre vera?
06/30/2020 at 3:27 PM #137747IF non è obbligatorio, lo metti solo se un certo evento deve dipendere da una condizione verificata o no.
Questo puoi saperlo solo tu. Devi vedere te se è meglio avere il problema che lamentavi precedentemente, oppure non avere quella condizione.
1 user thanked author for this post.
07/02/2020 at 4:36 PM #13812207/02/2020 at 4:55 PM #138126Come detto all’inizio, i vari stati di posizionamento sul mercato hanno bisogni di una barra per essere acquisiti dal sistema, per cui è quello che intendevo per barra successiva.
07/02/2020 at 5:56 PM #138132Certamente dipende dal fatto che sono alle prime armi, per ora mi ero fatto queste convinzioni:
– in proorder il codice è chiamato tra la fine di una barra e l ‘inizio della successiva.
– l’intervallo tra una chiamata e l’altra dipende (ignorando MultiTimeFrame per semplicità) dal time della chart
– tutti i valori delle variabili di sistema (close, open, high, low, openminute, opendate, strategyprofit, longonnmarket, shortonmarket, ecc) si riferiscono alla barra appena chiusa.In numeri.
la strategia è applicata in un timeframe a 15 secondi. il codice è chiamato ogni 4 volte in un minuto,
1 volta, alla fine della barra aperta alle 13:00:00 e chiusa alle 13:00:14 prima che si apra quella 13:00:15 — con opentime che vale 130000, open valore delle 13:00:00, close valore delle 13: 00:14, high e low rispettivamente il valore più alto e più basso registrato tra le 13:00:00 e le 13:00:14
2 volta, alla fine della barra aperta alle 13:00:15 e chiusa alle 13:00:29 prima che si apra quella 13:00:30 — con opentime che vale 130015, open valore delle 13:00:15, close valore delle 13: 00:29, high e low rispettivamente il valore più alto e più basso registrato tra le 13:00:15 e le 13:0029, short e long on market come sono alla fine della barra chiusa
3 volta, alla fine della barra aperta alle 13:00:30 e chiusa alle 13:00:44 prima che si apra quella 13:00:45, — con opentime che vale 130030, open valore delle 13:00:30, close valore delle 13: 00:44, high e low rispettivamente il valore più alto e più basso registrato tra le 13:00:30 e le 13:0044, short e long on market come sono alla fine della barra chiusa
4 volta, alla fine della barra aperta alle 13:00:45 e chiusa alle 13:00:59 prima che si apra quella 13:01:00, — con opentime che vale 130045, open valore delle 13:00:45, close valore delle 13: 00:59, high e low rispettivamente il valore più alto e più basso registrato tra le 13:00:45 e le 13:0059, short e long on market come sono alla fine della barra chiusa
ho capito bene?
07/02/2020 at 6:01 PM #138133Si, solo che l’ora di chiusura non è 14, 29, 44 e 59, ma combacia con l’inzio della barra successiva, quindi sarà 15, 30, 45 e 00.
OpenTime restituisce l’ora di apertura, Time quella di chiusura della candela.
1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on