Frazionamento in uscita
Forums › ProRealTime forum Italiano › Supporto ProOrder › Frazionamento in uscita
- This topic has 28 replies, 2 voices, and was last updated 3 years ago by robertogozzi.
Tagged: distance, distanza, exit, frazionamento, minima, minimum, ordini, partial, pendenti, uscite parziali
-
-
06/26/2021 at 11:04 AM #172517
Buongiorno, mi trovo in difficoltà ed al momento non ho ancora trovato una soluzione al seguente caso.
Comprando 3 contratti in long o in short, nel momento in cui desidero uscire con 3 TP diversi es: +18 + 15 + 12, nel backtest il codice funziona egregiamente, ovvero se si verifica un bel trend, uno per volta i 3 contratti escono regolarmente con 3 ordini distinti in barre diverse come sulla stessa sbarra. (Dax a 5min)
Nel momento in cui metto il codice in backorder, anzichè uscire con un contratto alla volta, appena raggiunta la condizione del primo TP (18) esce con tutti e 3 contemporaneamente.
Ho provato a cambiare più volte il codice, ma non sto riuscendo a fare nessun passo avanti. Qualcuno gentilmente, mi può suggerire un aiuto?12345678910111213141516IF not longonmarket and C1 AND TIMEOPERATE THENBUY 3 CONTRACTS AT MARKETSET STOP LOSS 15ENDIFIF COUNTOFLONGSHARES =3 THENSELL 1 CONTRACTS AT TRADEPRICE +18*POINTSIZE LIMITSET STOP LOSS 10ENDIFIF COUNTOFLONGSHARES =2 THENSELL 1 CONTRACTS AT TRADEPRICE +15*POINTSIZE LIMITSET STOP LOSS 5ENDIFIF COUNTOFLONGSHARES =1 THENSELL 1 CONTRACTS AT TRADEPRICE +12*POINTSIZE LIMITENDIF06/26/2021 at 11:54 AM #172521Perché i prezzi sono troppo vicini, tra 12 e 18 ci sono solo 6 punti.
Tieni presente che il backtest è fatto da ProBackTest, che non conosce i limiti del broker. Quando, invece, vai in demo o reale, è il broker che stabilisce i limiti ed IG ha delle distanze minime abbastanza elevate (nel DAX intorno ai 6-10 pip, ma può arrivare a varie decine in caso di volatilità e di notte!). Per cui se il prezzo corrente è inferiore a quella certa distanza richiesta, o la strategia viene interrotta o esegue l’ordine a mercato.
Anche per lo Stop Loss vale lo stesso discorso, 5 punti sono pochi! Mi pare IG ne richieda almeno 6, ma devi verificare con IG (basta che vai sulla loro piattaforma es. entri nel modulo per fare un ordine su un certo strumento ed avrai la possibilità di vedere un pò di informazioni utili).
Inoltre c’è da considerare che dopo la prima vendita a +18, il prezzo è superiore a quello delle successive uscite, quindi in quel caso occorre un ordine STOP, non limit. Se indichi un tipo errato entra a mercato.
In ogni caso è sempre opportuno, prima di piazzare ordini pendenti, verificare la distanza per sscegliere il tipo corretto, nel tuo caso (dopo avere definito una distanza):
1234567891011121314151617181920212223242526272829ONCE Distanza = 10 //minimo 10 pip di distanza (io uso sul Dax uso 7 e non ho QUASI mai problemi,// con 10 sei più tranquillo)IF COUNTOFLONGSHARES =3 THENIF (close + Distanza) < TRADEPRICE +18*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +18*POINTSIZE LIMITELSIF (close - Distanza) > TRADEPRICE +18*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +18*POINTSIZE STOPELSESELL 1 CONTRACTS AT MARKETENDIFSET STOP LOSS 10ELSIF COUNTOFLONGSHARES =2 THENIF (close + Distanza) < TRADEPRICE +15*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +15*POINTSIZE LIMITELSIF (close - Distanza) > TRADEPRICE +15*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +15*POINTSIZE STOPELSESELL 1 CONTRACTS AT MARKETENDIFSET STOP LOSS 5 //Pochi !!!ELSIF COUNTOFLONGSHARES =1 THENIF (close + Distanza) < TRADEPRICE +12*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +12*POINTSIZE LIMITELSIF (close - Distanza) > TRADEPRICE +12*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +12*POINTSIZE STOPELSESELL 1 CONTRACTS AT MARKETENDIFENDIFIn pratica (per i LONG) quando il Prezzo corrente (CLOSE) + Distanza sono > del prezzo d’uscita, devi usare un ordine LIMIT, se, invece, sono < prezzo d’uscita devi usare STOP, infine se sono entro entro l’intervallo tra +-Distanza, esce amercato (oppure puoi togliere la parte di ucita a mercato ed attendere la candela successiva).
06/26/2021 at 12:53 PM #172524Roberto, innanzitutto grazie per la tempestiva e cordiale risposta.
Mi ero dimenticato di metterti a disposizione l’informazione relativa al fatto che al momento sto testando la cosa su Dax a 1€, ed in questo caso IG permette un Stop Loss di minimo 5 punti nelle fasce orarie centrali (al momento voglio testare il tutto con questo limite che so essere estremo, ma per l’appunto voglio stressare l’efficacia ed efficienza del codice in relazione della piattaforma IG).
Avevo tentato inzialmente, come giustamente e correttamente hai rilevato, con l’opzione STOP il secondo ed il terzo contratto, ma non avevo sortito nulla di più per le ragioni che hai spiegato.L’impostazione che hai suggerito mi ha favorevolmente impressionato positivamente, Lunedì la metterò in linea e volentieri ti offrirò un riscontro.
GRAZIE ancora Roberto per avermi generosamente supportato con la tua pregevole analisi.1 user thanked author for this post.
06/26/2021 at 1:15 PM #172525Grazie.
Mi farà (anzi, farà piacere a tutti) avere tue notizie in merito.
06/28/2021 at 9:44 PM #172683Roberto, l’ho messo in pista oggi ed ho dovuto compiere quattro piccole correzioni, per cui i risultati operativi sul conto differiscono con quelli ottenuti sul conto in real time.
Domani con le correzioni effettuate vedrò se le entrate, ma soprattutto le uscite sono coerenti e collimano. Continua….06/30/2021 at 1:10 PM #172809123456789101112131415161718192021222324252627282930IF not longonmarket and C1 and not C3 AND TIMEOPERATE THENBUY 3 CONTRACTS AT MARKETSET STOP LOSS SLENDIFIF COUNTOFLONGSHARES =3 THENIF (close + Distanza) < TRADEPRICE +18*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +18*POINTSIZE LIMITELSIF (close - Distanza) > TRADEPRICE +18*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +18*POINTSIZE STOPELSESELL 1 CONTRACTS AT MARKETENDIFELSIF COUNTOFLONGSHARES =2 THENIF (close + Distanza) < TRADEPRICE +12*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +12*POINTSIZE LIMITELSIF (close - Distanza) > TRADEPRICE +12*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +12*POINTSIZE STOPELSESELL 1 CONTRACTS AT MARKETENDIFELSIF COUNTOFLONGSHARES =1 THENIF (close + Distanza) < TRADEPRICE +10*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +10*POINTSIZE LIMITELSIF (close - Distanza) > TRADEPRICE +10*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +10*POINTSIZE STOPELSESELL 1 CONTRACTS AT MARKETENDIFENDIFDopo aver controllato, riporto quanto. Non appena l’innesco dell’ordine fa partire l’ordine e quest’ultimo viene eseguito, immediatamente mette lo stop loss regolarmente, ma per i due ordini stop e limit, bisogna aspettare sempre la barra successiva, per cui se fa una fiammata verso l’alto cominciano i problemi.
Ho provato ad innescare immediatamente i 2 ordini di vendita limit e stop di 1 pezzo subito dopo aver fatto il buy, ma temo che traderprice debba attendere la fine della barra per cui sono ad un vicolo cieco. Per la parte shor che dovrebbe essere speculare dal punto di vista del codice e che più avanti ti sottoporrò per una tua conferma ho osservato gli stessi comportamenti. In definitiva gli ordini in cascata vengono assegnati alla piattaforma IG solo alla barra successiva generando errori ed mancati profitti.06/30/2021 at 2:25 PM #172817Le righe 6-30 le esegue dalla barra successiva alla prima, ma poi le esegue ad ogni barra, non capisco cos’hanno a che fare con lo SL iniziale.
06/30/2021 at 3:19 PM #172820Esempio:
TF 5 minuti DAX 1€
Alla chiusura della barra delle 13:55 vengono confermate le condizioni d’innesco per cui all’apertura della barra delle 14:00 esegue un ordine in long a 1650 di 3 contratti (RIGA 2)
Sempre alle 14:00 esegue 1 ordine con STOP di 3 pezzi (RIGA 3)La RIGA 8 alle 14:10 accendono 1 ordine in SELL LIMIT a 1668
La RIGA 10 alle 14:10 tenta di accendere 1 ordine in SELL STOP ma la riga 3 probabilmente non lo fa eseguire.Se nella barra delle 14:05 mi schizza a 1690 non può uscire come vorrei (perchè l’ordine LIMIT lo metterà nella barra delle 14:10); cosa strana è che nella barra delle 14:10 non fa nulla, non esce a MARKET.
Nelle barre successive lo forzo ad uscire manualmente e sto cercando di capire come risolvere tale situazione.06/30/2021 at 3:52 PM #172823Le condizioni sono sulla barra delle 13:55, quindi alla chiusura entra (sono le 14:00) con lo SL iniziale.
Alle 14:05 (perché scrivi alle 14:10?) piazza l’ordine di di cui alle righe 6-13, quindi STOP, LIMIT o a MERCATO.
Non ho idea dei prezzi in quel precuiso momento. Senza il codice non so cosa vuoi fare.
Per aiutarti devo replicare esattamente la tua operatività.
06/30/2021 at 3:54 PM #172824In ogni caso ti suggerisco di usare GRAPH e GRAPHONPRICE per fare il debugging, in questo modo puoi indicare le variabili che t’interessano sul grafico e/o nella finestra delle variabili che il backtest apre (sotto la curva in alto).
06/30/2021 at 4:10 PM #172826si erano le 14:05 e non 14:10…. chiedo scusa…. (ero partito con le 14 poi per rendere la lettura più facile ho messo come partenza 13:55 e mi sono dimenticato di correggere)
Provo a utilizzare le istruzioni GRAPH e GRAPHONPRICE come suggerisci e scriverò qui il codice appena riesco.
GRAZIE MILLE
06/30/2021 at 5:11 PM #172837Ecco Roberto il codice sul quale sto indagando. Ti ringrazio in anticipo.
Dove sbaglio?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596TP1=18TP2=12TP3=12SL=15ONCE Distanza = 10//************// LONG *//************IF not longonmarket AND C1 TIMEOPERATE THENBUY 3 CONTRACTS AT MARKETSET STOP LOSS SLENDIFIF COUNTOFLONGSHARES =3 THENIF (close + Distanza) < TRADEPRICE +TP1*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +TP1*POINTSIZE LIMITELSIF (close - Distanza) > TRADEPRICE +TP1*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +TP1*POINTSIZE STOPELSESELL 1 CONTRACTS AT MARKETENDIFELSIF COUNTOFLONGSHARES =2 THENIF (close + Distanza) < TRADEPRICE +TP2*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +TP2*POINTSIZE LIMITELSIF (close - Distanza) > TRADEPRICE +TP2*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +TP2*POINTSIZE STOPELSESELL 1 CONTRACTS AT MARKETENDIFELSIF COUNTOFLONGSHARES =1 THENIF (close + Distanza) < TRADEPRICE +TP3*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +TP3*POINTSIZE LIMITELSIF (close - Distanza) > TRADEPRICE +TP3*POINTSIZE THENSELL 1 CONTRACTS AT TRADEPRICE +TP3*POINTSIZE STOPELSESELL 1 CONTRACTS AT MARKETENDIFENDIFIF longonmarket and not C1 thenA=COUNTOFLONGSHARESSELL A CONTRACT AT MARKETENDIFiF LONGONMARKET AND NOT TIMEOPERATE THENA=COUNTOFLONGSHARESSELL A CONTRACT AT MARKETENDIF//************// SHORT *//************IF not SHORTOnmarket and C2 AND TIMEOPERATE THENSELLSHORT 3 CONTRACTS AT MARKETSET STOP LOSS SLENDIFIF COUNTOFSHORTSHARES =3 THENIF (close - Distanza) > TRADEPRICE -TP1*POINTSIZE THENEXITSHORT 1 CONTRACTS AT TRADEPRICE -TP1*POINTSIZE LIMITELSIF (close + Distanza) < TRADEPRICE -TP1*POINTSIZE THENEXITSHORT 1 CONTRACTS AT TRADEPRICE -TP1*POINTSIZE STOPELSEEXITSHORT 1 CONTRACTS AT MARKETENDIFELSIF COUNTOFSHORTSHARES =2 THENIF (close - Distanza) > TRADEPRICE -TP2*POINTSIZE THENEXITSHORT 1 CONTRACTS AT TRADEPRICE -TP2*POINTSIZE LIMITELSIF (close + Distanza) < TRADEPRICE -TP2*POINTSIZE THENEXITSHORT 1 CONTRACTS AT TRADEPRICE -TP2*POINTSIZE STOPELSEEXITSHORT 1 CONTRACTS AT MARKETENDIFELSIF COUNTOFSHORTSHARES =1 THENIF (close - Distanza) > TRADEPRICE -TP3*POINTSIZE THENEXITSHORT 1 CONTRACTS AT TRADEPRICE -TP3*POINTSIZE LIMITELSIF (close + Distanza) > TRADEPRICE -TP3*POINTSIZE THENEXITSHORT 1 CONTRACTS AT TRADEPRICE -TP3*POINTSIZE STOPELSEEXITSHORT 1 CONTRACTS AT MARKETENDIFENDIFIF SHORTONMARKET AND NOT C2 THENA=COUNTOFSHORTSHARESEXITSHORT A CONTRACTS AT MARKETENDIFiF SHORTONMARKET AND NOT TIMEOPERATE THENA=COUNTOFSHORTSHARESEXITSHORT A CONTRACTS AT MARKETENDIF06/30/2021 at 5:32 PM #172840Devo verificare il setup delle 13:55 di oggi?
06/30/2021 at 5:52 PM #172841No, ho usato quell’orario per dare dei riferimenti di massima chiari (invece ho pure sbagliato…).
07/01/2021 at 7:58 AM #172861Ok, ma per provare, che valori hanno C1, C2 e TIMEOPERATE?
-
AuthorPosts
Find exclusive trading pro-tools on