Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1486

 
MakarFX:
Incorrecto, necesita el tiempo de la vela anterior

Bueno, también puedes telepatear la vela cero :) porque es la última, no la anterior.

Si hacemos un análisis psíquico podemos suponer que estamos buscando el valor dentro de una vela horaria, lo que nos lleva a mi post anterior sobre iLowest e iHighest.

 
ANDREY:

Gracias.

PapaYozh tenía razón, porque según su condición

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

no estás buscando un mínimo, estás buscando un retroceso desde un mínimo.

 
PapaYozh:

Sí, no estaba prestando atención.

No estaba prestando atención...

 
Vladislav Andruschenko:


¿sólo dejarlo?


Bueno acaba de comprobar. no se está ejecutando en mt5. construir flatt 2940

¿O ha eliminado OnCalculate?



Único.

Más bien se trata de una excepción, simplemente has metido el script en la carpeta de indicadores y el terminal se lo ha tragado.

Sí, ese es el truco/problema... Las carpetas confundidas al principio, luego lo tomaron como una característica... Una buena característica, la ejecución de una sola vez después de oninit.

 
Valeriy Yastremskiy:

Sí, ese es el truco/problema... Al principio me confundí con las carpetas, luego lo tomé como una característica... Una buena característica, la ejecución de una sola vez después de oninit.

Así que es sólo un script que se ejecuta en el hilo del gráfico.

 

Makar, has dado un enlace a un indicador con una respuesta a mi pregunta. Nada funciona( lo hice por intuición, no tengo cerebro para ello. ¡Necesito tu ayuda!

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

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

Makar, has dado un enlace a un indicador con una respuesta a mi pregunta. Nada funciona( lo hice por intuición, no tengo cerebro para ello. ¡Necesito tu ayuda!

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:

Intenté conseguir una foto así.

Archivos adjuntos:
2.png  31 kb
 

Resulta así.

Archivos adjuntos:
3.png  26 kb
 
ifitstrue:

Es así.

Si quieres el día anterior, consulta el post anterior,

y si es el día actual, corregirlo.

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