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

 
MakarFX:
Errado, ele precisa do tempo da vela anterior

Bem, você também pode telepatizar a vela zero :) porque é a última, não a anterior.

Se fizermos análise psíquica, podemos supor que estamos procurando o valor dentro de uma vela de uma hora, o que nos traz de volta ao meu posto anterior sobre iLowest e iHighest.

 
ANDREY:

Obrigado.

PapaYozh estava certo, porque de acordo com sua condição

if (Bid - iLow( NULL ,PERIOD_H1,1)>=0.0030)

você não está procurando por um baixo, está procurando por um recuo de um baixo.

 
PapaYozh:

Sim, eu não estava prestando atenção.

Eu não estava prestando atenção...

 
Vladislav Andruschenko:


simplesmente deixá-lo?


Bem, acabei de verificar. não está executando em mt5. build flatt 2940

Ou você removeu a OnCalculate?



aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa :-) criou um roteiro e colocou-o na pasta de indicadores

Único.

Mais como uma exceção, você simplesmente enfiou o roteiro na pasta de indicadores e o terminal o devorou.

Sim, esse é o truque/problema... Pastas confusas no início, depois tomou-a como uma característica... Uma boa característica, execução única após oninit.

 
Valeriy Yastremskiy:

Sim, esse é o truque/problema... Primeiro confundiu as pastas, depois tomou-a como uma característica. Uma boa característica, execução única após oninit.

Portanto, é apenas um roteiro que se executa na linha do gráfico.

 

Makar, você deu um link para um indicador com uma resposta à minha pergunta. Nada funciona (eu o fiz por intuição, não tenho cérebro para isso). Eu preciso de sua ajuda!

https://www.mql5.com/ru/forum/160683/page1465#comment_22167585

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2021.05.03
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
ifitstrue:

Makar, você deu um link para um indicador com uma resposta à minha pergunta. Nada funciona (eu o fiz por intuição, não tenho cérebro para isso). Eu preciso de sua ajuda!

https://www.mql5.com/ru/forum/160683/page1465#comment_22167585

//+------------------------------------------------------------------+
//|                                                   MTF_Moving.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                             https://www.mql5.com/ru/users/melnik |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com/ru/users/melnik"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_width1 2
#property indicator_width2 2
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_type1 DRAW_LINE
#property indicator_type2 DRAW_LINE

double ma_buffer_high[];
double ma_buffer_low[];

//--- input parameters
input int                     PeriodMaHigh   =1;            //Period High Ma
input int                     PeriodMaLow    =1;            //Period Low Ma
input ENUM_APPLIED_PRICE      PriceMaH       =PRICE_HIGH;   //Applied price
input ENUM_APPLIED_PRICE      PriceMaL       =PRICE_LOW;    //Applied price
input ENUM_MA_METHOD          MethodMa       =MODE_SMA;     //Method Ma
input ENUM_TIMEFRAMES         Timeframe      =PERIOD_D1;    //Timeframe for calculate

ENUM_TIMEFRAMES prd;

int index=-1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0, ma_buffer_high, INDICATOR_DATA);
   SetIndexBuffer(1, ma_buffer_low, INDICATOR_DATA);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   if((rates_total-prev_calculated-PeriodMaHigh)<=0)return(0);
  
   if(Period()>Timeframe) prd=PERIOD_CURRENT;
   if(Period()<=Timeframe) prd=prd=Timeframe;
  
   for(int i=rates_total-prev_calculated-PeriodMaHigh-1;i>=0;i--)
   {
      if(TimeMinute(time[i])==0)index=iBarShift(Symbol(), prd, time[i], false);
      
      ma_buffer_high[i]=iMA(Symbol(), prd, PeriodMaHigh, 0, MethodMa, PriceMaH, index+1);
      ma_buffer_low[i] =iMA(Symbol(), prd, PeriodMaLow, 0, MethodMa, PriceMaL, index+1);
   }
  
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
MakarFX:

Eu tentei tirar uma foto como essa.

Arquivos anexados:
2.png  31 kb
 

Acontece assim.

Arquivos anexados:
3.png  26 kb
 
ifitstrue:

É assim.

Se você quiser o dia anterior, veja o post anterior,

e se for o dia atual, corrijam-no.

      ma_buffer_high[i]=iMA(Symbol(), prd, PeriodMaHigh, 0, MethodMa, PriceMaH, index);
      ma_buffer_low[i] =iMA(Symbol(), prd, PeriodMaLow, 0, MethodMa, PriceMaL, index);
Razão: