Resposta

[AJUDA!] O que preciso adicionar ao código mql4 do SQ para limitar o spread da ordem pendente?

5 respostas

Karish

Customer, bbp_participant, community, sq-ultimate, 443 replies.

Perfil da visita

8 anos atrás #114857

O que preciso adicionar ao código mql4 do SQ para limitar o spread da ordem pendente?

 

O que quero dizer é: o que e onde devo adicionar um código para evitar que a ordem pendente acione uma ordem de mercado quando o spread for muito alto e exclua a ordem pendente.

 

O que eu quero fazer é, por exemplo:

 

Se o preço for igual ao preço da ordem pendente, antes de inserir uma ordem a mercado pela ordem pendente, o EA verificará primeiro se o spread não está acima de 2 PIPS (20 pontos),

Se o spread estiver acima desse valor alto de spread, a ordem pendente será excluída e não será acionada (*somente essa ordem pendente, NÃO TODAS ELAS*),

Se o spread estiver ok, a ordem pendente acionará uma ordem de mercado como deveria.

 

Alguém pode me ajudar com isso? tenho certeza de que o restante dos usuários do SQ adoraria ter essa proteção contra alta propagação,

Essa função ajudará aqueles que definem um spread fixo ao criar estratégias, portanto, se a estratégia for criada com um spread de 1,5 PIPS e depois testada no montecarlo e se o montecarlo mostrar que um spread acima de 1,5 PIPS fará com que a estratégia perca, então você saberá que sua estratégia é sensível a um spread maior que 1,5 PIPS e poderá limitar o valor do spread nos parâmetros do EA da estratégia dentro do MT4 🙂.

 

 

por favor, ajude se puder, pois não é só para mim, como você já percebeu.

Obrigado por seu tempo.

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

8 anos atrás #135727

Não é simples fazer esse tipo de alteração, porque as ordens pendentes são colocadas na corretora e você não tem controle sobre quando elas são acionadas.

O EA teria que manter as ordens apenas na memória (sem enviá-las ao corretor) e verificar manualmente quando o preço ultrapassasse o nível da ordem pendente. Porém, ao enviar uma ordem de mercado, haverá algum atraso e derrapagem, e isso poderia ser maior do que o spread com a ordem pendente.

 

Você pode usar ordens de limite em vez de ordens de parada se quiser entrar pelo preço exato.

 

Ou usar uma corretora que não amplie tanto os spreads.

Marcar
EstratégiaQuant arquiteto

0

Karish

Customer, bbp_participant, community, sq-ultimate, 443 replies.

Perfil da visita

8 anos atrás #135730

Entendi, pensei se o SQ4 incluiria ordens ocultas,

Portanto, se você usar ordens pendentes ocultas, terá o controle do spread, pois a ordem pendente existe apenas no lado do EA e não no lado do servidor,

A maneira de fazer uma ordem pendente oculta é definir uma linha de objeto e, quando o preço (Ask/Bid) cruzar essa linha, será inserida uma ordem de mercado,

Dessa forma, é outra proteção contra o corretor, porque se você tiver uma ordem pendente original do MT4, o corretor poderá ver essa ordem.

e, ao torná-la oculta, o corretor não poderá vê-la, somente você poderá vê-la como uma linha de objeto dentro do gráfico do MT4.

 

Adoraria ver ordens pendentes ocultas no SQ4!, ohh e se você for implementar ordens pendentes ocultas, já sugeri há pouco tempo e vou sugerir novamente que o SQ4 inclua não apenas ordens pendentes ocultas, mas também stoploss/takeprofit/trailingstop/breakeven ocultos.

 

Dessa forma, temos proteção total contra a corretora :), *quando você implementar stoploss/takeprofit/trailingstop/breakeven ocultos, faça-o assim:

exemplo:

Se tivermos um stoploss oculto e quisermos que nosso stoploss seja de 50 PIPs, então o stoploss original deve ser apenas para o caso de o MT4 perder a conexão ou ter problemas com o VPS, mas o stop loss original deve ser mais ou menos 2 a 10 PIPs acima do nosso valor de stoploss, portanto, se o stoploss oculto for de 50 PIPs, o stoploss original será de 55 PIPs.

Mesmo exemplo com takeprofit/trailingstop/breakeven....

 

Obrigado pelo seu tempo, Mark. Você poderia confirmar se as ordens ocultas serão adicionadas à SQ4?

0

clonex / Ivan Hudec

Cliente, bbp_participant, comunidade, sq-ultimate, colaborador, autor, editor, 271 respostas.

Perfil da visita

8 anos atrás #135733

Ordens ocultas +1

0

geektrader

Customer, bbp_participant, community, 522 replies.

Perfil da visita

8 anos atrás #135862

Por favor, torne-o opcional apenas se isso estiver sendo adicionado. Eu trabalho com corretoras honestas, onde posso obter registros de negociação, e elas não fazem truques como os formadores de mercado. Eu me sentiria MUITO inseguro se não tivesse a ordem de stop / stop loss / tp etc. no servidor da corretora, como acontece agora. Porque se o MT4 falhar por qualquer motivo, você ficará sem um SL etc. Lembre-se também de que evitar um spread alto não necessariamente ajudará. Quando a entrada se torna válida e deve ser executada, mas o spread é muito alto, ela esperará até que o spread caia, sim, mas o preço, se o spread estiver OK novamente, pode ter se movido MUITO mais contra você pela entrada que você obteve, do que se você tivesse aceitado o spread mais alto.


🚀 Unlock Your Edge in Automated Forex Strategy Development 🚀

Historical Forex Data Starting From 1987, 28 Pairs, M1, 99% Error-Free, Lifetime Free Updates

0

Karish

Customer, bbp_participant, community, sq-ultimate, 443 replies.

Perfil da visita

8 anos atrás #135863

geektrader, sim, eu quis dizer que isso é opcional, e há uma maneira de excluir a ordem quando o spread for muito alto OU criar uma função que, quando o preço não for igual ao preço que você deseja que a ordem seja executada, exclua a ordem, dessa forma você não entrará quando o preço estiver muito acima/abaixo do ponto de entrada solicitado.

 

Além disso, sobre o travamento do MT4, já escrevi sobre isso, o TP+SL da ordem oculta será, digamos, TP=30 + SL=60, mas, por segurança, as ORDENS MOSTRADAS ORIGINAIS serão TP=32 + SL=62 ou algo parecido, o usuário poderia alterar essa diferença entre o TP+SL OCULTO e as ORDENS MOSTRADAS ORIGINAIS entre 1~5 PIPs, o que seria bom.

0

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