Ayuda a la codificación - página 294

 
mladen:
airquest

Hay que tenerlo en cuenta o no funcionará bien

La mejor forma de llamar a los indicadores con dicho parámetro es la siguiente :

iCustom(NULL,targetTimeFrame,indicatorName,"",...,buffer,shift);

Entonces, usa "" para ese parámetro

Gracias Mladen, como siempre, eres de gran ayuda.

 

¿alguien podría hacer que este indicador trazara en la apertura de la barra cuando está presente? la versión en TradeStation trazará un indicador de marco de tiempo más alto (cuando está presente) en la barra de marco de tiempo más bajo antes de que el precio realmente opere a través del valor. sin embargo, en la versión MT4 este no es el caso, y no trazará hasta que el precio haya operado a través de él.

Muchas gracias,

Scott

***

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 Blanco

#property indicator_color2 Blanco

//#property indicator_width1 5

//#propiedad indicator_width2 5

//---- parámetros de entrada

/************************************************** ***********************

PERIOD_M1 1

PERIOD_M5 5

PERIOD_M15 15

PERIOD_M30 30

PERIOD_H1 60

PERIOD_H4 240

PERIOD_D1 1440

PERIODO_W1 10080

PERIOD_MN1 43200

Debe utilizar el valor numérico del timeframe que desea utilizar

cuando establezca el valor de TimeFrame' con las entradas del indicador.

************************************************** ************************/

extern int TimeFrame = 240;

extern int num = 6;

extern color Color = White;

double vftop[];

double vfbot[];

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

//| Función de inicialización de los indicadores personalizados ||.

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

int init()

{

//---- indicadores

IndicatorBuffers(2);

SetIndexBuffer(0, vfbot);

SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 5, Color);

// SetIndexArrow(0, 117);

SetIndexEmptyValue(0, 0);

SetIndexBuffer(1, vftop);

SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 5, Color);

// SetIndexArrow(1, 117);

SetIndexEmptyValue(1, 0);

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Period_M1"; break;

case 5 : TimeFrameStr="Period_M5"; break;

case 15 : TimeFrameStr="Period_M15"; break;

case 30 : TimeFrameStr="Period_M30"; break

case 60 : TimeFrameStr="Period_H1"; break

caso 240 : TimeFrameStr="Period_H4"; break;

case 1440 : TimeFrameStr="Period_D1"; break;

case 10080 : TimeFrameStr="Period_W1"; break

case 43200 : TimeFrameStr="Period_MN1"; break

por defecto : TimeFrameStr="Periodoactual";

}

IndicatorShortName("MTF_VolumeFinder ("+TimeFrameStr+")";

//----

return(0);

}

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

//| Función de desinicialización del indicador personalizada ||.

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

int deinit()

{

//----

//----

return(0);

}

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

//| Función de iteración del indicador personalizada ||

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

int inicio()

{

int barras_contadas=IndicadorContado();

int i = Bars - counted_bars;

if(barras_contadas == 0) i = Bares - num*2;

int j = 0;

double t1, t2;

int y = 0;

while(i >= 0)

{

y = iBarShift(Symbol(), TimeFrame, Time);

t1 = iLow(Symbol(), TimeFrame, y);

t2 = iHigh(Symbol(), TimeFrame, y);

for(j = y+1; j < y + num; j++)

{

t1 = MathMax(t1, iLow(Symbol(), TimeFrame, j));

t2 = MathMin(t2, iHigh(Symbol(), TimeFrame, j));

}

if(t1 <= t2)

{

vftop = t2;

vfbot = t1;

}

i--;

}

//----

return(0);

}

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

 
scott TTM:
¿podría alguien hacer que este indicador trace en la apertura de la barra cuando esté presente? la versión en TradeStation trazará un indicador de marco de tiempo superior (cuando esté presente) en la barra de marco de tiempo inferior antes de que el precio realmente opere a través del valor. sin embargo, en la versión de MT4 este no es el caso, y no trazará hasta que el precio haya operado a través de él.

muchas gracias,

Scott

***

#property ventana_del_gráfico

#property indicator_buffers 2

#property indicator_color1 Blanco

#property indicator_color2 Blanco

//#property indicator_width1 5

//#propiedad indicator_width2 5

//---- parámetros de entrada

/************************************************** ***********************

PERIOD_M1 1

PERIOD_M5 5

PERIOD_M15 15

PERIOD_M30 30

PERIOD_H1 60

PERIOD_H4 240

PERIOD_D1 1440

PERIODO_W1 10080

PERIOD_MN1 43200

Debe utilizar el valor numérico del timeframe que desea utilizar

cuando establezca el valor de TimeFrame' con las entradas del indicador.

************************************************** ************************/

extern int TimeFrame = 240;

extern int num = 6;

extern color Color = White;

double vftop[];

double vfbot[];

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

//| Función de inicialización de los indicadores personalizados ||.

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

int init()

{

//---- indicadores

IndicatorBuffers(2);

SetIndexBuffer(0, vfbot);

SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 5, Color);

// SetIndexArrow(0, 117);

SetIndexEmptyValue(0, 0);

SetIndexBuffer(1, vftop);

SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 5, Color);

// SetIndexArrow(1, 117);

SetIndexEmptyValue(1, 0);

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Period_M1"; break;

case 5 : TimeFrameStr="Period_M5"; break;

case 15 : TimeFrameStr="Period_M15"; break;

case 30 : TimeFrameStr="Period_M30"; break

case 60 : TimeFrameStr="Period_H1"; break

caso 240 : TimeFrameStr="Period_H4"; break;

case 1440 : TimeFrameStr="Period_D1"; break;

case 10080 : TimeFrameStr="Period_W1"; break

case 43200 : TimeFrameStr="Period_MN1"; break

por defecto : TimeFrameStr="Periodo actual";

}

IndicatorShortName("MTF_VolumeFinder ("+TimeFrameStr+")";

//----

return(0);

}

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

//| Función de desinicialización del indicador personalizada ||.

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

int deinit()

{

//----

//----

return(0);

}

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

//| Función de iteración del indicador personalizada ||

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

int inicio()

{

int barras_contadas=IndicadorContado();

int i = Bars - counted_bars;

if(barras_contadas == 0) i = Bares - num*2;

int j = 0;

double t1, t2;

int y = 0;

while(i >= 0)

{

y = iBarShift(Symbol(), TimeFrame, Time);

t1 = iLow(Symbol(), TimeFrame, y);

t2 = iHigh(Symbol(), TimeFrame, y);

for(j = y+1; j < y + num; j++)

{

t1 = MathMax(t1, iLow(Symbol(), TimeFrame, j));

t2 = MathMin(t2, iHigh(Symbol(), TimeFrame, j));

}

if(t1 <= t2)

{

vftop = t2;

vfbot = t1;

}

i--;

}

//----

return(0);

}

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

¿Puede publicar el código original de tradestation?

 

Lo he buscado, pero no lo encuentro. Compré el indicador en 2004.

 
scott TTM:
Lo he buscado, pero no lo encuentro. Compré el indicador en 2004.

Lo pregunto porque me gustaría comparar el código - a veces el código de lenguaje fácil parece una tarea sencilla para convertir a metatrader, pero las diferencias son demasiado grandes para ser 100% en algunos casos que la conversión se hace como debería

 

Por favor, ayúdenme

hola

¿Podría por favor ayudar a hacer que funcione para MT4 Build 600+

¡Gracias de antemano!

Archivos adjuntos:
sap_robot.mq4  32 kb
forexhacked.mq4  19 kb
 

Error WPR_MA

¡Hola mladen!

¿Puedo pedir un poco de ayuda en la codificación?

Yo, más o menos, escribí un indicador que está promediando otros 4 WPR en una ventana de indicador.

Si cargas la plantilla, puedes ver la diferencia entre los MA de los WPR.

El superior es el indicador, el inferior se mezcla manualmente. El objetivo es, hacer el manual a un indicador.

Mi pregunta es ¿por qué está haciendo eso? Donde codifiqué mal el WPR_MA..

Gracias por su tiempo

Adledion

Archivos adjuntos:
 
adledion:
¡Hola mladen!

¿Puedo pedir un poco de ayuda en la codificación?

Yo, más o menos, escribí un indicador que está promediando otros 4 WPR en una ventana de indicador.

Si usted carga la plantilla, puede ver la diferencia entre el MA en WPRs.

El superior es el indicador, el inferior se mezcla manualmente. El objetivo es, hacer el manual a un indicador.

Mi pregunta es ¿por qué está haciendo eso? Donde codifiqué mal el WPR_MA..

Gracias por su tiempo

Adledion

Adledion

En la plantilla ma se aplica a un solo WPR (WPR(50) en el caso de esa plantilla). No se puede aplicar ma a varios indicadores y por eso hay una diferencia entre tu indicador y la plantilla

Pruébalo - pon todos los periodos WPR de tu indicador a 50 y compara los valores del indicador con el valor anterior de ma en la plantilla (anterior ya que usas el desplazamiento uno en el indicador para iMAOnArray() ) y verás que tienes exactamente los mismos valores en ese caso

 
mladen:
Adledion

En la plantilla ma se aplica a un solo WPR (WPR(50) en el caso de esa plantilla). No se puede aplicar ma a varios indicadores y por eso hay una diferencia entre su indicador y la plantilla

Pruébalo - pon todos los periodos WPR de tu indicador a 50 y compara los valores del indicador con el valor anterior de ma en la plantilla (anterior ya que usas el desplazamiento uno en el indicador para iMAOnArray() ) y verás que tienes exactamente los mismos valores en ese caso

Vaya, gracias, no había indagado tanto

edit: y eso quiere decir, que en la mezcla del manual el ma es solo en un wpr? datos de los primeros indicadores..? así que básicamente el manual es el equivocado (calculando un wpr ma), comparado con mi idea original, que es calcular 3 o 4 wpr ma.

 

Mladen ,

Estoy un poco desconcertado ¿son estos 2 indicadores repintados? https://www.mql5.com/en/forum/172895

¿Qué representan esos histogramas sabes?

Archivos adjuntos:
forexmtn.mq4  3 kb
rd-combo.mq4  11 kb
Razón de la queja: