Ayuda a la codificación - página 63

 

De esta manera se comprueban sólo las órdenes con el número mágico especificado (y el símbolo)

dasio:
De esta manera compruebo las órdenes que no se abren con el número mágico especificado, ¿verdad? Necesito comprobar la orden con el símbolo y el número mágico específicos. No sé si es importante pero he encontrado el error en el probador de estrategias
 
drofwarc:
Hola a todos,

Sé que es posible hacer que un EA haga una pausa entre operaciones, ya sea usando Sleep() o registrando una marca de tiempo y esperando n segundos después de la marca de tiempo antes de permitir otra señal.

Pero, ¿es posible hacer lo mismo con un indicador?

Por ejemplo, me gustaría poder hacer que un indicador que traza flechas en el cruce de dos medias móviles se salte n barras después de un cruce antes de trazar otra flecha. En otras palabras, si se produce otro cruce antes de que hayan pasado n barras, el indicador ignoraría el cruce y no trazaría una flecha.

He buscado mucho para encontrar un indicador que haga esto pero no he tenido suerte.

¿Podría alguien publicar un indicador que ya tenga esta característica para que pueda estudiar el código? O quizás proporcionarme un ejemplo de código que funcione para esta propuesta para que pueda intentar implementarlo.

Muchas gracias,

drofwarc

¡BUMP!

Hola mladen, sé que estás ocupado con tantas peticiones en todo el foro. Pero te agradecería mucho que al menos me orientaras en la dirección de una solución de código para esto.

Muchas gracias de antemano.

drofwarc

 

drofwarc

Lafunción Sleep() no funciona en los indicadores por lo que puedes olvidarte del temporizador de los indicadores (si dependes de los ticks no puedes obtener un tiempo exacto). En cuanto al conteo : no hay problema de codificación. Si proporcionas algún ejemplo en el que hayas trabajado se podría mostrar cómo contar en casos como ese

drofwarc:
¡BUMP!

Hola mladen, sé que estás ocupado con tantas peticiones en todo el foro. Pero te agradecería mucho que al menos me orientaras en la dirección de una solución de codificación para esto.

Muchas gracias de antemano.

drofwarc
 
mladen:
drofwarc La función Sleep() no funciona en los indicadores, así que puedes olvidarte del temporizador de los indicadores (si dependes de los ticks no puedes obtener un tiempo exacto). En cuanto al conteo : no hay problema de codificación. Si proporcionas algún ejemplo en el que hayas trabajado se podría mostrar cómo contar en casos así

Hola mladen,

Gracias por responder. Abajo está el código para un indicador simple que traza una flecha cada vez que el precio se invierte. Lo que quiero hacer es lo siguiente: después de que el indicador ha encontrado una configuración válida, debe mirar hacia atrás n barras (con n es ajustable en la configuración) para determinar si una señal válida estaba presente.

Si una señal válida está presente dentro del período de retroceso, no trazará una nueva flecha basada en la configuración válida actual.

Si una señal válida no está presente dentro del período de retroceso, se trazará una nueva flecha basada en la configuración válida actual.

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Red

#property indicator_color2 DodgerBlue

double UpArrowBuffer[];

double DownArrowBuffer[];

///////////Arrows

extern int ArrowSize = 1;

extern int Offset = 100;

extern color UpColor = White;

extern color DnColor = White;

extern color NoSignalColor = DarkGray;

extern int myWingDing1 = 233 ;

extern int myWingDing2 = 234 ;

double Poin;

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

//| Custom indicator initialization function |

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

int init() {

//---- indicator buffers mapping

SetIndexBuffer(0,UpArrowBuffer);

SetIndexBuffer(1,DownArrowBuffer);

//---- drawing settings

SetIndexStyle(0,DRAW_ARROW,0,ArrowSize, UpColor);

SetIndexArrow(0,myWingDing1);

SetIndexStyle(1,DRAW_ARROW,0,ArrowSize, DnColor);

SetIndexArrow(1,myWingDing2);

Poin = Point;

if ((Point == 0.00001) || (Point == 0.001)) Poin *= 10;

return(0);

}

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

//| Custom indicator deinitialization function |

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

int deinit() {

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start() {

int limit;

int counted_bars=IndicatorCounted();

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

for(int i=limit; i>=0; i--)

{

if (Close Open)

{

UpArrowBuffer = Low - Offset*Point;

}

if (Close > Open && Close < Open)

{

DownArrowBuffer = High + Offset*Point;

}

}

return(0);

}

//+------------------------------------------------------------------+*/

Espero que esto sea claro .

Saludos cordiales,

drofwarc

 

ayuda

¿alguien puede ayudarme con esto?

quiero usar dos "VoltyChannel_Stop_v2.1_TRO_MODIFIED_VERSION+.mq4" en un gráfico con diferentes ajustes pero

cuando coloco dos, sólo se muestra un cuadro de precios. ¿hay alguna manera de poder mostrar ambos cuadros de precios?

 

drofwarc

Se adjunta un indicador modificado que puede contar barras desde la última señal del mismo tipo antes de permitir que se muestre una nueva señal. Aquí hay un ejemplo con 15 barras de distancia establecido :

drofwarc:
Hola mladen,

Gracias por responder. Abajo está el código para un indicador simple que traza una flecha cada vez que el precio se invierte. Lo que quiero hacer es lo siguiente: después de que el indicador ha encontrado una configuración válida, debe mirar hacia atrás n barras (con n siendo ajustable en la configuración) para determinar si una señal válida estaba presente.

Si una señal válida está presente dentro del período de retroceso, no trazará una nueva flecha basada en la configuración válida actual.

Si una señal válida no está presente dentro del período de retroceso, se trazará una nueva flecha basada en la configuración válida actual.

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Red

#property indicator_color2 DodgerBlue

double UpArrowBuffer[];

double DownArrowBuffer[];

///////////Arrows

extern int ArrowSize = 1;

extern int Offset = 100;

extern color UpColor = White;

extern color DnColor = White;

extern color NoSignalColor = DarkGray;

extern int myWingDing1 = 233 ;

extern int myWingDing2 = 234 ;

double Poin;

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

//| Custom indicator initialization function |

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

int init() {

//---- indicator buffers mapping

SetIndexBuffer(0,UpArrowBuffer);

SetIndexBuffer(1,DownArrowBuffer);

//---- drawing settings

SetIndexStyle(0,DRAW_ARROW,0,ArrowSize, UpColor);

SetIndexArrow(0,myWingDing1);

SetIndexStyle(1,DRAW_ARROW,0,ArrowSize, DnColor);

SetIndexArrow(1,myWingDing2);

Poin = Point;

if ((Point == 0.00001) || (Point == 0.001)) Poin *= 10;

return(0);

}

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

//| Custom indicator deinitialization function |

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

int deinit() {

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start() {

int limit;

int counted_bars=IndicatorCounted();

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

for(int i=limit; i>=0; i--)

{

if (Close Open)

{

UpArrowBuffer = Low - Offset*Point;

}

if (Close > Open && Close < Open)

{

DownArrowBuffer = High + Offset*Point;

}

}

return(0);

}

//+------------------------------------------------------------------+*/

Espero que esto sea claro .

Saludos cordiales,

drofwarc
Archivos adjuntos:
test.gif  41 kb
_test.mq4  3 kb
 
ZANKY:
¿alguien puede ayudarme con esto?

Quiero usar dos "VoltyChannel_Stop_v2.1_TRO_MODIFIED_VERSION+.mq4" en un gráfico con diferente configuración pero

cuando coloco dos, sólo se muestra un cuadro de precios. ¿hay alguna manera de poder mostrar ambos cuadros de precios?

Solo hay que cambiar la línea 85 con esto y compilarlo, debería funcionar como un tipo de número mágico para que mientras se cambie cualquiera de las entradas el segundo cuadro de precios también se cargue.

ftShortName = "tbb "+ symbol + tChartPeriod +MA_Length + ATR_Length + Kv + MA_Mode +MoneyRisk + MA_Price;

 

Gracias

cja

¡Muchas gracias! Funciona perfectamente.

 

Hola Mladen. No sé mucho inglés, lo siento.

Por favor, ayúdame a hacer estos indicadores cuando la línea sube o baja en un color diferente. Gracias.

Archivos adjuntos:
1234.gif  23 kb
rmi.mq4  5 kb
 
mladen:
drofwarc

Se adjunta un indicador modificado que puede contar barras desde la última señal del mismo tipo antes de permitir que se muestre una nueva señal. Aquí hay un ejemplo con 15 barras de distancia establecido :

Hola mladen,

Gracias. Es exactamente lo que estaba buscando.

¡Lo mejor de la temporada de vacaciones para usted!

drofwarc