[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 553

 
Svinozavr >>:
Вам удобней это будет отдельным индикатором сделать. Сначала, в цикле пересчета заполняете инд. буфер значениями индикатора, а затем по этим значениям считаете сигнальную МА.

Вот пример расчета МА по RSI (ф-я старт):

Oh-oh-oh-oh-oh-oh-oh-oh-oh-oh-oh-oh-oh-oh-oh! Eu não o vi imediatamente! Exatamente o que o médico pediu. Obrigado. Você tem lucros infinitos! :):):)
 

artmedia70, Analisaremos todos os pedidos e resumiremos seus lucros. Se o lucro resultante for maior que zero ou maior que um valor pré-definido, fecharemos todas as posições.

double SummProfit(){
  double Profit=0;
 for(int i=OrdersTotal()-1;i>=0;i--){
   if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
     Print("Ошибка № ",GetLastError()," при выборе ордера № ",i);
   }
   else {
     Profit=Profit+OrderProfit();
  }
 }
  return(Profit);
}

Tente o código para fechar todos os pedidos você mesmo.

Dica: Para um loop no qual todos os pedidos serão fechados, você precisa inverter a direção da enumeração do pedido - exatamente como eu fiz no código acima. Nomeadamente, devemos ir da última ordem para a primeira. Se mudarmos a direção, nem todas as ordens serão fechadas no loop. Por exemplo, o pedido colocado em primeiro lugar na lista será fechado e, como resultado, outro o substituirá. E como o contador do laço é incrementado por um, outra ordem desta linha será pulada.

 

Eu tenho uma pergunta - o testador MT4 leva em conta as trocas? Não há nenhuma menção a trocas no arquivo de registro do testador.

 
chief2000 >>:

Возник вопрос - учитывает ли тестер МТ4 свопы? В лог-файле тестера нет ни единого упоминания о свопах.

OrderSwap()

 
sergeev >>:

OrderSwap()

Atualmente não há como adicionar este comando para testes

- pode ser considerado como uma confirmação de que o MT4 leva em conta as trocas durante os testes e a otimização?

 
Acho que sim, pois calcula e retorna valores. e portanto (99% de probabilidade :) é contabilizada no balanço
 
sergeev >>:
думаю да, так как она вычисляется и возвращает значения. а следовательно (вероятность 99% :) учитывается на балансе

Obrigado!

 

Como desenhar corretamente um círculo com o raio da última quebra do ZigZag.

O cálculo do raio será assim, mas eu não sei como desenhar um círculo em MT.

 double y3, y2, y1, zz;// экстремумы Зиг-Зага
 int    x3, x2, x1, sh;// номера баров
  y3=0;y2=0;y1=0;                                             // экстремумы Зиг-Зага
  sh=ShiftBars;                                               // номера баров
  // Берём три экстремума Зиг-Зага
  while (y3==0) {
    zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh);
    if (zz!=0 && zz!=EMPTY_VALUE) {
      if      (y1==0) { x1=sh; y1=zz; }
      else if (y2==0) { x2=sh; y2=zz; }
      else if (y3==0) { x3=sh; y3=zz; }
    }
    sh++;
  }
  double R=MathSqrt(MathPow(MathAbs(y1-y2),2)+MathPow((x2-x1),2));// радиус последнего перелома
 
sasha2x >>:

Расчет радиуса будет такой,а как сделать чтобы на рисовался круг в МТ не знаю.


https://www.mql5.com/ru/articles/1503/page2
 

Como posso fazer linhas indicadoras em vez de objetos?

Esta parece ser a fórmula onde (x0,y0)é o centro do raio.

No sistema de coordenadas cartesianas, o círculo não é o gráfico de uma função, mas pode ser descrito como a união dos gráficos das duas funções seguintes: