[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 523

 
Richie писал(а) >>

Pergunta: quem tem esta EA abrindo os pedidos de Compra e Venda?
Ou talvez eu esteja entendendo mal alguma coisa, mas estou recebendo um erro 138.
https://www.mql5.com/ru/code/8177


Para cinco dígitos, o escorregamento deve ser aumentado
 
Vinin писал(а) >> Por cinco dígitos, o escorregamento tem que ser aumentado acima de tudo


>> Obrigado. Agora vejo porque costumava funcionar e agora não funciona. Eu não pensei nisso.
 
Você poderia aconselhar como loopar a execução do programa inteiro?
De preferência, não um loop eterno, mas a execução do programa um certo número de vezes.
Aqui está um exemplo simples -

bool Log=falso;

int start()
{


if(Log===falso)
int tick=OrderSend("GBPUSD",OP_BUY,0.01,Ask,3,Bid-30*Point,Bid+30*Point);
Log = verdadeiro;

retornar;
}

Como faço para colocar a declaração de loop para que quando uma ordem de parada é acionada, a mesma posição (por exemplo) seja aberta imediatamente?
 
ciclos são desnecessários, o programa já está em loop para ser chamado a cada tique. Lembre-se do bilhete de pedido e depois verifique OrderCloseTime() todas as vezes. Se não for 0, significa que o pedido foi fechado. Como exatamente - no take or stop - você pode descobrir analisando OrderProfit().
 
alsu >>:
циклов не надо, программа и так зациклена на вызов при каждом тике. Запомните тикет ордера, а потом проверяйте каждый раз OrderCloseTime(). Если оно не 0, значит ордер закрылся. Как именно - по тейку или стопу - можно узнать, проанализировав OrderProfit().

E se a parada estivesse no ponto de equilíbrio, etc.?

 
sanyooooook >>:

а если стоп стоял в безубытке и т.п.?

Se ao menos cogumelos pudessem crescer em sua boca.

 
alsu >>:

если б да кабы, да во рту росли б грибы.

Você não consegue pensar em nada mais inteligente? Responda a pergunta corretamente.

 
Lim1 >>:
Подскажите как зациклить выполнение всей программы?
Желательно не вечный цикл, а выполнение программы определенное количество раз.
Вот простой пример -

bool Log=false;

int start()
{


if(Log==false)
int tick=OrderSend("GBPUSD",OP_BUY,0.01,Ask,3,Bid-30*Point,Bid+30*Point);
Log = true;

return;
}

Как расположить оператор цикла чтобы при срабатывании стоп приказа сразу происходило бы открытие этой же (например) позиции?

Não muito claro, parafraseando.

int start()
{
 for(int i = 0; i < 15; i++){

  bool покупать=false,
       продавать=false;
  string Symbol_="GBPJPY";

  if(iRSI(Symbol_,5,144,0,1)>50)
  покупать=true;
  else
  продавать=true;

  if(покупать)
  int tick=OrderSend(Symbol_,OP_BUY,0.01,Ask,3,Bid-30*Point,Bid+30*Point);
  if(продавать)
  int tick=OrderSend(Symbol_,OP_SELL....................................);
  Sleep(100);//0.1 sec/ ждем 
 }
return(0);
}
 
costy_ >>:

Не совсем понятно, перефразируйте.

Um bom código abrirá quinze pedidos em um segundo e meio, dependendo das leituras do RSI.
É melhor descrever em palavras o que você quer obter e não se referir a ciclos e tudo isso. Por exemplo, abrir um pedido por leitura RSI, se ele será fechado por parada, abrir imediatamente o próximo, etc.
 
splxgf >>:
Хороший код, за полторы секунды откроет пятнадцать ордеров в зависимости от показаний RSI.
Лучше описать словами то что хочется получить и не надо ссылаться на циклы и все такое. к примеру открыть один ордер по показаниям RSI, если он будет закрыт по стопу сразу открыть следующий и т.п.

=))

Você pode me dizer como fazer loop na execução de um programa inteiro?
De preferência, não um loop eterno, mas para executar o programa um certo número de vezes.
Aqui está um exemplo simples -

Eu não me importo, eu não me importo.

Concordo "Melhor descrito em palavras"!