[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 198

 
SK. писал(а) >>

Echa un vistazo aquí .

¡Muchas gracias SK, Vinin!

Un gran ejemplo para workaraund.

Debe haber valido la pena para ser tan sofisticado. :-)

Parece que el MQL4 sabe cómo "aprovechar" el tiempo del programador. :-)

 
SK. >> :

Mira aquí .

Gracias, artículo muy útil.

 
stera писал(а) >>

¡Muchas gracias SK, Vinin!

granit77 escribió >>

Gracias, un artículo muy útil.

Si está interesado en este tema, eche un vistazo a este artículo http://www.forextrade.ru/mqlabs/sozdaniie-indikatora-kaghi

En él se discuten muchos detalles de las líneas horizontales y se muestra la solución técnica (alternancia).

También se ilustran las líneas verticales. Pero todavía no he entendido algunas de las reglas. Por ejemplo, basta con cambiar la paridad de los búferes ind., ya que la imagen se tambalea (bloque 4-5, cambiar los números de los búferes de 6 y 7 a 5 y 6, y hacer que el 5º sea 7m).

 
Pregunta de un principiante. ¿Es posible escribir un EA en mql4 que implique un trading automático con apertura y cierre a una hora determinada regularmente? Quiero probarlo. La mayoría de las veces se utiliza rulang, pero estas ideas aparentemente no son viables allí.
 

¿Cuál es el orden de los indicadores y los expertos?

Tengo 2 indicadores en un gráfico.

Y en conjunto, su tiempo de ejecución es a veces mucho mayor que el tiempo entre ticks.

¿Qué indicador se ejecuta primero?

Si no se ejecutan en paralelo, tal vez sea razonable colocarlos en gráficos diferentes, por supuesto, si no hay un orden de ejecución en gráficos diferentes.

¿Qué indicador o Asesor Experto se ejecuta primero si están en el mismo gráfico, y si están en gráficos diferentes?

 

x[i]=(Open[i]-Close[i]);

BufferMamá[i]=x[i];

No funciona.


Por favor, dígame qué hacer. No sé qué hacer.

 
Feonix >> :

x[i]=(Open[i]-Close[i]);

BufferMamá[i]=x[i];

No funciona.

Por favor, dígame qué hacer. No sé qué hacer.

>> ¿Qué hacer? >> ¡Mostrar todo el código!

 
OneDepo >> :

¿Qué hacer? ¡Muestra todo el código!

//+------------------------------------------------------------------+

//| Momentum.mq4 ||

//| Copyright © 2004, MetaQuotes Software Corp.

//| http://www.metaquotes.net/ |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2004, MetaQuotes Software Corp.

#enlace de propiedad "http://www.metaquotes.net/"


#property indicador_separar_ventana

#property indicator_buffers 1

#property indicator_color1 DodgerBlue

//---- parámetros de entrada

extern int MomPeriod=14;

int ret;

doble x[];

//---- buffers

doble MomBuffer[];

doble ocfor[];

doble octen[];

//+------------------------------------------------------------------+

//| Función de inicialización de indicadores personalizada |

//+------------------------------------------------------------------+

int init()

{

nombre_corto_de_cadena;

//---- línea indicadora

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,MomBuffer);

//---- nombre para la etiqueta de la subventana DataWindow y del indicador

short_name="Mamá("+MamáPeriodo+")";

IndicadorNombreCorto(nombre_corto);

SetIndexLabel(0,short_name);

//----

SetIndexDrawBegin(0,MomPeriod);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Momentum ||

//+------------------------------------------------------------------+

int inicio()

{

int,counted_bars=IndicatorCounted();

//----

if(Bars<=MomPeriod) return(0);

//----

i=Barras;

while(i>=0)

{

x[i]=(Open[i]-Close[i]);

BufferMamá[i]=x[i];

i--;


}

return(0);

}

//+------------------------------------------------------------------+



Si sustituyes Double x[]; por Double x;, todo funciona, pero la cuestión es asignar mombuffer[i]= x[i]

 
Feonix писал(а) >>

//+------------------------------------------------------------------+
//| Momentum.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"


#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue

//---- input parameters

extern int MomPeriod=14;

int ret;
double x[];

//---- buffers
double MomBuffer[];
double ocfor[];
double octen[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+

int init()
{
string short_name;
//---- indicator line
IndicatorBuffers( 2);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0, MomBuffer);
SetIndexBuffer(1, x);

//---- name for DataWindow and indicator subwindow label
short_name="Mom("+ MomPeriod+")";
IndicatorShortName( short_name);
SetIndexLabel(0, short_name);

//----
SetIndexDrawBegin(0, MomPeriod);

//----
return(0);

}

//+------------------------------------------------------------------+
//| Momentum |
//+------------------------------------------------------------------+

int start()
{
int i, counted_bars=IndicatorCounted();

//----
if(Bars<= MomPeriod) return(0);
//----
i=Bars;

while( i>=0)
{
x[ i]=(Open[ i]-Close[ i]);
MomBuffer[ i]= x[ i];
i--;
}

return(0);
}

//+------------------------------------------------------------------+
Puedes hacer esto
 
Feonix >> :

.

.

int inicio()

{

int,counted_bars=IndicatorCounted();

//----

if(Bars<=MomPeriod) return(0);

//----

i=Barras;


ArrayResize(x, i+1);


while(i>=0)

{

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i];

i--;

}

return(0);

}



Si sustituyes Double x[]; por Double x;, todo funciona, pero la cuestión es asignar mombuffer[i]= x[i].

Has declarado un array pero no le has asignado memoria.

Vinin dio una forma de asignar memoria, puedes usar la segunda, a través de la función ArrayResize()

Razón de la queja: