Resposta

1TP9Problema com a criação de ordens de parada no EAWizard...

4 respostas

Michael Ott

Assinante, bbp_participante, comunidade, 0 respostas.

Perfil da visita

6 anos atrás #232652

Olá,
Tenho um problema com os EAs em que sinalizo uma ordem de parada. Criei vários EAs, por exemplo, com Ichimoku em cruzamentos de Tenkan e Kijuns, ou também com o indicador de supertendência. Mas não quero entrar com uma ordem de mercado neste momento, e sim emitir uma ordem stop. Então, criei o EA com "enter at stop" em vez de "enter at Market". À primeira vista, eles pareciam funcionar, mas, olhando mais de perto, percebi que nem todas as ordens foram colocadas. Como também criei uma seta com cada ação de compra, era possível acompanhá-la de perto. A seta era desenhada no gráfico, mas nenhuma ordem era aberta. Não apenas no backtest, mas também na negociação ao vivo! O sinal veio, a ação foi executada, a seta estava lá... mas não havia ordem. No diário e no arquivo de registro também não foi encontrada nenhuma ordem. Usei o exemplo simples do EMACross no EAWizard. Mas, em vez de uma ordem de mercado, criei uma ordem de parada. Além disso, com esse EA, nem todas as ordens são executadas! Alguém de vocês, especialistas, pode dar uma olhada se há algum erro na tradução do código da StopOrder? Estou realmente perdido, não consigo avançar mais.

(Sou alemão, usei o tradutor do Google. Desculpe-me)

Michael

Anexos:
Você deve ser logado para ver os arquivos anexos.

0

Michael Ott

Assinante, bbp_participante, comunidade, 0 respostas.

Perfil da visita

6 anos atrás #232679

Olá,

Encontrei o erro! É claro que, para os sinais longos que foram na direção certa, o limite de parada de compra estava abaixo do preço atual. Portanto, a ordem pendente estava incorreta e não foi transmitida. (Nos sinais curtos, é claro, exatamente o contrário) Infelizmente, mas nenhum erro foi gravado no arquivo de registro. Entretanto, se eu tivesse lido isso corretamente na programação, uma mensagem teria sido exibida:

——————

// verificar se o preço de parada/limite não está muito próximo
se(NormalizeDouble(MathAbs(price - AskOrBid), Digits) <= NormalizeDouble(getStopDifferencePrice(orderMagicNumber)/gPointPow, Digits)) {
Verbose("A ordem de parada/limite está muito próxima do preço real", " ------");

——————-

É claro que isso me poupou de muita pesquisa. Agora acabei de criar duas ordens de compra diferentes. Uma ordem Stop se ASK Close (shift1). Ou existe uma solução mais elegante?

Saudações da Alemanha,

Michael

0

tomas262

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

6 anos atrás #232683

Olá,

Eu faria isso da mesma forma que você. Uma ordem stop ou uma ordem de mercado, dependendo da distância

0

Michael Ott

Assinante, bbp_participante, comunidade, 0 respostas.

Perfil da visita

6 anos atrás #232697

Olá, Tomás262,

Obrigado pelo feedback. Mas, como eu disse, deveria ter chegado a uma mensagem de erro? Se o limite de parada estiver acima/abaixo do preço atual?! Veja acima...:
-> Verbose ("A ordem de parada/limite está muito próxima do preço real")
Você pode controlá-lo se houver um erro?
Obrigado

Michael

0

tomas262

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

6 anos atrás #232745

Olá, Michael,

Você pode consultar outro tópico sobre isso https://strategyquant.com/forum/topic/5832-stoplimit-order-too-close-to-actual-price/#post-141685

Me avise se tiver alguma dúvida

0

Visualizando 4 respostas - 1 até 4 (de um total de 4)