Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1386
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
Isso é engraçado) não deveria ser)
Se a batalha terminar - comércio com um spread normal, basta retirar seu 'limite' na entrada e ignorar o comércio se o spread estiver acima do limite.
As espátulas podem ser esticadas por endro sem capotamento.
Tenho bastantes oscilações, de 10 unidades para 45
Eu tenho que esperar para selecionar 45.
Ao mesmo tempo, a função conta com uma média de 17, o que é bastante satisfatório.
Vai até 100-140 por 1 hora após o capotamento, vou executar o código e ver como ele se comporta.
Você poderia, no entanto, prescrevê-lo desta forma:
Deve funcionar corretamente.
Eu não gosto desta lógica.
A primeira entrada para a função:
res = 0;
Portanto, a condição
não está satisfeito.
E não quero entrar mais em detalhes. Qual é a condição para que de repente?
Eu não entendo a lógica de tudo isso.Eu não gosto desta lógica.
A primeira entrada para a função:
res = 0;
Conseqüentemente, a condição
não é cumprida.
E não quero entrar mais nisso. Qual é a condição para que de repente?
Eu não entendo a lógica de tudo isso.Esta condição é apenas por 1 hora após o capotamento, quando o tempo é de 22 horas. Mas isto é apenas no primeiro início, enquanto o terminal sempre trabalha com o Expert Advisor, o que significa que ele está vazio apenas uma vez.
Talvez também deva ser declarado como estático em caso de mudança de cronograma
2. if(tc>LONG_MAX-1) = zeramos a variável tc se excedemos os limites permitidos de longo prazo. É pouco provável que isso aconteça, já que o terminal às vezes fica sobrecarregado, por exemplo, no fim de semana.
---
Código alterado, isto deve ser definitivo:
P.S. Coloque-o à prova
P.S. Revisou o código
----
P.S.S. S. Eu acrescentei mais 1 hora após o capotamento, caso contrário, tenho um spread muito alto em alguns revendedores.
A variante final funcionou 20 horas e o resultado é surpreendente
O spread médio diário é de 10-45 pps, mas na maioria das vezes é de 10-17 pps, o spread médio foi calculado como 19
Obrigado a todos por sua participação, se você tem algo a acrescentar - escreva!
Talvez também deva ser declarado estático, em caso de mudança de cronograma
Eu entendi, parece funcionar, retiro "não deveria"), agora eu realmente só preciso descobrir os momentos de zeragem/atribuição.
Eu vi uma discussão no fórum, mas não consigo encontrá-la.
Precisa ser limitado a uma posição em um bar que pode ser aberto a qualquer minuto, esta é a opção agora, mas é "pesada" na minha opinião
Como substituir isto para torná-lo mais leve?
Eu vi uma discussão no fórum, mas não consigo encontrá-la.
Precisa ser limitado a uma posição em um bar que pode ser aberto a qualquer minuto, esta é uma opção agora, mas é "pesada" na minha opinião
Como substituir isto para torná-lo mais leve?
"Você precisa se limitar a uma posição na barra, que pode ser aberta a qualquer minuto..."
palavras muito gerais, você quer dizer que uma vez na barra deste símbolo você pode enviar OrderSend?
"Você tem que se limitar a uma posição na barra, que pode ser aberta a qualquer minuto..."
o texto é muito geral, você quer dizer que uma vez por barra neste símbolo você pode enviar OrderSend?
Sim. O Expert Advisor está trabalhando no cronograma H1 e pode abrir uma posição às 10:17, não precisa abrir outra antes das 11:00, ou seja, no bar atual.
Sim. A EA está trabalhando no horário H1 e pode abrir uma posição às 10:17, você precisa ter certeza de que antes das 11:00, ou seja, na barra atual - ela não abre mais.
Sim, mais uma vez, eu acho que o diabo está nos detalhes.
abrir uma posição - colocar uma "bandeira de proibição" e/ou salvar o "tempo" (não importa qual, desde que seja a mesma (fonte) para comparação)
uma nova barra é aberta - a "bandeira de proibição" é hasteada.
Pergunta: E se a posição mudou de alguma forma?
Exemplo de como eu defino uma nova barra - divisor doTB em segundos, para H1 é 3600.0
BARii[].tempo - tempo de barras com M1, mas pode ser arbitrário e com qualquer divisão, se for mais ou igual a 1 significa o "tempo" de diferentes "barras
Sim, novamente condições incompletas em minha opinião, "o diabo está nos detalhes", em termos simples se o texto
abriu uma posição - colocar uma "bandeira de proibição" e/ou salvar o "tempo" (não importa qual, desde que seja a mesma (fonte) para comparação)
uma nova barra é aberta - a "bandeira de proibição" é hasteada.
Pergunta: E se a posição mudou de alguma forma?
Exemplo de como eu defino uma nova barra - divisor doTB em segundos, para H1 é 3600.0
BARii[].tempo - tempo de barras com M1, mas pode ser arbitrário e com qualquer divisão, se for mais ou igual a 1, significa o "tempo" de diferentes "barras
Eu não estava satisfeito com a opção de usar bandeiras naquele momento; não me lembro por quê, mas a substituí por
OK, vou pensar em outra implementação
Eu não estava feliz com a opção das bandeiras na época, não me lembro por que, mas a substituí por
Está bem, vou pensar em outra implementação.
E o que esta implementação retarda? Semelhante ao meu código determina duas vezes em uma "barra" ou em outra diferente. Apenas na minha variante "verdadeiro" quando em diferentes "barras", na sua variante "verdadeiro" quando em uma barra, basta contornar a comparação == com "0" especialmente inteiro, wo, e provavelmente posso mudar a condição para >0,0 ou >0,9, preciso pensar...