Indicadores Multi Timeframe - página 276

 

mtf demarker

¿alguien tiene un indicador de demarcación mtf que funcione?

gracias

 
jackt:
¿alguien tiene un indicador de demarcación mtf que funcione? gracias

Puedes probar esta versión, funciona con el DeMarker estándar.

Archivos adjuntos:
 
matfx:
Puede probar esta versión, funciona con DeMarker estándar.

no funciona. puse 2 mtf demarker en un gráfico h4. ajustes periodo 2, tf 1440 y periodo 3, tf 1440. ambos muestran el mismo gráfico.

 

demarcador con alarma

Hola:

Estoy usando el indicador demarker de ayer, ¡es genial!

¿se puede hacer este indicador con alarma?

por ejemplo:

si MTF_Demarker (0) > 0.7 y MTF_Demarker(15)>0.7 COMPRA y alarma

si MTF_Demarker (0) < 0.3 y MTF_Demarker(15)<0.3 VENTA y alarma

¡gracias de antemano!

 

Cómo hacer indicadores MTF

Me preguntaba si alguien podría mostrarme cómo hacer indicadores MTF. Puedo hacer codificación básica pero no sé cómo convertir un indicador estándar en MTF. Tengo un montón que quiero hacer y quiero aprender a hacerlo yo mismo. Gracias de antemano.

EDIT: No importa. Lo he resuelto.

 
jturns23:
Me preguntaba si alguien podría mostrarme cómo hacer indicadores MTF. Puedo hacer la codificación básica, pero no sé cómo convertir un indicador estándar a MTF. Tengo un montón que quiero hacer y quiero aprender a hacerlo yo mismo. Gracias de antemano. EDIT: No importa. Lo he resuelto.

Empieza por leer los primeros posts. Es fácil de explicar.

 

Mtf_wpr

estoy probando mi sistema con el indicador MTF_WPR es muy útil.

¿alguien puede adjuntar una alarma a este indicador?

por ejemplo:

si MTF_WPR(tf=0)>-20 & MTF_WPR(tf=15)>-20 entonces COMPRA &ALARMA

si MTF_WPR(tf=0)<-80 & MTF_WPR(tf=15)<-80 entonces VENDER &ALARM

thx

 
matfx:
Puedes probar esta versión, funciona con el DeMarker estándar.
jackt:
no funciona. puse 2 mtf demarker en un gráfico h4. ajustes periodo 2, tf 1440 y periodo 3, tf 1440. ambos muestran el mismo gráfico.

en MTF DeMarker.mq4 (3.0 KB) sólo hay que añadir el control del periodo en la línea83:

ExtDeMarkerMapBuffer=iCustom(NULL,TimeFrame, "DeMarker",ExtDeMarkerPeriod,0,y);

Archivos adjuntos:
 
fxbs:
en el MTF DeMarker.mq4 (3.0 KB) sólo hay que añadir el control del periodo en la línea83: ExtDeMarkerMapBuffer=iCustom(NULL,TimeFrame, "DeMarker",ExtDeMarkerPeriod,0,y);

muchas gracias. ¡¡¡funciona!!!

 

¿Alguna idea de por qué no se actualiza?

Hola. Pido disculpas por no mostrar el gráfico ni cargar el indi. Supongo que no se me permite publicar archivos todavía. Lo siento así que tengo que cortar y pegar el código en su lugar.

Este indi llamado QQE_Alert_MTF_v5a es un QQE MTF. No se actualiza. He probado el mod Period () para que se actualice pero no ha habido suerte. Si lo pones en un gráfico de 1 min y pones el indicador para 15 minutos, lo dejas correr un rato y ves lo que pasa.

He tenido que acortar el indi porque he superado el límite de caracteres del FXTSDMB, en este caso. La segunda parte está en la siguiente respuesta.

Pido disculpas por haberlo hecho difícil. Gracias.

QQE_Alert_MTF_v5a

#property indicador_separar_ventana

#property indicator_levelcolor Red

#property indicator_levelstyle 0

#propiedad indicator_buffers 3

#property indicator_color1 Azul

#propiedad indicator_color2 CLR_NONE

#property indicator_color3 Negro

#propiedad indicator_width1 2

#propiedad indicador_nivel1 50.0

double g_ibuf_76[];

double g_ibuf_80[];

double g_ibuf_84[];

double g_ibuf_88[];

double g_ibuf_92[];

double g_ibuf_96[];

double g_ibuf_100[];

double g_ibuf_104[];

extern int Smoothing = 5;

extern int TimeFrame = 0;

extern string ALERTS = "------------------------------------------------------";

extern bool CrossFiftyAlert = FALSE;

extern bool CrossFiftyEmail = FALSE;

extern bool CrossLineAlert = FALSE;

extern bool CrossLineEmail = FALSE;

extern bool BothAlert = FALSE

extern bool BothEmail = FALSE;

extern string MESSAGES = "------------------------------------------------------";

extern string FiftyUpMessage = "QQE cruzó la línea 50 hacia arriba !!!";

extern string FiftyDownMessage = "¡¡¡QQE cruzó la línea 50 hacia abajo !!!";

extern string QQECrossUpMessage = "QQE cruzó la línea hacia arriba !!!";

extern string QQECrossDownMessage = "¡¡¡Líneas QQE cruzadas hacia ABAJO !!!";

extern string BothUpMessage = "¡¡¡Las líneas QQE están cruzadas y la línea 50 rota hacia arriba !!!";

extern string BothDownMessage = "¡¡¡Las líneas QQE están cruzadas y la línea 50 rota hacia abajo !!!";

extern string SONIDOS = "------------------------------------------------------";

extern string FiftyUpSound = "alert.wav";

extern string FiftyDownSound = "alert.wav";

extern string QQECrossUpSound = "alert.wav";

extern string QQECrossDownSound = "alert.wav";

extern string BothUpSound = "alert.wav";

extern string BothDownSound = "alert.wav";

extern string DOT_VISIBILITY = "------------------------------------------------------";

extern bool FiftyUpDot = FALSE;

extern bool FiftyDownDot = FALSE;

extern bool QQECrossUpDot = FALSE;

extern bool QQECrossDownDot = FALSE;

extern bool BothUpDot = FALSE

extern bool BothDownDot = FALSE;

extern string DOT_COLORS = "------------------------------------------------------";

extern color FiftyUpColor = DodgerBlue;

extern color FiftyDownColor = Crimson;

extern color QQECrossUpColor = Teal;

extern color QQECrossDownColor = Rosa;

color externo BothUpColor = Azul

extern color BothDownColor = Rojo;

extern string DOT_DISTANCE = "------------------------------------------------------";

extern int Distancia = 30;

int gi_unused_336 = 0;

int gi_unused_340 = 0;

int gi_344 = 0;

int init() {

cadena ls_unused_8;

cadena ls_20;

IndicatorBuffers(8);

SetIndexBuffer(0, g_ibuf_80);

SetIndexBuffer(1, g_ibuf_84);

SetIndexBuffer(2, g_ibuf_88);

SetIndexBuffer(3, g_ibuf_76);

SetIndexBuffer(4, g_ibuf_92);

SetIndexBuffer(5, g_ibuf_96);

SetIndexBuffer(6, g_ibuf_100);

SetIndexBuffer(7, g_ibuf_104);

switch (TimeFrame) {

caso 1:

ls_20 = "Period_M1";

break;

caso 5: ls_20 = "Period_M5"; break

ls_20 = "Period_M5";

break;

caso 15:

ls_20 = "Period_M15";

break;

caso 30:

ls_20 = "Period_M30";

break;

caso 60:

ls_20 = "Period_H1";

break;

caso 240:

ls_20 = "Period_H4";

break;

caso 1440:

ls_20 = "Period_D1";

break;

caso 10080:

ls_20 = "Period_W1";

break;

caso 43200:

ls_20 = "Period_MN1";

break;

por defecto:

ls_20 = "Current Timeframe";

}

MathSrand(TimeLocal());

string ls_0 = "QQE " + ls_20;

IndicatorShortName(ls_0);

return (0);

}

int deinit() {

cadena l_nombre_4;

for (int li_0 = 32768; li_0 > 0; li_0--) {

l_nombre_4 = "QQE-" + li_0;

ObjectDelete(l_name_4);

}

return (0);

}

int inicio() {

int lia_20[];

double ld_28;

double ld_36;

int li_44;

cadena l_nombre_48;

int li_0 = IndicadorContado();

si (li_0 < 0) devuelve (-1);

si (li_0 > 0) li_0--;

int li_24 = Bares - li_0;

int li_unused_12 = Suavizado;

ArrayCopySeries(lia_20, 5, Symbol(), TimeFrame);

int li_4 = 0;

int li_8 = 0;

while (li_4 < li_24) {

if (Time[li_4] < lia_20[li_8]) li_8++;

g_ibuf_76[li_4] = iRSI(NULL, TimeFrame, 14, PRICE_CLOSE, li_8);

li_4++;

}

li_4 = 0;

li_8 = 0;

while (li_4 < li_24) {

if (Time[li_4] < lia_20[li_8]) li_8++;

g_ibuf_80[li_8] = iMAOnArray(g_ibuf_76, 0, Smoothing, 0, MODE_EMA, li_8);

li_4++;

}

for (li_4 = 0; li_4 < li_24; li_4++) {

ld_28 = MathMax(g_ibuf_80[li_4 + 1], g_ibuf_80[li_4]);

ld_36 = MathMin(g_ibuf_80[li_4 + 1], g_ibuf_80[li_4]);

g_ibuf_96[li_4] = ld_28 - ld_36;

}

for (li_4 = 0; li_4 < li_24; li_4++) g_ibuf_92[li_4] = iMAOnArray(g_ibuf_96, 0, 27, 0, MODE_EMA, li_4);

for (li_4 = 0; li_4 < li_24; li_4++) g_ibuf_100[li_4] = 2,618 * iMAOnArray(g_ibuf_92, 0, 27, 0, MODE_EMA, li_4);

for (li_4 = li_24; li_4 >= 0; li_4--) {

if (g_ibuf_80[li_4] == g_ibuf_84[li_4 + 1]) g_ibuf_84[li_4] = g_ibuf_80[li_4];

si no {

if (g_ibuf_80[li_4 + 1] < g_ibuf_84[li_4 + 1] && g_ibuf_80[li_4] < g_ibuf_84[li_4 + 1]) g_ibuf_84[li_4] = MathMin(g_ibuf_84[li_4 + 1], g_ibuf_80[li_4] + g_ibuf_100[li_4]);

si no {

if (g_ibuf_80[li_4 + 1] > g_ibuf_84[li_4 + 1] && g_ibuf_80[li_4] > g_ibuf_84[li_4 + 1]) g_ibuf_84[li_4] = MathMax(g_ibuf_84[li_4 + 1], g_ibuf_80[li_4] - g_ibuf_100[li_4]);

si no {

si (g_ibuf_80[li_4] > g_ibuf_84[li_4 + 1]) g_ibuf_84[li_4] = g_ibuf_80[li_4] - g_ibuf_100[li_4];

si no g_ibuf_84[li_4] = g_ibuf_80[li_4] + g_ibuf_100[li_4];

}

}

}

}

for (li_4 = 0; li_4 < li_24; li_4++) g_ibuf_104[li_4] = 4,236 * iMAOnArray(g_ibuf_92, 0, 27, 0, MODE_EMA, li_4);

for (li_4 = li_24; li_4 >= 0; li_4--) {

if (g_ibuf_80[li_4] == g_ibuf_88[li_4 + 1]) g_ibuf_88[li_4] = g_ibuf_80[li_4];

si no {

if (g_ibuf_80[li_4 + 1] < g_ibuf_88[li_4 + 1] && g_ibuf_80[li_4] < g_ibuf_88[li_4 + 1]) g_ibuf_88[li_4] = MathMin(g_ibuf_88[li_4 + 1], g_ibuf_80[li_4] + g_ibuf_104[li_4]);

si no {

if (g_ibuf_80[li_4 + 1] > g_ibuf_88[li_4 + 1] && g_ibuf_80[li_4] > g_ibuf_88[li_4 + 1]) g_ibuf_88[li_4] = MathMax(g_ibuf_88[li_4 + 1], g_ibuf_80[li_4] - g_ibuf_104[li_4]);

si no {

si (g_ibuf_80[li_4] > g_ibuf_88[li_4 + 1]) g_ibuf_88[li_4] = g_ibuf_80[li_4] - g_ibuf_104[li_4];

si no g_ibuf_88[li_4] = g_ibuf_80[li_4] + g_ibuf_104[li_4];

}

}

}

}

if (gi_344 == Time[0]) return (0);

for (li_4 = li_24 - 1; li_4 >= 0; li_4--) {

if (g_ibuf_80[li_4 + 1] > 50,0 && g_ibuf_80[li_4 + 2] <= 50,0 && FiftyUpDot) {

li_44 = MathRand() + 1;

l_name_48 = "QQE-" + li_44;

ObjectCreate(l_name_48, OBJ_ARROW, 0, Time[li_4], Low[li_4] - Distance * Point);

ObjectSet(l_name_48, OBJPROP_COLOR, FiftyUpColor);

ObjectSet(l_name_48, OBJPROP_ARROWCODE, 108);