StopLimit - página 6

 

Um aperto de preços pós-partida, disponível na abertura da sessão do dia, no dia seguinte.
É um aperto como esse, na abertura do mercado.
A única confusão é por que a execução não foi a preço de oferta.
Tenho uma suspeita de que as citações do medidor de profundidade no testador ou estão deitadas ou as citações estão curvadas.
A simulação por carrapatos reais foi selecionada?

No comércio real, geralmente faltam os primeiros 1-5 minutos da abertura do mercado.
Caso contrário, haverá tais apertos, ao primeiro preço disponível, e volatilidade com um spread maluco.
Por este motivo, antes do fechamento do mercado, por exemplo, às 23h40, retire todas as suas ordens parciais.
E permitir fazer pedidos após 10.01 com controle do spread.

Você tem uma ordem de paralisação que foi emitida ontem e ela se choca com a abertura do mercado quando não há liquidez.
Por que você estabeleceu o limite de 100 ticks? Colocar um limite de 5 ticks para entrada.


 
Dmitry Fedoseev:

É por isso que você tira conclusões estranhas - por preguiça. Não é para mim, é para você entender o que está acontecendo.

O último preço na tabela foi em 2 de dezembro às 23:48. Os registros mostram a execução da ordem no dia 3 às 10. O que é isso?

Mais uma vez, não preciso disso, há muito tempo compreendo tudo. Você realmente não entende ou está apenas fingindo?

Ográfico de 2 de dezembro às 23:48 não é o último preço, é a linha do tempo, é assim que o terminal funciona


 
Sergey Chalyshev:

Mais uma vez, não preciso disto, há muito tempo compreendo tudo isso. Você realmente não entende ou está apenas fingindo?

Nográfico de 2 de dezembro às 23:48 não é o último preço, é a linha do tempo, é assim que o terminal funciona ))))))))))))


Uma expressão muito profunda: 23:48 não é o preço.

Bem... Estou de saída... Vou tentar não interferir mais em seus tópicos.

 
Dmitry Fedoseev:

Uma expressão muito profunda: 23:48 não é o preço.

Bem... Estou de saída... Vou tentar não interferir mais em seus fios.

Dimitri, não se afaste muito e intervenha no caso ))

Você me ajudou algumas vezes, e pessoalmente me ajudou a entender algumas das questões.

Você quer que eu lhe dê um login e uma senha para minha conta comercial? Somente com a condição: não drenar muito e não alterar a senha.

 
Sergey Chalyshev:

Dimitri, não se afaste muito e intervenha no caso ))

Você me ajudou algumas vezes, e pessoalmente me ajudou a entender algumas questões.

Você quer que eu lhe dê login e senha para minha conta comercial? Somente com a condição: não drenar muito e não alterar a senha.

Sim. Eu tentaria também alguns pedidos no testador.

 
Dmitry Fedoseev:

Sim. Eu tentaria alguns pedidos no testador também.

Eu lhe escreverei pessoalmente

 
Sergey Chalyshev:

Aparentemente ninguém a utiliza,

o pedido é aberto a preços inexistentes:

Um exemplo simples a ser verificado:

//+------------------------------------------------------------------+
//|                                               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
      );
  }
//+------------------------------------------------------------------+

E aqui está o problema real: o preço e o limite do stoploom são misturados. Na verdade, o parâmetro limite_preço é misturado primeiro, e depois o preço. Portanto, se você estabelecer um limite de compra, o preço deve ser superior ao limite_preço. Mas no código da cotação, ao contrário, o primeiro gatilho ocorre ao preço próximo tick.ask+10*ticksise e o bylite aparece em algum lugar lá em cima (acima do preço de mercado) e aciona imediatamente.

Mas no início do período de teste, o preço desce, então eu verifiquei com um stoplimit, este tipo de código funciona bem:

void OnTick()
  {

   static int x=0;
   
   if(x==1)return;
   
   x=1;
  

   MqlTick tick;
   SymbolInfoTick(_Symbol,tick);
   trade.SetTypeFilling(ORDER_FILLING_RETURN);
   double ticksise=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);

   if(OrdersTotal()==0){
      Comment(GetTickCount()," ",ticksise);
      trade.OrderOpen(
         _Symbol,                      // символ
         ORDER_TYPE_SELL_STOP_LIMIT,    // тип ордера
         1.0,                          // объем ордера
         tick.bid-100*ticksise,  // цена исполнения
         tick.bid-1000*ticksise,         // цена стоплимита
         0,                            // цена stop loss
         0                             // цена take profit
      );
   }

  }

após o primeiro acionamento o limite aparece.

 
Dmitry Fedoseev:

Aqui está o problema real: o preço e o limite do stoploom são misturados. Na verdade, o parâmetro preço_limite é primeiro o preço e depois o preço. Portanto, se você estabelecer um limite de compra, o preço deve ser superior ao limite_preço. Mas no código da cotação, ao contrário, o primeiro gatilho ocorre ao preço próximo tick.ask+10*ticksise e o bylite aparece em algum lugar lá em cima (acima do preço de mercado) e aciona imediatamente.

Mas no início do período de teste, o preço desce, então eu verifiquei com um stoplimit, este tipo de código funciona bem:

após o primeiro acionamento o limite aparece.

Nada está misturado em meu exemplo, o BuyLimit é estabelecido acima do Ask e deve ser executado no Ask e não ao preço especificado no BuyLimit.

Leia o ramo inteiro novamente, cansado para explicar.

Tente definir o BuyLimit acima do Ask without the StopLimit.

Basta substituirORDER_TYPE_BUY_STOP_LIMIT porORDER_TYPE_BUY_LIMIT .

BuyLimit é acionado adequadamente ao preço Ask, e no caso de BuyStopLimit inadequadamente ao preço especificado noBuyLimit.

 
Sergey Chalyshev:

Em meu exemplo nada é misturado, BuyLimit é colocado acima de Ask e deve ser executado em Ask, não ao preço especificado em BuyLimit.

Leia o ramo inteiro novamente, cansado para explicar.

Tente definir o BuyLimit acima do Ask without the StopLimit.

Basta substituirORDER_TYPE_BUY_STOP_LIMIT por ORDER_TYPE_BUY_LIMIT .

BuyLimit é acionado adequadamente ao preço Ask, enquanto no caso de BuyStopLimit é acionado inadequadamente ao preço especificado noBuyLimit.

Agora está claro.

 

Uma ordem de limite de parada também pode ser verificada no testador para Forex. É suficiente definir "Execução" = Troca.



Eu verifiquei o limite de parada de compra da seguinte forma: eu defini o preço da ordem limite pior que o preço de ativação. O pedido foi aberto a preço de mercado (preço pedido) na ativação. Portanto, parece que a funcionalidade no testador funciona.

Razão: