Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 169

 
sandex:

Declara que el array es estático, de tamaño 1:

Después de la compilación aparece una línea, que es la misma que en esta versión y en la anterior. Aquí está el código completo:

#property copyright ""
#property link      ""
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2
#property  indicator_type1   DRAW_LINE
#property  indicator_color1  clrMediumVioletRed
#property  indicator_style1  STYLE_SOLID
#property  indicator_label1  ""
#property  indicator_type2   DRAW_LINE
#property  indicator_color2  clrRed
#property  indicator_style2  STYLE_SOLID
#property  indicator_label2  "Sell TP"
input int Period_ = 34;         //Период
int ma1Handle;
double ma1Val[1];
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {   
SetIndexBuffer(0,ExtMapBuffer1,INDICATOR_DATA);
SetIndexBuffer(1,ExtMapBuffer2,INDICATOR_DATA);
ma1Handle=iMA(_Symbol,_Period,Period_,0,MODE_EMA,PRICE_CLOSE); 
   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[])
  {
ArraySetAsSeries(ma1Val,true);
int bars=Bars(_Symbol,_Period);
for(int i=0;i<bars;i++)
    {
    CopyBuffer(ma1Handle,0,i,1,ma1Val);
    ExtMapBuffer2[i]=ma1Val[0] - ((ma1Val[0]/100)*0.3);//ЗДЕСЬ НЕ ПОЛУЧАЕТСЯ ПОЛУЧИТЬ ЛИНИЮ
    }
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Código de trabajo.
Archivos adjuntos:
Ind.mq5  3 kb
 

Hola.

He decidido aprender MQL5, he leído artículos sobre cómo generar EAs en MetaEditor, todo está claro pero cómo hacer que los indicadores que forman parte de los EAs operen según sus reglas, por ejemplo el indicador CCI hace cosas que no necesito, cómo hacer que una orden de compra se abra al cruzar 100 y se cierre al cruzar 100 de abajo a arriba, lo mismo para vender. Yo también estoy trabajando en esto desde hace tiempo y no sé cómo hacerlo.

 
vitan06:

Hola.

He decidido aprender MQL5, he leído artículos sobre cómo generar EAs en MetaEditor, todo está claro pero cómo hacer que los indicadores que forman parte de los EAs operen según sus reglas, por ejemplo el indicador CCI hace cosas que no necesito, cómo hacer que una orden de compra se abra al cruzar 100 y se cierre al cruzar 100 de abajo a arriba, lo mismo para vender. Yo también estoy trabajando en esto desde hace tiempo y no sé cómo hacerlo.

Tengo una pregunta distraída. ¿Cómo se utiliza el MQL4?
 
de ninguna manera
 
sandex:
Código de trabajo.
Gracias. ¡¡¡Funciona!!!
 
vitan06:
de ninguna manera

entonces olvídate con seguridad del generador de código.

Abrir un ejemplo estándar de la entrega de MA o MACD

Cambiar el indicador a CCI

y vaya

 

¡Hola!

Perdón por la, en mi opinión, estúpida pregunta:

Escribí un EA en mql5, lo cargué correctamente, lo probé, lo probé en una demo en mi portátil de casa y ahora la demo está funcionando en VPS.

Lo he desinstalado de mi portátil. Ajustado algo en la fuente en VPS.

¡¡¡Trató de cargar desde el VPS a la computadora portátil - no lo ve MQL5!!! El Explorador de W7 lo tiene donde debe estar, pero el MQL5 no.

El metaeditor a través de Abrir archivo lo encuentra, lo edita y lo guarda.

Cuando intento compilarlo, en la primera línea aparece el error no se puede crear la interfaz del compilador MQL .¿Qué es este error?

¿Qué debo hacer?

 

¿Podría aconsejar cómo obtener el precio actual en el código del indicador y compararlo con otro indicador para trazar una línea?

Obtengo el precio actual en el Asesor Experto:

MqlTick latest_price;       
double iclose=latest_price.bid;
Pero, ¿cómo lo consigo en el indicador?
 
forexman77:

¿Podría aconsejar cómo obtener el precio actual en el código del indicador y compararlo con otro indicador para trazar una línea?

En el EA obtengo el precio actual de la siguiente manera:

Pero, ¿cómo lo consigo en el indicador?
Mira en el código del indicador, función OnCalculate().
Razón de la queja: