![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
A quanto pare nessuno lo usa,
l'ordine viene aperto a prezzi inesistenti:
un semplice esempio da verificare:
È corretto? Prima viene il prezzo limite di stop e poi il prezzo di esercizio. Vedere ladocumentazione:
Ho modificato un po' il codice del topicstarter.
Ecco un esempio sullo strumento forex EURUSD.
Importante:il prezzo stoplimit è impostato peggio. Questo è per l'esecuzione dello scambio.
È stato impostato un limite di acquisto che è stato attivato e aperto come ordine limite.
Potete vedere nello screenshot che ci sono dei prezzi nel commento. Il primo prezzo (1,10258) è il prezzo richiesto quando l'ordine è stato piazzato, il secondo (1,10268) è il prezzo di attivazione della parte limite dell'ordine e il terzo (1,10263) è il prezzo di attivazione della parte stop dell'ordine.
La logica è la seguente: se il prezzo di domanda del mercato raggiunge 1,10263, allora la parte di stop dell'ordine (il prezzo di esercizio) viene attivata. E la parte limite dell'ordine dovrebbe scattare immediatamente, poiché il suo prezzo d'esercizio è peggiore del prezzo di mercato (1,10268).
Guardiamo i file di log:
Vediamo che alle00:02:15 l'ordine si è trasformato in un ordine limite (la parte stop è scattata). E si è subito trasformato in una posizione di mercato. E la cosa interessante è che i log non danno un prezzo bid-ask come nella prima riga (1,10239 / 1,10258). E questo è scomodo. Sì, la posizione è aperta a 1,10265. Ci si aspettava che fosse aperto a 1,10263. Qui penso che ci sia stato uno slittamento di 2pts.
Guardando la base delle zecche. Sì, i test erano su zecche reali del 2 dicembre 2019.
Vediamo che c'è il nostro tick (1,10265). Evidenziato nello screenshot. E da00:02:15 questa era la terza spunta. Larichiesta precedente = 1,10271 (dalle00:02:15.428) era ancora più alta. Anche se, allo stesso tempo della nostra zecca. Cioè, è entrato ad un prezzo migliore. Conclusione: come previsto, abbiamo ottenuto uno slittamento di 2 punti per la parte stop dell'ordine.
È la cosa giusta da fare? Prima viene il prezzo della stoplist e poi lo strike price. Guarda la documentazione:
Questo è fatto intenzionalmente in modo che quando lo stoplimit va al limite, il limite scatta immediatamente. Quando viene attivato, sembra essere da qualche parte là fuori, al prezzo che è specificato nell'ordine e non al prezzo che ha attivato lo stoplimit (che in realtà era).
La logica è la seguente: se il prezzo di domanda del mercato raggiunge 1,10263, la parte di stop dell'ordine (il prezzo di esercizio) viene attivata. E la parte limite dell'ordine dovrebbe scattare immediatamente, poiché il suo prezzo d'esercizio è peggiore del prezzo di mercato (1,10268).
C'è un prezzo di 123. Il BUY_STOP_LIMIT. Il prezzo di stop è 133. Il prezzo limite è 111.
Se il prezzo ha superato il prezzo di stop, il prezzo limite viene attivato. Se il prezzo torna a 111, la posizione viene aperta.
Se il prezzo non ha superato il prezzo di stop ed è tornato al prezzo limite, la posizione non sarà aperta.
Non è così?
Un ordine stop limit può essere controllato nel tester anche per il Forex. È sufficiente impostare "Esecuzione" = Scambio.
Ho controllato il limite di acquisto come segue: ho impostato il prezzo dell'ordine limite peggiore del prezzo di attivazione. L'ordine si è aperto al prezzo di mercato (ask price) al momento dell'attivazione. Quindi, sembra che la funzionalità del Tester funzioni.
Sì, su strumenti forex, con esecuzione in borsa, funziona correttamente.
E ora cambia anche "Settlement Method"=FORTS Futures, e vedi come funziona su strumenti negoziati in borsa.
Se mettete Metodo di calcolo = Forex su uno strumento negoziato in borsa, funziona correttamente, ma il margine non viene contato correttamente.
Stai usandoStopLimit nel trading reale?
È chiaro cheStopLimit non funziona adeguatamente nel tester.
Ha senso usarlo nel trading reale? Quali sono i vantaggi e gli svantaggi?
Questo tipo di ordini non ha senso da usare.
È molto più facile piazzare un ordine pendente subito, perché possiamo specificare qualsiasi termine della durata dell'ordine.
Se siamo sulla borsa, piuttosto che sul server MQ, questo ordine è garantito per funzionare al prezzo specificato in esso.
E il server può "glitchare".