Você está usando oStopLimit no comércio real?
É claro que oStopLimit funciona inadequadamente no testador.
Faz sentido usá-lo no comércio real? Quais são as vantagens e desvantagens?
O que há de errado com o testador?
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 ); } //+------------------------------------------------------------------+
Aparentemente ninguém a utiliza,
o pedido é aberto a preços inexistentes:
Um exemplo simples a ser verificado:
Um pedido BuyStopLimit funciona desta forma:
- Um pedido BuyStop é colocado acima do preço (valor do preço na estrutura do pedido comercial = preço + distância de ajuste do pedido de parada)
- Quando um pedido BuyStop é acionado, um pedido BuyLimit é colocado abaixo do preço
(a preço de parada na estrutura de solicitação comercial que deve ser calculada corretamente: stoplimit = preço - distância de ajuste do pedido de parada) - Quando uma ordem BuyLimit é acionada, uma entrada no mercado é feita ao preço da ordem BuyLimit
Exemplo:
Um pedido BuyStopLimit funciona desta forma:
- Definimos um pedido BuyStop acima do preço (valor do preço na estrutura do pedido comercial = preço + distância de definição do pedido de parada)
- Quando o BuyStop é acionado, um pedido BuyLimit é colocado abaixo do preço
(a preço de parada na estrutura de solicitação comercial que deve ser calculada corretamente: stoplimit = preço - distância de ajuste do pedido de parada) - Quando uma ordem BuyLimit é acionada, uma entrada no mercado é feita ao preço da ordem BuyLimit
Exemplo:
Quando oBuyLimit está abaixo do preço, ele funciona bem no testador.
Quando oBuyLimit é mais alto que o preço, ele deve abrir ao preço Ask. Na troca, no real, funciona dessa maneira.
Não faz sentido usar o StopLimit para definir oBuyLimit abaixo do preço.
Quando oBuyLimit está abaixo do preço, ele funciona bem no testador.
Quandoo BuyLimit está acima do preço, ele deve abrir a preço de pedido. Na troca, no real, funciona dessa maneira.
Usar um StopLimit para colocar o BuyLimit abaixo do preço não faz sentido.
Campo | Descrição |
ação | Tipo de operação comercial. O valor pode ser um dos valores da enumeração ENUM_TRADE_REQUEST_ACTIONS |
mágica | Identificador do Conselheiro Especialista. Permite organizar o processamento analítico das ordens comerciais. Cada consultor especializado pode exibir seu próprio identificador exclusivo ao enviar um pedido comercial |
encomenda | Encomendar bilhete. Necessário para modificação de ordens pendentes |
símbolo | Nome do símbolo para o qual o pedido é feito. Não é necessário para modificação de pedidos e fechamento de posições |
Volume | Volume solicitado de um negócio em lotes. O valor real do volume ao abrir uma posição depender á dotipo de ordem a ser executada. |
preço | Este é o preço pelo qual o pedido deve ser preenchido. O preço não é necessáriopara ordens de mercado com o tipo "Market Execution" ( SYMBOL_TRADE_EXECUTION_MARKET ) com o tipoTRADE_ACTION_DEAL |
stoplimit | Preço pelo qual a ordem de limite pendente será colocada quando o preço atingir o valor do preço (esta condição é obrigatória). Até esse momento, a ordem pendente não é colocada no sistema comercial |
sl | Preço ao qual uma ordem de Stop Loss será acionada quando o preço do título se mover em uma direção desfavorável |
tp | Preço no qual a ordem Take Profit é acionada pelo movimento de preços na direção favorável |
desvio | Desvio máximo aceitável do preço solicitado, fixado em pontos |
tipo | Tipo de pedido. O valor pode ser um dos valores da enumeração ENUM_ORDER_TYPE |
type_filling | Tipo de ordem a executar. O valor pode ser um dos valores deENUM_ORDER_TYPE_FILLING |
type_time | Tipo de pedido_tempo de preenchimento. O valor pode ser um dos valores deENUM_ORDER_TYPE_TIME |
expiração | Prazo de validadeda ordem pendente (para ordens ORDER_TIME_SPECIFIED) |
comentário | Comentário ao pedido |
posição | Bilhete para a posição. Isto deve ser preenchido quando uma posição é alterada e fechada para identificá-la claramente. Isto geralmente corresponde ao bilhete da ordem que resultou na abertura da posição. |
posição_por | Um bilhete para uma posição de balcão. Usado ao fechar uma posição do contador - aberto para o mesmo instrumento, mas na direção oposta. |
Espero que você saiba o que é uma ordem limite. E uma ordem de parada também, espero que você não tenha dúvidas.
E isto é o que diz aqui sobre como funciona um pedido StopLimit: quando o preço atinge o nível de um pedido Stop (e é colocado acima do preço de Compra), somente então um pedido Limit será colocado (e é colocado abaixo do preço de Compra).
Quando oBuyLimit está abaixo do preço, ele funciona bem no testador.
Quando oBuyLimit está acima do preço, ele deve abrir a preço de pedido.Na troca, no real, funciona dessa maneira.
Usar o StopLimit para colocar o BuyLimit abaixo do preço não faz sentido.
Desculpe, como você coloca o pedido de BuyLimit acima do preço?
Não deve ser definido de forma alguma neste cenário.
Se você estiver usando uma classe comercial SB, há uma verificação de parâmetros errôneos, e em tal situação uma ordem pendente não é colocada, mas uma ordem de mercado é aberta.
Campo | Descrição |
ação | Tipo de operação comercial. O valor pode ser um dos valores da enumeração ENUM_TRADE_REQUEST_ACTIONS |
mágica | Identificador do Conselheiro Especialista. Permite organizar o processamento analítico das ordens comerciais. Cada consultor especializado pode exibir seu próprio identificador exclusivo ao enviar um pedido comercial |
encomenda | Encomendar bilhete. Necessário para modificação de ordens pendentes |
símbolo | Nome do símbolo para o qual o pedido é feito. Não é necessário para modificação de pedidos e fechamento de posições |
Volume | Volume solicitado de um negócio em lotes. O valor real do volume ao abrir uma posição depender á dotipo de ordem a ser executada. |
preço | Este é o preço pelo qual o pedido deve ser preenchido. O preço não é necessáriopara ordens de mercado do tipo "Market Execution" ( SYMBOL_TRADE_EXECUTION_MARKET ) com o tipoTRADE_ACTION_DEAL |
stoplimit | Preço pelo qual a ordem de limite pendente será colocada quando o preço atingir o valor do preço (esta condição é obrigatória). Até esse momento, a ordem pendente não é colocada no sistema comercial |
sl | Preço ao qual uma ordem de Stop Loss será acionada quando o preço do título se mover em uma direção desfavorável |
tp | Preço no qual a ordem Take Profit é acionada pelo movimento de preços na direção favorável |
desvio | Desvio máximo aceitável do preço solicitado, fixado em pontos |
tipo | Tipo de pedido. O valor pode ser um dos valores da enumeração ENUM_ORDER_TYPE |
type_filling | Tipo de ordem a executar. O valor pode ser um dos valores deENUM_ORDER_TYPE_FILLING |
type_time | Tipo de pedido_tempo de preenchimento. O valor pode ser um dos valores deENUM_ORDER_TYPE_TIME |
expiração | Prazo de validadeda ordem pendente (para ordens ORDER_TIME_SPECIFIED) |
comentário | Comentário ao pedido |
posição | Bilhete para a posição. Isto deve ser preenchido quando uma posição é alterada e fechada para identificá-la claramente. Isto geralmente corresponde ao bilhete da ordem que resultou na abertura da posição. |
posição_por | Um bilhete para uma posição de balcão. É usado quando se fecha uma posição com uma posição contrária - aberta para o mesmo instrumento, mas na direção oposta. |
Espero que você saiba o que é uma ordem limite. E uma ordem de parada também, espero que você não tenha dúvidas.
E isto é o que diz aqui sobre como funciona um pedido StopLimit: quando o preço atinge o nível do pedido Stop (e é colocado acima do preço de Compra), somente neste caso será colocado um pedido Limit (e é colocado abaixo do preço de Compra).
O que o faz pensar que o pedido BuyLimit deve necessariamente estar abaixo do preço?
Estou falando do mercado de ações, o forex não é interessante.
Desculpe-me, o que você está fazendo ao estabelecer o pedido BuyLimit acima do preço?
Não deve ser colocado de forma alguma nesta situação.
Se você estiver usando a classe SB-trading, ela tem uma verificação de parâmetros inválidos e, em tal situação, a ordem pendente não é aberta, e a posição é aberta por ordem do mercado.
Dei-lhes um exemplo de código acima.
Deve ser ajustado e está ajustado.
Se fosse aberto pelo mercado, não haveria problema no testador; seria aberto pelo preço Ask. Mas seria aberta a um preço inexistente, você pode vê-la na foto acima.
p.s. Tente você mesmo o código acima em uma conta de câmbiolimite deve definir o deslize de uma ordem de mercado, não a definição de uma ordem limite :))
O "incrível" stoplimit na biblioteca padrão, sem palavras :))
limite deve definir o escorregamento da ordem de mercado, não a definição da ordem limite :))
O escorregamento é definido pelo parâmetro de desvio no pedido comercial.
E o nível de parada é o nível no qual a ordem de limite é estabelecida em relação ao nível de ordem de parada.
- www.mql5.com
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Você está usando oStopLimit no comércio real?
É claro que oStopLimit funciona inadequadamente no testador.
Faz sentido usá-lo no comércio real? Quais são as vantagens e desvantagens?