Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 40
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
Correção
Não há outra maneira de colocá-lo em qualquer outro lugar, serão parâmetros errados
Deve levar em conta o mais recente.
Vou tentar mudar isso.
Eu tentei usar o OrderModify() padrão, mas ele é banido se eu mover um monte de pedidos simultaneamente e constantemente
Obrigado pela crítica.
Declará-lo SEM ARGUMENTO, é realmente assim tão difícil?
{код функции}
E chame um vazio também, e coloque a elza de lá atrás de parênteses encaracolados:
else {когда есть ордера}
E agora você tem isto:
Experimente ^_~
Não está funcionando... Sem negócios, sem negócios...
Ao menos, apaga as ordens pendentes, não, quais são os erros?
...consertei-o.
Argumentos acabados. o terminal fica preso.
Portanto, algum tipo de laço está se desdobrando infinitamente.
Escreva #propriedade estrita no início do código e conserte-o, muitas advertências.
É bem possível a divisão por 0 na última função.
Depois disso, apenas a primeira linha será executada, o bloco de aparelho fica órfão.
Em geral, escreva primeiro a lógica no papel com palavras, caso contrário ela é instável.
É suposto executar um comando com um ponto decimal flutuante, dependendo dos decimais no gráfico
NormalizeDuplo(Ask+TakeProfit*Point(),Dígitos)
e como você viu que algumas linhas não foram executadas?
É suposto executar um comando com um ponto decimal flutuante, dependendo dos decimais no gráfico
NormalizeDuplo(Ask+TakeProfit*Point(),Dígitos)
Como você sabe que algumas linhas não são executadas?
Sim. Tenho grandes problemas com a lógica. E o que restaria do resultado se ele estivesse escrito em uma variável inteira? Qual é o objetivo deste código?
lastlot=NormalizeDouble(lastlot*Martin,3);
tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits);
Aqui, é tão difícil entender que parte do código é órfã e será executada independentemente da condição?
otype=FindLastOType(); //код, исполняющийся для else
{
код-сирота
}
Sim. Há um grande problema de lógica. E o que resta do resultado se for escrito para uma variável inteira? Qual é o objetivo deste código?
lastlot=NormalizeDouble(lastlot*Martin,3);
tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits);
É tão difícil entender que parte do código é órfã e não será executada?
otype=FindLastOType(); //код, исполняющийся для else
{
код, который никуда не идёт, сирота
}
Parada
se houver ordens
O tipo de pedido é
{
então as operações são executadas para esse tipo de ordem
}
não?
Não se consegue descobrir de onde vem a divisão zeroParada
se houver ordens
é o tipo de pedido
{
então as operações são realizadas para este tipo de ordem
}
não?
Sim, você está certo, é que o código está escrito em um estilo tal que o orador anterior o interpretou mal.
Acrescentado:divisão zero é uma divisão por zero, e diz-lhe no registro que linha
Parada
se houver ordens
é o tipo de pedido
{
então as operações são realizadas para este tipo de ordem
}
não?
Corrigido acima. O que vem depois é executado de acordo com a condição. O bloco de parênteses encaracolados é separado, portanto não tem nada a ver com outra coisa.
É aí que
{
double avg_price; //+------------средняя цена
price=0;//+------------цена
bool z;//+------------выход в переменную
double orderlots=0; //+------------лоты
avg_price=NormalizeDouble(price/orderlots,Digits);//+------------то средняя ценаравна цена деленная на лот