Ayuda para actualizar a MetaTrader 5 sin pérdidas - página 12

 
vdv2001:

Un poco de pintura en los niveles de Murray

He descargado este indicador. Recibí un error en la línea 228 al compilarla. No pude dibujarla, así que créeme. Quiero usar el indicador que uso en MT5, por eso estoy aquí, no pude hacerlo yo mismo. Tal vez puedas reescribirlo para mí. No puedo escribirlo yo. Gracias.
Archivos adjuntos:
 

Buenas tardes. Los chicos inteligentes realmente necesitan traducir el indicador de correlación en MT5

Archivos adjuntos:
iCorel_v3.mq4  11 kb
 
También es bueno y útil. Es bueno para todos.
Archivos adjuntos:
 
¿Por qué no se trazan las líneas?


#propiedad ventana_del_gráfica_del_indicador
#property indicator_buffers 2
#property indicator_plots 2
#property indicator_color1 clrDeepSkyBlue
#property indicator_color2 clrDeepSkyBlue
#propiedad ventana_del_gráfica_del_indicador
doble UpBuffer[];
doble DnBuffer[];
int OnInit()
{
SetIndexBuffer(0,UpBuffer);
SetIndexBuffer(1,DnBuffer);
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE); PlotIndexSetInteger(0,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3); PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE); PlotIndexSetInteger(1,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3);PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE);
return(0);
}
//+------------------------------------------------------------------+
//| Función de iteración de indicadores personalizada |
//+------------------------------------------------------------------+
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[])
{ int i;
for(i=1000;i>0;i--)
{ UpBuffer[i]=1.428; DnBuffer[i]=1.41;
}
return(0);
}
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
 
fellow:
¿Por qué no se trazan las líneas?



Debería ser algo así, lo creas o no, está funcionando.

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
#property indicator_color1 clrDeepSkyBlue
#property indicator_color2 clrDeepSkyBlue

double UpBuffer[];
double DnBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,UpBuffer);
   SetIndexBuffer(1,DnBuffer);

   PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
   PlotIndexSetInteger(0,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3);

   PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE);
   PlotIndexSetInteger(1,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3);

//---
   return(0);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   for(int i=rates_total-1000;i<rates_total;i++)
     {
      UpBuffer[i]=1.428;
      DnBuffer[i]=1.41;
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
voinG:
Descargado este indicador. Al compilar dio un error en la línea 228, no pude hacer una foto, así que por favor, creedme. Quiero usar el indicador que uso en MT5, por eso estoy aquí, no pude hacerlo yo mismo. Tal vez puedas reescribirlo para mí. Gracias.
¿Se ha completado la acción de guardar todo? Cualquier cosa que puedas decirme.
 

Por favor, ayuda.

Intenté reescribir WATL, casi lo logré. Las líneas no se dibujan correctamente, es debido a un cálculo torcido de la LWMA. Y lo que es más importante, a veces el gráfico tiene esas sorpresas:

Sorpresa

A veces, una línea de puntos es idéntica a los puntos sobre los que se calcula la WATL.

O, a veces, giro el gráfico y todos los puntos se superponen en la barra adyacente.

Gracias de antemano por cualquier ayuda =)

Archivos adjuntos:
WATL.mq5  41 kb
 

¿Quien ha visto este indicador en las transformaciones de MQL5? http://www.kimiv.ru/index.php?option=com_remository&amp;Itemid=13&func=fileinfo&id=67

Автоматизация торговли на финансовых рынках - Скачать i-Spread3.rar
  • www.kimiv.ru
Оглавление файлового архива  Разработки на MQL4 Индикаторы   Очень хорошую доработку индикатора i-Spread предложил пользователь pavik. Суть доработки в добавлении отображения минимальных значений спрэда за последние час, четыре часа и сутки. А также...
 
Ayuda para convertir a mq5. Sin ellas, es como no tener manos.
 

Hola,

No podía hacer lo que quería.

El par que tengo en la cabeza es diferente al que tenía en la cabeza.

[código]
#property indicador_separar_ventana
#property indicator_buffers 6
#property indicator_plots 2
#property indicator_type1 DRAW_COLOR_LINE
#property indicator_type2 DRAW_COLOR_LINE
#property indicator_color1 clrAzul
#property indicator_color2 clrRed
#property indicator_style1 STYLE_SOLID
#property indicator_style2 STYLE_SOLID

input int periodo_1 = 20;
input int periodo_2 = 100;
input ENUM_MA_METHOD ma_method = MODE_SMA;
input ENUM_APPLIED_PRICE applied_price = PRICE_CLOSE;

doble ExtMapBuffer1[];
doble ExtMapBuffer2[];
int EMHandle1=0;
int EMHandle2=0;
int EMHandle11=0;
int EMHandle22=0;
MqlParam params[]; // Estructura para guardar los parámetros del indicador
double ma1[],ma2[],ma3[],ma4[];//búferes temporales

int OnInit()
{
//--- mapeo de buffers indicadores
SetIndexBuffer(0, ExtMapBuffer1, INDICATOR_DATA);
SetIndexBuffer(1, ExtMapBuffer2, INDICATOR_DATA);
SetIndexBuffer(2, ma1, INDICATOR_DATA);
SetIndexBuffer(3, ma2, INDICATOR_DATA);
SetIndexBuffer(4, ma3, INDICATOR_DATA);
SetIndexBuffer(5, ma4, INDICATOR_DATA);

PlotIndexSetInteger(0, PLOT_SHIFT, 0);
PlotIndexSetInteger(1, PLOT_SHIFT, 0);

PlotIndexSetInteger(0,PLOT_LINE_STYLE,STYLE_SOLID);
PlotIndexSetInteger(1,PLOT_LINE_STYLE,STYLE_SOLID);
//---
PlotIndexSetInteger(0,PLOT_LINE_COLOR,clrBlue);
PlotIndexSetInteger(1,PLOT_LINE_COLOR,clrRed);

PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE);
IndicatorSetString(INDICATOR_SHORTNAME, "2_2_MA");
//--- establecer la precisión
IndicadorSetInteger(INDICATOR_DIGITS,4);
//---
ArrayResize(params,4);
params[0].type =TYPE_INT;
params[0].integer_value=período_1;
// Desplazamiento
params[1].type =TYPE_INT;
params[1].integer_value=0;
// Método de cálculo: media simple
params[2].type =TYPE_INT;
params[2].integer_value=MODE_SMA;
// tipo de precios para el cálculo: precios de cierre
params[3].type =TYPE_INT;
params[3].integer_value=PRICE_CLOSE;

EMHandle1 = IndicatorCreate(_Symbol, 0, IND_MA, 4, params;)
ArrayResize(params,4);
params[0].type =TYPE_INT;
params[0].integer_value=periodo_2;
params[1].type =TYPE_INT;
params[1].integer_value=0;
params[2].type =TYPE_INT;
params[2].integer_value=MODE_SMA;
params[3].type =TYPE_INT;
params[3].integer_value=PRICE_CLOSE;

EMHandle2 = IndicatorCreate(_Symbol, 0, IND_MA, 4, params;)
ArrayResize(params,4);
params[0].type =TYPE_INT;
params[0].integer_value=período_1;
params[1].type =TYPE_INT;
params[1].integer_value=0;
params[2].type =TYPE_INT;
params[2].integer_value=MODE_SMA;
params[3].type =TYPE_INT;
params[3].integer_value=PRICE_CLOSE;

EMHandle11 = IndicatorCreate(_Symbol, 0, IND_MA, 4, params;)
ArrayResize(params,4);
params[0].type =TYPE_INT;
params[0].integer_value=periodo_2;
params[1].type =TYPE_INT;
params[1].integer_value=0;
params[2].type =TYPE_INT;
params[2].integer_value=MODE_SMA;
params[3].type =TYPE_INT;
params[3].integer_value=PRICE_CLOSE;

EMHandle22 = IndicatorCreate(_Symbol, 0, IND_MA, 4, params;)

return(0);
}
int OnCalculate (const int rates_total,// tamaño del array price[];
const int prev_calculado,// número de barras disponibles ;en la llamada anterior;
const int begin,// qué índice de la matriz price[] iniciará los datos válidos;
const double &price[]) // matriz, sobre la que se calculará el indicador;
{
int i;
ArraySetAsSeries(ma1, true);
ArraySetAsSeries(ma2, true);
ArraySetAsSeries(ma3, true);
ArraySetAsSeries(ma4, true);

if(CopyBuffer(EMHandle1, 0, 0, 1, ma1) < 0){Print("CopyBuffer ma1 error =", GetLastError());}
if(CopyBuffer(EMHandle2, 0, 0, 1, ma2) < 0){Print("CopyBuffer ma2 error =", GetLastError());}
if(CopyBuffer(EMHandle11, 0, 0, 1, ma3) < 0){Print("CopyBuffer ma3 error =", GetLastError());}
if(CopyBuffer(EMHandle22, 0, 0, 0, 1, ma4) < 0){Print("CopyBuffer ma4 error =", GetLastError());}
int límite;
//if(prev_calculated<1)
//limit=periodo_1;
limit=prev_calculado-1;
for( i=0; i<limit; i++)
ExtMapBuffer1[0]=calculado;
ExtMapBuffer2[0]=calcular;

Comentario(
"\n=====================",
"\n ma1[0] : ",DoubleToString(ma1[0],5),
"\n ma2[0] : ",DoubleToString(ma2[0],5),
"\n ma3[0] : ",DoubleToString(ma3[0],5),
"\n ma4[0] : ",DoubleToString(ma4[0],5),
"\N - ExtMapBuffer1[0] : ",DoubleToString(ExtMapBuffer1[0],4),
"\n ExtMapBuffer2[0] : ",DoubleToString(ExtMapBuffer2[0],4)
);
return(rates_total);
}
void OnDeinit(const int reason)
{
Comentario(");
}
[/código]

Cuando 0 en lugar de i (para una barra) veo el resultado, cuando la barra (corriente = i) muestra que no puedo encontrar datos para el segundo par.

El gráfico del par está abierto, en la Ventana de Mercado no sé dónde confundo las cosas.

Dos pares diferentes en un indicador: ¿dónde está mi error?

Intento poner 0 y ver el resultado como un comentario, pero no tengo una línea.

Para aclarar: puse ma1 y ma2 en un par y ma3 y ma4 en el otro par.

Gracias.