[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 112

 

Boa noite!

Eu tenho uma pergunta simples.

Por que razão, a EA, após a inicialização, não pode ir para o início(); ?

Talvez alguém tenha enfrentado tal problema?

Do init(); eu saio retorno(0); .

Obrigado antecipadamente pela resposta!

 
E como você sabe que ele "não foi para Start"?
 
BBSL:

Boa noite!

Eu tenho uma pergunta simples.

Por que razão, a EA, após a inicialização, não pode ir para o início(); ?

Talvez alguém tenha enfrentado tal problema?

Do init(); eu saio retorno(0); .

Obrigado antecipadamente pela resposta!

Sem aspas - sem começo. As passagens são necessárias para iniciar + aprovação de especialistas.
 

Olá a todos e lucros!

Eu tenho um problema desses.

No meu computador de casa, estou fazendo um layout gráfico. Como transferi-lo para outro computador - qual arquivo deve ser sobrescrito?

Não posso usar a saída como copiar toda a pasta MT4 e depois copiá-la com um novo nome para outro computador, porque é muito complicado. O interessante é que se eu deixar a pasta em outro computador com o nome antigo, não há nada de novo nas tabelas...

Quem sabe, socorro!

 

BBSL ,eu costumava escrever "start();" - foi assim que você escreveu? Você não precisa de dois pontos lá. Talvez não haja parênteses curvos

kiimar, você o fechou? Se sim, você precisa ver o código

 
BBSL:

Boa noite!

Eu tenho uma pergunta simples.

Por que razão, a EA, após a inicialização, não pode ir para o início(); ?

Talvez alguém tenha enfrentado tal problema?

Do init(); eu saio retorno(0); .

Obrigado antecipadamente pela resposta!

A resposta é ainda mais simples: a presença do operador de retorno(0) no final de um corpo funcional não significa que este operador jamais será executado.
 

Como posso verificar se um pedido é acionado por TakeProfit ou StopLoss? Obrigado por sua resposta!

 
BBSL:

Por que razão, a EA, após a inicialização, não pode ir para o início(); ?

Talvez alguém tenha enfrentado este problema?

Às vezes há cálculos complexos ou histórico de carga no init(), ou o terminal tem muitos indicadores e EAs que suspendem o terminal ou...

mas se durante a inicialização do código os terminais do terminal interromperem o código, o seguinte erro aparecerá no log: ".... timeout em especialista ...."

Se o registro não mostrar nenhum erro, significa que a inicialização foi bem sucedida. A própria função start() é fácil de verificar - escrever start() : Imprimir("novo tick") na primeira linha;

 
Sayod ,em que prazo e com que parâmetros você negociou?
 
Jaguar1974:

Como posso verificar se um pedido é acionado por TakeProfit ou StopLoss? Obrigado pela resposta!


Verifique o histórico do pedido, se o preço de fechamento for igual a SL ou TP - então ..., mas acho que seria mais fácil verificar o lucro de um pedido fechado - se > 0 então tome o contrário ...

aqui está uma peça de código com significado semelhante:

double history(){
int time = 0;double profit = 0;//обьявляем необходимые нам переменные куда мы положим интересующие нас характеристики ордера
for(int i = OrdersHistoryTotal();i>=0;i--){// Перебираем все закрытые ордера
  if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){//если ордер с таким номером (i) в списке закрытых ордеров есть ( не путать с тикетом)
    if(OrderSymbol() == Symbol()){//если выбранный ордер был открыт по нашей валютной паре
      if(time<OrderCloseTime()){//(сравниваем его с хранящимся в пероеменной time) 
        time=OrderCloseTime();//если время закрытия ордера больше - ложим его в переменную
        profit=OrderProfit();//и заодно запоминаем прибыль ордера
      }
    }
  }
}
//по окончании этой процедуры в наших переменных будут сидет наибольшее время закрытия, и его профит. Или по нулям если история чистая.
//теперь мы можем выставлять условия в зависимости от результата процедуры
   
if(profit == 0 &&time == 0){//действия если история чистая

}
if(profit >= 0){//действия если последний ордер был прибыльным, или нулевым

}
if(profit <  0 ){//действия если последний ордер был убыточным

}
return(0);
}