Discussão do artigo "Trabalhando com séries temporais na biblioteca DoEasy (Parte 39): indicadores com base na biblioteca - preparação de dados e eventos das séries temporais" - página 2

 
Dima Diall:

Olá - ao revisar o código do manipulador de eventos mais de perto, notei que você usa métodos diferentes para analisar a origem do evento... em alguns casos, ele se baseia no parâmetro id do evento do gráfico de OnChartEvent(), enquanto em outros você o extrai do parâmetro lparam por meio de engine.EventSource(lparam) - há algum motivo específico para que seja diferente em cada caso?

Olá, Artyom - você poderia esclarecer isso para mim, por favor?
 
Dima Diall :
Olá, Artyom - você pode esclarecer isso para mim, por favor?

Por favor, um pouco mais tarde - estou muito ocupado no momento

 

Oi Artyom,

Em seu exemplo, as ordens pendentes funcionaram, mas as ordens de mercado não funcionaram no modo de backtest visual

Por favor, me ajude, muito obrigado

Joia

 
jewelnguyen :

Oi Artyom,

Em seu exemplo, as ordens pendentes funcionaram, mas as ordens de mercado não funcionaram no modo de backtest visual

Por favor, me ajude, muito obrigado

Joia

Eu verifiquei - funciona. As posições são abertas no testador. E elas também são fechadas.

Escreva com mais detalhes o que está fazendo.

 
Obrigado pela resposta rápida,
Eu gravo a tela usando um aplicativo disponível no Windows 7
2 ordens pendentes estão funcionando, 2 ordens de compra e venda não estão respondendo

Muito obrigado



Arquivos anexados:
Screenshot_1.jpg  123 kb
Screenshot_2.jpg  132 kb
Screenshot_3.jpg  127 kb
Screenshot_4.jpg  130 kb
screen.zip  340 kb
 
jewelnguyen :
Спасибо за быстрый ответ,
Я записываю экран с помощью приложения, доступного в Windows 7
2 отложенных ордера работают, 2 ордера на покупку и продажу не отвечают

Большое спасибо



O que está escrito na guia "Diário"?

 

Tudo está funcionando:


 

Assim como você, por que não funciona? Você tenta no mt4 ou no mt5? Eu tento no mt5, aqui está você:

2021.04.11 14:29:21.646 2017.01.02 09:01:18 failed market sell 0.1 GBPUSD sl: 1.23561 tp: 1.23261 [Unsupported filling mode]

2021.04.11 14:29:21.646 2017.01.02 09:01:18 Tentativa de negociação #2. Erro: tipo de preenchimento de ordem inválido


Preciso dele para testar minha estratégia manual, por favor, me ajude


Muito obrigado

Joia

PS: Tentei no mt4 e funcionou muito bem, mas no mt5 deu o mesmo erro acima
Arquivos anexados:
Screenshot_1.jpg  337 kb
 
jewelnguyen :

Assim como você, por que não funciona? Você tenta no mt4 ou no mt5? Eu tento no mt5, aqui está você:

2021.04.11 14:29:21.646 2017.01.02 09:01:18 failed market sell 0.1 GBPUSD sl: 1.23561 tp: 1.23261 [Unsupported filling mode]

2021.04.11 14:29:21.646 2017.01.02 09:01:18 Tentativa de negociação #2. Erro: tipo de preenchimento de ordem inválido


Preciso dele para testar minha estratégia manual, por favor, me ajude


Muito obrigado

Joia

PS: Tentei no mt4 e funcionou muito bem, mas no mt5 ocorreu o mesmo erro acima

Você mesmo precisa definir a política correta de execução de ordens(ENUM_ORDER_TYPE_FILLING). Para isso, use o manipulador OnInit ():

...
...
...
 //--- 
   engine.TradingSetTypeFilling(ORDER_FILLING_XXX);
   return (INIT_SUCCEEDED);
  }
 //+------------------------------------------------------------------+

Há apenas três valores possíveis:

  • ORDER_FILLING_FOK - Essa política de preenchimento significa que uma ordem só pode ser preenchida com o valor especificado. Se a quantidade necessária de um instrumento financeiro não estiver disponível no mercado no momento, a ordem não será executada. O volume necessário pode ser preenchido usando várias ofertas disponíveis no mercado no momento.

  • ORDER_FILLING_IOC - Esse modo significa que um operador concorda em executar uma transação com o volume máximo disponível no mercado dentro do indicado na ordem. Caso o volume total de uma ordem não possa ser preenchido, o volume disponível dela será preenchido e o volume restante será cancelado.

  • ORDER_FILLING_RETURN - Essa política é usada somente para ordens a mercado (ORDER_TYPE_BUY e ORDER_TYPE_SELL), ordens limit e stop limit (ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_LIMIT_STYPELL).
    Para a ativação das ordens ORDER_TYPE_BUY_STOP_LIMIT e ORDER_TYPE_SELL_STOP_LIMIT, é criada uma ordem limitada correspondente ORDER_TYPE_BUY_LIMIT / ORDER_TYPE_SELL_LIMIT com o tipo de execução ORDER_FILLING_RETURN.
 
Artyom Trishkin:

Você mesmo precisa definir a política correta de execução de ordens(ENUM_ORDER_TYPE_FILLING). Para isso, use o manipulador OnInit ():

Há apenas três valores possíveis:

  • ORDER_FILLING_FOK - Essa política de preenchimento significa que uma ordem só pode ser preenchida com o valor especificado. Se a quantidade necessária de um instrumento financeiro não estiver disponível no mercado no momento, a ordem não será executada. O volume necessário pode ser preenchido usando várias ofertas disponíveis no mercado no momento.

  • ORDER_FILLING_IOC - Esse modo significa que um operador concorda em executar uma transação com o volume máximo disponível no mercado dentro do indicado na ordem. Caso o volume total de uma ordem não possa ser preenchido, o volume disponível dela será preenchido e o volume restante será cancelado.

  • ORDER_FILLING_RETURN - Essa política é usada somente para ordens de mercado (ORDER_TYPE_BUY e ORDER_TYPE_SELL), ordens limitadas e ordens stop limit (ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_LIMIT_STYPELL).
    Para a ativação das ordens ORDER_TYPE_BUY_STOP_LIMIT e ORDER_TYPE_SELL_STOP_LIMIT, é criada uma ordem limitada correspondente ORDER_TYPE_BUY_LIMIT / ORDER_TYPE_SELL_LIMIT com o tipo de execução ORDER_FILLING_RETURN.
OK, muito obrigado