¿Cómo codificar? - página 157

 

¡gracias wolfe!

gracias por tu respuesta y por el libro! es nuevo para mi asi que voy a profundizar en el y aprender un poco mas. entonces publicare la proxima version de mi ea o otra pregunta si me encuentro con un bloqueo en el camino.

Eric

 

Fijación de la hora de un objeto

Me preguntaba si alguien podría decirme cómo fijar el tiempo de un objeto (como una flecha) para que cuando cambie el TF del gráfico la flecha permanezca en el tiempo original. Algo similar a dibujar una línea vertical y luego cambiar el TF del gráfico. Gracias.

 

cómo cambiar o eliminar.00

double HiPrice2 = iHigh(NULL,NULL,1);

double LoPrice2 = iLow (NULL,NULL,1);

double Rangohilo= (PrecioAlto2-PrecioBajo2);

if (Digits < 4) Rangehilo = Rangehilo * 100; else Rangehilo = Rangehilo * 10000;

Comentario("\n", "Rango: ",DoubleToStr(Rangehilo,2)+" pip","\n");

Intento crear un rango PIP entre el alto y el bajo, pero se muestra así

->> Rango: 37.00 pip

Mi pregunta es, ¿cómo eliminar .00? para que sólo muestre 37pip?

gracias

 

NormalizarDoble(var1,0);

Lux

PD: Acabo de ver tu código: DoubleToStr(Rangehilo,0) - cambia el 2 por el 0

 
luxinterior:
NormalizeDouble(var1,0);

Lux

PD: Acabo de ver tu código: DoubleToStr(Rangehilo,0) - cambia el 2 a 0

Ohohhh, sólo un pequeño error... ¡gracias luxinterior!

 

añadir bandas stdev

Hola, lo siento por la pregunta estúpida, pero pls ayudarme aquí:

Si usted tiene cualquier indicador que consiste en 1 línea en la ventana del gráfico, y desea agregar bandas de desviación estándar a esa línea, como las bandas de Bollinger. ¿Cómo se hace esto?

digamos que tu buffer que traza tu indicador original se llama abc

así que primero declaras esto

extern int BandsPeriod=20;

extern int BandsShift=0;

extern double BandsDeviations=2.0;

1) cambias

#propiedad indicator_buffers 1 (1 se convierte en 3)

2)

SetIndexBuffer(0,abc);

SetIndexStyle(0,DRAW_LINE);

y añade

SetIndexBuffer(1,UpperBuffer);

SetIndexStyle(1,DRAW_LINE);

SetIndexBuffer(2,LowerBuffer);

SetIndexStyle(2,DRAW_LINE);

SetIndexDrawBegin(0,BandsPeriod+BandsShift);

SetIndexDrawBegin(1,BandsPeriod+BandsShift);

3) añades el resto del código de las bandas de bollinger en el bucle de inicialización

int inicio()

{

int i,k,counted_bars=IndicatorCounted();

doble desviación,suma,oldval,newres;

//----

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

//---- cero inicial

if(barras_contadas<1)

y así sucesivamente....

4) ¿pero cómo diablos se reemplaza el buffer llamado MovingBuffer en el código original de bands.mq4 por el nuevo buffer de tu indicador, llamado "abc"?

¿Cuál es la mejor manera de hacer esto?

¿Debo tratar de meter el código de mi indicador en el código de bands.mq4 o al revés?

He adjuntado un trozo de código bien conocido llamado bands.mq4 para que puedas ver con qué estoy trabajando.

de nuevo, lo siento por mi ignorancia de codificación

¿Tal vez alguien sabe de un 'tutorial para añadir bandas stdev'? Eso sería lo que necesito ahora mismo. Thx

Archivos adjuntos:
bands.mq4  3 kb
 
 

Codificación para un EA

Hola a todos,

Me gustaría crear una codificación que impida que un EA opere si ya ha tenido una operación rentable en la sesión actual.

Tengo un número de EA que construí que me permite elegir la hora de apertura y la hora de cierre para el comercio de cada día. El EA también sólo hace algo en la apertura de cada nueva barra. Por lo tanto, si tengo una operación en marcha y se cierra porque ha alcanzado mi stop loss o mi take profit, el EA esperará hasta la apertura de la siguiente barra antes de abrir una nueva operación.

Por ejemplo, tengo el AE configurado para operar entre las 6:00 AM y las 2:00 PM en un gráfico de una hora. A las 6:00 AM se abre una operación. A las 9:23, mi take profit es alcanzado y la operación es cerrada. A las 10:00 AM se abrirá una nueva operación que permanecerá abierta hasta que se alcance el nuevo stop loss o take profit, o hasta que se alcancen las 2:00 PM, momento en el que la operación se cierra y se opera por el resto del día.

Lo que me gustaría que hiciera el EA no es sólo reconocer la hora del día, sino también reconocer si ya he tenido una operación ganadora durante la sesión de negociación. Por lo tanto, en el ejemplo anterior, aunque todavía esté dentro del periodo de negociación del día, el EA no abriría una nueva operación a las 10:00 AM porque ya se ha obtenido un beneficio. Por otro lado, si fuera mi stop loss el que fuera alcanzado en el ejemplo anterior, el EA abriría una nueva operación a las 10:00 AM porque aún no se ha obtenido ningún beneficio.

Estoy pensando que tendría que usar la función "OrderSelect" junto con el parámetro "Mode_History" para mirar las operaciones cerradas anteriormente y luego comparar el precio de apertura con el precio de cierre de la orden para determinar si se realizó una ganancia o una pérdida. ¿Suena bien? Siendo un novato en la programación, no estoy seguro de que sea la mejor manera de enfocar el problema y si lo es, me llevará mucho, mucho tiempo conseguirlo en el formato correcto para que funcione correctamente.

Si alguien pudiera ayudarme o, al menos, darme alguna idea sobre cómo abordar este problema, se lo agradecería. Si mi ejemplo no tiene ningún sentido, hacédmelo saber e intentaré explicarlo mejor.

Gracias de antemano por cualquier ayuda que se ofrezca.

Ron

 

Comprobación de las pérdidas de pedidos...

En este sitio, en este enlace https://www.mql5.com/en/forum/176053/page25 hay una copia del DIN_Kukus_EA_V2.6. Si ves el contenido del EA, encontrarás una función que comprueba las pérdidas de órdenes en tu historial de órdenes, tal y como has descrito hacer por ti mismo. Puede utilizar este ejemplo de trabajo de cómo extraer el número de operaciones exitosas de su historial de órdenes. Puedes modificarlo para extraer el historial de un periodo de tiempo concreto también, pero espero que esto te ayude a ver cómo lograr lo que te propones hacer por ti mismo...

 

queriendo utilizar los resultados de los indicadores en el EA

Hola a todos,

El indicador Gliding_Channels pone los datos del canal actual en el área de comentarios de la ventana de datos. Indica la profundidad vertical del canal en la barra actual, el ángulo del canal (tanto positivo como negativo), el límite alto y el límite bajo. Quiero ver esos datos, sin embargo entran en conflicto con los datos que mi EA muestra en el área de comentarios haciendo que mis comentarios parpadeen.

Intenté añadir un SetIndexBuffer para cada uno de los cuatro datos en el indicador para poder referenciarlos en mi EA usando iCustom. Sólo pude traer uno de los cuatro valores a los comentarios de mi EA de esa manera. (También seguí teniendo el problema de parpadeo).

¿Podría alguien mostrarme la forma correcta de acceder a esos cuatro resultados del indicador en mi EA?

En mi EA, llamaré a estos cuatro valores "profundidad, ángulo, limitHI y limitLO".

Archivos adjuntos:
Razón de la queja: