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

 
Snajper007 #:

Este código mostra o sinal na 10ª vela. Preciso verificar o sinal em cada vela de 1 a N.

Alterar a ordem da busca.

Você está procurando desde a profundidade do tempo até o tempo presente e, portanto, encontra o "sinal mais antigo".

A julgar pelo iCustom - você tem 4 e assim a numeração.

o laço deve ser de 0 (mais provavelmente 1-2) e até N

for(int i=0;i<n;i++)

 
Snajper007 #:
int n=10;
   datetime bar_sig_buy, bar_sig_sell;

   for(int i=n;i>=0;i--)
     {
     // для покупок
   double a1 = iCustom(NULL, 0, "FL11", 4, i);
   // для продаж 
   double a2 = iCustom(NULL, 0, "FL11", 5, i);


      if(a1 > 0)
         bar_sig_buy=Time[i];
         
      if(a2 > 0)
        bar_sig_sell = Time[i];
     Comment("bar_sig_sell = " + DoubleToString(bar_sig_sell)+ "\n" +
     "bar_sig_buy = " + DoubleToString(bar_sig_buy));

     }
 
Tanto quanto me lembro, o indicador FL11 está torto e você não pode usá-lo corretamente. Re-elaboração... O ciclo deve levar de 0 para a esquerda e interromper se for encontrado um sinal. Ou, zere o tempo do sinal no corpo do ciclo e imprima o resultado de cada barra. Mas você não aprenderá nada com este indicador, obtenha um indicador normal.
 
MakarFX #:
int n=10;
   datetime bar_sig_buy, bar_sig_sell;

   for(int i=n;i>=0;i--)
     {
     // для покупок
   double a1 = iCustom(NULL, 0, "FL11", 4, i);
   // для продаж 
   double a2 = iCustom(NULL, 0, "FL11", 5, i);


      if(a1 > 0)
         bar_sig_buy=Time[i];
         
      if(a2 > 0)
        bar_sig_sell = Time[i];
     Comment("bar_sig_sell = " + DoubleToString(bar_sig_sell)+ "\n" +
     "bar_sig_buy = " + DoubleToString(bar_sig_buy));

     }
Nada mudou. O sinal ainda está aparecendo na 10ª vela
 
Snajper007 #:
Nada mudou. O sinal ainda está aparecendo na 10ª vela
2021.11.08 18:44:44.620 2021.10.15 17:10:00  BAG GBPUSD,H1: 0/sell: 2021.10.15 17:00:00
2021.11.08 18:44:44.571 2021.10.15 17:07:30  BAG GBPUSD,H1: 0/sell: 2021.10.15 17:00:00
2021.11.08 18:44:44.530 2021.10.15 17:05:00  BAG GBPUSD,H1: 3/sell: 2021.10.15 14:00:00
2021.11.08 18:44:44.480 2021.10.15 17:02:30  BAG GBPUSD,H1: 3/sell: 2021.10.15 14:00:00
2021.11.08 18:44:44.432 2021.10.15 17:00:00  BAG GBPUSD,H1: 3/sell: 2021.10.15 14:00:00
2021.11.08 18:44:44.385 2021.10.15 16:59:59  BAG GBPUSD,H1: 2/sell: 2021.10.15 14:00:00
2021.11.08 18:44:44.339 2021.10.15 16:57:30  BAG GBPUSD,H1: 2/sell: 2021.10.15 14:00:00
 
Snajper007 #:
Nada mudou. O sinal ainda é mostrado na 10ª vela

Aqui está a função de analisar este sinal deste indicador do meu antigo arquivo, ajustá-lo para suas próprias necessidades...

Retorna o último sinal. 1 - sol superior, 0 - sol inferior. -1 - sem sinal/erro.

int gsun(ENUM_TIMEFRAMES tf)
{
double up=0.0,dw=0.0;
for(int i=1;i<iBars(Symbol(),tf);i++)
  {
  up=iCustom(Symbol(),tf,"FL11",Period1,Period2,Period3,Deviat1,Deviat2,Deviat3,5,i);
  dw=iCustom(Symbol(),tf,"FL11",Period1,Period2,Period3,Deviat1,Deviat2,Deviat3,4,i);
  if(up!=0.0&&up!=EMPTY_VALUE)return(1);
  if(dw!=0.0&&dw!=EMPTY_VALUE)return(0);
  }
return(-1);
}
//---
 

MakarFX

Obrigado! Está funcionando!

 
Nikolay Ivanov #:
Tanto quanto me lembro, o indicador FL11 está torto e você não pode usá-lo corretamente. Re-elaboração... O ciclo deve levar de 0 para a esquerda e interromper se for encontrado um sinal. Ou, zere o tempo do sinal no corpo do ciclo e imprima o resultado de cada barra. Mas você não aprenderá nada com este indicador.
O que é um indicador normal?
 
Snajper007 #:


A foto deve ser inserida usando o botão Imagem ou anexada usando o botão Anexar arquivo

 
Snajper007 #:
Qual é o indicador correto?

Qualquer um que não extraia mais do que a lógica, geralmente 0 bar, para os fractais 2.

Estou julgando em termos de operação correta.

Razão: