Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1549
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
É bom falar quando se sabe o que fazer...
me ajude com conselhos sobre como "obter o máximo de informações úteis que puder".
Eu disse tudo muito claramente. Bem, para você pessoalmente, deixe-me perguntar.
Aqui estão duas funções e ambas passam por ordens históricas
Dois ciclos com as mesmas ordens. Você não pode obter tudo que essas funções retornam em um ciclo, certo?
Olá!
Estou tentando acrescentar uma inversão de marcha à coruja. Estou fazendo isso conforme descrito nas instruções: https://www.mql5.com/ru/forum/128200
Não tenho erros na compilação, mas meu testador não trabalha com o flip.
O registro dá um erro:
2021.07.29 20:06:34.316 2015.01.08 22:10:00 SMA com código AUDUSD,M5: OrderSend error 130
2021.07.29 20:06:34.316 2015.01.08 22:05:45 SMA com reversão via AUDUSD,M5: OrderSend error 4107
2021.07.29 20:06:34.316 2015.01.08 22:05:45 SMA com flip via AUDUSD,M5: stoploss inválido para a função OrderSend
você pode me dizer qual é o problema aqui?
Eu mesmo penso que as variáveis especificadas em
int InversOrderSend (símbolo de string,int cmd,volume duplo,preço duplo,int slippage,stoploss duplo,takeprofit duplo,string comment,int magic=0,datetime expiration=0,color arrow_color=CLR_NONE)Não estão relacionados com o código principal.
Já tentei em diferentes terminais, 4 e 5 sinais.
aqui está o código completo:
Já o disse com clareza suficiente. Vou lhe fazer uma pergunta pessoal.
Aqui estão duas funções e ambas percorrem o ciclo através de ordens históricas
Há dois loops nas mesmas ordens. Você não pode obter tudo que essas funções retornam em um ciclo, certo?
Alexei, eu já escrevi, eu sei que você é um bom programador!
Mas eu não sou um programador, e o que é "claro o suficiente" para você não é tão claro para mim...
Quanto aos dois loops, para mim"Em um loop obtenho tudo" não é possível, porque eles retornam diferentes tipos de dados.
Alexey, eu já escrevi, eu sei que você é um bom programador!
Mas eu não sou um programador e o que é "claro o suficiente" para você é uma floresta escura para mim...
Quanto aos dois loops, para mim"obter tudo em um loop" não é possível, porque eles retornam tipos de dados diferentes.
Os tipos devolvidos não têm nada a ver com isso. Se houver 2 loops nos mesmos dados com verificações e filtros diferentes, você pode sempre colocar tudo em um loop, mas o código não vai ler tão claro, mas deve funcionar mais rápido) Na fase de depuração eu não faço tudo em um loop. É mais fácil encontrar bugs em diferentes.
Alexey, eu já escrevi, eu sei que você é um bom programador!
Mas eu não sou um programador e o que é "claro o suficiente" para você é uma floresta escura para mim...
Quanto aos dois loops, para mim"Em um loop para obter tudo" não é possível, porque eles retornam diferentes tipos de dados.
Eu tenho duas opções.
Eu tenho um conflito entre ordens pendentes.
Primeiro resultado. Há um conflito entre pares de moedas e a EA tem um conflito na colocação de pedidos pendentes. Por exemplo, eu coloquei um pedido pendente para EURUSD, a EA seguiu o algoritmo (compra em 1.18901, posição aberta, EA estabeleceu parada em 1.18751, lucro em 1.19051 e pedido de venda em 1.18751) tudo está bem conforme os planos.
Mas agora é hora de abrir um negócio em GBPUSD onde os preços são diferentes e a EA está fazendo tudo certo, exceto para estabelecer uma ordem pendente. Uma ordem de venda em 1,39393 foi acionada e a EA tentou abri-la, fixou uma parada em 1,39633 e tomou 1,39153, mas a ordem de compra em 1,39633 é totalmente duplicada em EURUSD e uma ordem de venda em 1,18751)
Acabo de encontrar outro problema: uma parada em 1.18751 e uma ordem de venda pendente em 1.18901 e take 1.18595 foram abertos em EURUSD. O Expert Advisor não acrescentou a parada acionada, o que está na história.
Estes são os problemas.
Olá!
Estou tentando dar uma reviravolta nos negócios para a coruja.
O que você quer dizer com isso? Uma certa gama de preços a partir dos quais você compra/vende?
Boa tarde. Ajuda com a EA. De acordo com a estratégia, se uma parada for acionada, então a EA deve acrescentar (o número de pontos) ao próximo set takeaway
da história por ID, mas não o faz por alguma razão.
O que há de errado no código?
Makar apontou corretamente para OrderMagicNumber(), mas entendeu mal o erro. Leia a documentação para a sintaxe desta função... deve ser o índice na lista de pedidos ou o ticket de um determinado pedido, mas não um magik. E OrderTicket() não vai ajudar aqui. Não tente colocá-lo lá.
O que você quer dizer? Uma certa faixa de preços a partir da qual você compra/vende?
O autor do código, como eu o entendo, sugeriu o seguinte:
Se a coruja abre um comércio de compra com stop and take, então seu código abre um comércio de venda ao mesmo tempo no mesmo lugar (levando em conta o spread) também com stop and take em vez de um comércio de compra.
Assim, a lógica de busca de um ponto de entrada da EA não muda, e apenas a direção com propagação leva em conta as mudanças.
isto é exatamente o que eu preciso
Descreva em poucas palavras o que você quer desta EA (a lógica de operação),
Acho que você tem muitas coisas desnecessárias em seu código ou eu não entendo alguma coisa.
as corujas devem abrir negócios de acordo com seu próprio algoritmo
se a parada, a próxima troca com um Martin, e assim por diante até o número de multiplicações que especifiquei (função -OrderClose = .....;).
Mais adiante, se a coruja for desativada junto com o terminal, basta pressionar o botão de "auto-comércio" com outra coruja, então o próximo comércio começará com o lote inicial, não com o último aumentado por um martingale.
Também seria bom anexar-lhe um cronograma, mas esta idéia só agora me ocorreu.
Por exemplo: foi ativado às 10-00 na segunda-feira com o lote inicial, depois foi desligado durante o dia quando algum resultado foi alcançado, e na terça-feira de manhã foi ativado às 10-00 e começou com o lote inicial novamente.
Tudo.