StopLimit

 

Stai usandoStopLimit nel trading reale?

È chiaro cheStopLimit funziona in modo inadeguato nel tester.

Ha senso usarlo nel trading reale? Quali sono i vantaggi e gli svantaggi?

 
Sergey Chalyshev:

Stai usandoStopLimit nel trading reale?

È chiaro cheStopLimit funziona in modo inadeguato nel tester.

Ha senso usarlo nel trading reale? Quali sono i vantaggi e gli svantaggi?

Cosa c'è che non va nel tester?
 
Artyom Trishkin:
Cosa c'è che non va nel tester?

A quanto pare nessuno lo usa,

l'ordine viene aperto a prezzi inesistenti:

sl

Un semplice esempio da verificare:

//+------------------------------------------------------------------+
//|                                               StopLimit_Test.mq5 |
//+------------------------------------------------------------------+
#include <Trade\Trade.mqh>
CTrade trade;

input int Deviation = 100;
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlTick tick;
   SymbolInfoTick(_Symbol,tick);
   trade.SetTypeFilling(ORDER_FILLING_RETURN);
   double ticksise=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);

   if(OrdersTotal()==0)
      trade.OrderOpen(
         _Symbol,                      // символ
         ORDER_TYPE_BUY_STOP_LIMIT,    // тип ордера
         1.0,                          // объем ордера
         tick.ask+Deviation*ticksise,  // цена исполнения
         tick.ask+10*ticksise,         // цена стоплимита
         0,                            // цена stop loss
         0                             // цена take profit
      );
  }
//+------------------------------------------------------------------+
 
Sergey Chalyshev:

A quanto pare nessuno lo usa,

l'ordine viene aperto a prezzi inesistenti:

Un semplice esempio da verificare:

Un ordine BuyStopLimit funziona così:

  1. Un ordine BuyStop è piazzato sopra il prezzo (valore del prezzo nella struttura della richiesta di compravendita = prezzo + distanza di impostazione dell'ordine stop)
  2. Quando scatta un ordine BuyStop, un ordine BuyLimit viene piazzato sotto il prezzo
    (al prezzo stoplimit nella struttura di richiesta di trade che dovrebbe essere calcolato correttamente: stoplimit = prezzo - distanza di impostazione dell'ordine stop)
  3. Quando scatta un ordine BuyLimit, viene effettuata un'entrata nel mercato al prezzo dell'ordine BuyLimit

Esempio:


 
Artyom Trishkin:

Un ordine BuyStopLimit funziona in questo modo:

  1. Impostiamo un ordine BuyStop sopra il prezzo (valore del prezzo nella struttura di richiesta di compravendita = prezzo + distanza di impostazione dell'ordine stop)
  2. Quando viene attivato il BuyStop, un ordine BuyLimit viene piazzato sotto il prezzo
    (al prezzo stoplimit nella struttura di richiesta di trade che dovrebbe essere calcolato correttamente: stoplimit = prezzo - distanza di impostazione dell'ordine stop)
  3. Quando scatta un ordine BuyLimit, viene effettuata un'entrata nel mercato al prezzo dell'ordine BuyLimit

Esempio:


QuandoBuyLimit è sotto il prezzo, funziona bene nel tester.

QuandoBuyLimit è superiore al prezzo, dovrebbe aprire al prezzo Ask. Sullo scambio, sul reale, funziona così.

Non ha senso usare StopLimit per impostareBuyLimit sotto il prezzo.

 
Sergey Chalyshev:

QuandoBuyLimit è sotto il prezzo, funziona bene nel tester.

QuandoBuyLimit è sopra il prezzo, dovrebbe aprirsi al prezzo Ask. Sullo scambio, sul reale, funziona così.

Usare uno StopLimit per mettere il BuyLimit sotto il prezzo non ha senso.

Campo

Descrizione

azione

Tipo di operazione commerciale. Ilvalore può essere uno dei valori dell'enumerazione ENUM_TRADE_REQUEST_ACTIONS

magia

Identificatore dell'Expert Advisor. Permette di organizzare l'elaborazione analitica degli ordini commerciali. Ogni Expert Advisor può mostrare il proprio identificatore unico quando invia una richiesta di compravendita

ordine

Ordinare il biglietto. Richiesto per la modifica di ordini pendenti

simbolo

Nome del simbolo per il quale viene effettuato l'ordine. Non necessario per la modifica degli ordini e la chiusura delle posizioni

Volume

Volume richiesto di un affare in lotti. Ilvalore effettivo del volume quando si apre una posizione dipende dal tipo di ordine che viene eseguito.

prezzo

Il prezzo quando l'ordine dovrebbe essere eseguito. Il prezzo non è richiestoper gli ordini a mercato del tipo "Esecuzione sul mercato" ( SYMBOL_TRADE_EXECUTION_MARKET ) con il tipoTRADE_ACTION_DEAL

stoplimit

Prezzo al quale l'ordine pendente Limit sarà piazzato una volta che il prezzo raggiunge il valore del prezzo (questa condizione è obbligatoria). Fino a quel momento, l'ordine pendente non viene inserito nel sistema di trading

sl

Prezzo al quale scatterà un ordine Stop Loss quando il prezzo del titolo si muove in una direzione sfavorevole

tp

Prezzo al quale l'ordine Take Profit viene attivato dal movimento del prezzo nella direzione favorevole

deviazione

Scostamento massimo accettabile dal prezzo richiesto, fissato in punti

tipo

Tipo di ordine. Il valore può essere uno dei valori dell'enumerazione ENUM_ORDER_TYPE

tipo_riempimento

Tipo di ordine da eseguire. Ilvalore può essere uno dei valori diENUM_ORDER_TYPE_FILLING

tipo_tempo

Tipo di ordine_tempo di riempimento. Ilvalore può essere uno dei valori diENUM_ORDER_TYPE_TIME

scadenza

Tempo di scadenzadell'ordine in sospeso (per ordini ORDER_TIME_SPECIFIED)

commento

Commento all'ordine

posizione

Biglietto per la posizione. Questo dovrebbe essere compilato quando una posizione viene cambiata e chiusa per identificarla chiaramente. Questo di solito corrisponde al biglietto dell'ordine che ha portato all'apertura della posizione.

per posizione

Un biglietto per una contro posizione. Usato quando si chiude una posizione di contatore - aperta per lo stesso strumento, ma nella direzione opposta.


Spero che tu sappia cos'è un ordine limite. E anche un ordine di arresto, spero non abbiate dubbi.

E questo è quello che dice qui su come funziona un ordine StopLimit: quando il prezzo raggiunge il livello di un ordine Stop (ed è posto al di sopra del prezzo di acquisto), solo allora sarà posto un ordine Limit (ed è posto al di sotto del prezzo di acquisto).

 
Sergey Chalyshev:

QuandoBuyLimit è sotto il prezzo, funziona bene nel tester.

QuandoBuyLimit è sopra il prezzo, dovrebbe aprirsi al prezzo Ask. Sulloscambio, sul reale, funziona così.

Usare StopLimit per mettere il BuyLimit sotto il prezzo non ha senso.

Scusa, come fai a mettere l 'ordine BuyLimit sopra il prezzo?

Non dovrebbe essere impostato affatto in questo scenario.

Se state usando una classe di trading SB, c'è un controllo per i parametri errati, e in una tale situazione non viene piazzato un ordine pendente, ma viene aperto un ordine a mercato.

 
Artyom Trishkin:

Campo

Descrizione

azione

Tipo di operazione commerciale. Ilvalore può essere uno dei valori dell'enumerazione ENUM_TRADE_REQUEST_ACTIONS

magia

Identificatore dell'Expert Advisor. Permette di organizzare l'elaborazione analitica degli ordini commerciali. Ogni Expert Advisor può mostrare il proprio identificatore unico quando invia una richiesta di compravendita

ordine

Ordinare il biglietto. Richiesto per la modifica di ordini pendenti

simbolo

Nome del simbolo per il quale viene effettuato l'ordine. Non necessario per la modifica degli ordini e la chiusura delle posizioni

Volume

Volume richiesto di un affare in lotti. Ilvalore effettivo del volume quando si apre una posizione dipende dal tipo di ordine che viene eseguito.

prezzo

Questo è il prezzo al quale l'ordine dovrebbe essere eseguito. Il prezzo non è richiestoper gli ordini a mercato del tipo "Esecuzione sul mercato" ( SYMBOL_TRADE_EXECUTION_MARKET ) con il tipoTRADE_ACTION_DEAL

stoplimit

Prezzo al quale l'ordine pendente Limit sarà piazzato una volta che il prezzo raggiunge il valore del prezzo (questa condizione è obbligatoria). Fino a quel momento, l'ordine pendente non viene inserito nel sistema di trading

sl

Prezzo al quale scatterà un ordine Stop Loss quando il prezzo del titolo si muove in una direzione sfavorevole

tp

Prezzo al quale l'ordine Take Profit viene attivato dal movimento del prezzo nella direzione favorevole

deviazione

Scostamento massimo accettabile dal prezzo richiesto, fissato in punti

tipo

Tipo di ordine. Il valore può essere uno dei valori dell'enumerazione ENUM_ORDER_TYPE

tipo_riempimento

Tipo di ordine da eseguire. Ilvalore può essere uno dei valori diENUM_ORDER_TYPE_FILLING

tipo_tempo

Tipo di ordine_tempo di riempimento. Ilvalore può essere uno dei valori diENUM_ORDER_TYPE_TIME

scadenza

Tempo di scadenzadell'ordine in sospeso (per ordini ORDER_TIME_SPECIFIED)

commento

Commento all'ordine

posizione

Biglietto per la posizione. Questo dovrebbe essere compilato quando una posizione viene cambiata e chiusa per identificarla chiaramente. Questo di solito corrisponde al biglietto dell'ordine che ha portato all'apertura della posizione.

per posizione

Un biglietto per una contro posizione. Si usa quando si chiude una posizione con una contro posizione - aperta per lo stesso strumento, ma nella direzione opposta.


Spero che tu sappia cos'è un ordine limite. E anche un ordine di arresto, spero che tu non abbia dubbi.

E questo è quello che dice qui su come funziona un ordine StopLimit: quando il prezzo raggiunge il livello dell'ordine Stop (ed è posto al di sopra del prezzo di acquisto), solo in questo caso un ordine Limit sarà posto (ed è posto al di sotto del prezzo di acquisto).

Cosa vi fa pensare che l'ordine BuyLimit debba essere necessariamente sotto il prezzo?

Sto parlando del mercato azionario, il forex non è interessante.

 
Artyom Trishkin:

Mi scusi, cosa sta facendo impostando l'ordine BuyLimit sopra il prezzo?

Non dovrebbe essere impostato affatto in questa situazione.

Se state usando la classe SB-trading, ha un controllo per i parametri non validi e in tale situazione, l'ordine pendente non viene aperto, e la posizione viene aperta da un ordine a mercato.

Vi ho dato un esempio di codice sopra.

Dovrebbe essere impostato e lo è.

Se fosse aperto dal mercato, non ci sarebbero problemi nel tester; sarebbe aperto dal prezzo Ask. Ma verrebbe aperto ad un prezzo inesistente, lo si può vedere nella foto qui sopra.

p.s. Provate voi stessi il codice di cui sopra in un conto di scambio
 
"Fantastico" stoplimit nella libreria standard, senza parole :))
il limite dovrebbe impostare lo slippage di un ordine a mercato, non l'impostazione di un ordine limite :))
 
Roman:
Il "fantastico" stoplimit nella libreria standard, senza parole :))
il limite dovrebbe impostare lo slippage dell'ordine a mercato, non l'impostazione dell'ordine limite :))

Lo slippage è impostato dal parametro di deviazione nella richiesta di trading.

E il livello stoplimit è il livello al quale l'ordine Limit è impostato rispetto al livello dell'ordine stop.

Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Взаимодействие клиентского терминала и торгового сервера для проведения операций постановки ордеров производится посредством торговых запросов. Запрос представлен специальной предопределенной структурой MqlTradeRequest, которая содержит все поля, необходимые для заключения торговых сделок. Результат обработки запроса представлен структурой...