Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 40

 
trader781:

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?

int Counts()
{код функции}

E chame um vazio também, e coloque a elza de lá atrás de parênteses encaracolados:

if(Counts()==0){че там нужно когда нет ордеров}
else {когда есть ордера}

E agora você tem isto:

if(Counts()==0){че там нужно когда else {когда есть ордера} нет ордеров}
 
Alekseu Fedotov:

Experimente ^_~



Não está funcionando...Ainda não há acordo.
 
Movlat Baghiyev:
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.

Arquivos anexados:
0.mq4  8 kb
 
Acabaram os argumentos. o terminal fica preso.
Arquivos anexados:
count.mq4  19 kb
 
trader781:
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.

 
Vitalie Postolache:


É 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?

 
trader781:

É 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?

int lastlot,tp;
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?

else//+-------------если ордера уже есть
otype=FindLastOType(); //код, исполняющийся для else
{
код-сирота
}
 
Vitalie Postolache:

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?

int lastlot,tp;
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?

else//+-------------если ордера уже есть
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 zero
 
trader781:

Parada

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

 
trader781:

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.

Não consigo descobrir de onde vem a divisão zero.

É aí que

void ModifyOrders() //+------------модификация ввод тип
  {
   double avg_price; //+------------средняя цена
   price=0;//+------------цена
   bool z;//+------------выход в переменную
   double orderlots=0; //+------------лоты

   avg_price=NormalizeDouble(price/orderlots,Digits);//+------------то средняя ценаравна цена деленная на лот
@Vitaly Muzichenko Onde está "mal interpretada" aqui? Use seu cérebro.
Razão: