¿Cómo codificar? - página 200

 

¿cómo es posible que en un simple cálculo se redondee un resultado?

 
dr.house7:
¿cómo es posible en un cálculo simple redondear a un resultado?

Depende de lo que quieras hacer:

double MathRound( double valor)

Devuelve el valor redondeado al entero más cercano del valor numérico especificado.

double MathFloor( double x)

La función MathFloor devuelve un valor numérico que representa el mayor entero que es menor o igual que x.

double MathCeil( double x)

La función MathCeil devuelve un valor numérico que representa el menor número entero que es mayor o igual que x.

double NormalizeDouble( double valor, int dígitos)

Redondea el valor de punto flotante a la precisión dada. Devuelve el valor normalizado del tipo double.

 

Hola,

Me gustaría que me ayudaran a programar una entrada adicional a este ea.

Es un sistema básico de grid/mart que coloca órdenes pendientes por encima y por debajo del precio inicial en incrementos iguales donde el tp para las órdenes de compra es el mismo valor que el sl para las órdenes de venta y viceversa.

Por lo que he podido averiguar, actualmente calcula el tp/sl como (4 * incremento de pips) desde el precio al que se inicia el ea.

Me gustaría una entrada que me permitiera ajustar el tp/sl por X número de pips.

es decir (4 x incremento de pips) + X,

gracias por su ayuda.

Archivos adjuntos:
mgrid_ea.mq4  10 kb
 

Se busca ayuda para esperar a las barras x

Hola a todos

cómo se puede programar lo siguiente :

si se cierra la última Orden, esperar x-Bars para abrir una nueva Orden ?

Gracias.

Saludos

derumuro

 

Contar barras

Estoy tratando de hacer que mi EA cuente el número de barras dentro de un período determinado (es decir, las últimas 20 barras) que cerraron al alza y a la baja. Se me ocurrió esta sentencia while pero no funciona, siempre imprime Bull Bars:0 Bear Bars:20. ¿Alguna idea de lo que estoy haciendo mal?

// Contar barras alcistas y bajistas

double open, close;

int barras_alcistas=0, barras_bajistas=0;

int bar_count=20; // Barras a contar

if(Volume[0] == 1){ // Sólo comprueba la apertura de la nueva barra

int barras=0;

while(bars < bar_count){

open=iOpen(NULL,0,bars);

close=iOpen(NULL,0,bars);

if(open<close){bull_bars++;} else {bear_bars++;}

barras++;

}

Print("Barras alcistas: ", bull_bars, " Barras bajistas: ", bear_bars);

}

 

err, lo he resuelto. He cambiado mi while por este y funciona

while(bar_count > i){

open=iOpen(NULL,0,i);

close=iClose(NULL,0,i);

if(open<close){bull_bars++;}

if(open>close){bear_bars++;}

i++;

}

 

Necesito ayuda para escribir el ea - Factor de tiempo para cerrar la orden

si la orden tuvo lugar, take profit=100pips & stop lost=100pips esta escrito en el ea,

me gustaria escribir el factor de tiempo additonal (control) para cerrar la orden como abajo:-

dice que la orden es de compra

-----------------------------

1) si en la primera hora, un precio repentino de 80 pips sucede en 10 minutos dentro de esta hora, cierre la orden;

2) si en la segunda hora, un precio repentino de 70 pips sucede en 10 minutos dentro de esta hora, cierre la orden;

3) si en la tercera hora, un precio repentino de 60 pips sucede en 10 minutos dentro de esta hora, cierre la orden;

4) si en la 4ª hora, el beneficio es de 50 pips, cierre la orden;

5) si en la primera hora, un precio repentino de 60 pips ocurre en 10 minutos dentro de esta hora, cierre la orden;

6) si en la segunda hora, una repentina caída del precio de 70 pips ocurre en 10 minutos dentro de esta hora, cierre la orden;

7) si en la tercera hora, una repentina caída del precio de 80 pips ocurre en 10 minutos dentro de esta hora, cierre la orden;

8) si en la 4ª hora, pierde a 50 pips, cerrar la orden;

¿Puede alguien ayudarme a escribir esto? Tengo problemas para escribir el factor tiempo en la orden de cierre.

Gracias

Rgds,

 

Hola Chicos,

Tengo una pregunta para ustedes....¿Saben cuál es el código para poner en un Asesor Experto para cerrar todas las operaciones abiertas a cierta hora?...por ejemplo tengo 5 operaciones abiertas y a las 16 GMT el EA debería cerrar todas las operaciones abiertas y no debería abrir nuevas operaciones hasta el día siguiente.

¡Gracias por su ayuda!

 

Hola mauro269,

if(Hour() = 16) cerrar Orden ( GMT = 16 +/- Servertime, ejemplo 16 +1 = 17) o ver https://www.mql5.com/en/code/8075

y

if(Hour() = 8) abrir nueva Orden

Aquí hay más información: Documentación MQL4

Saludos

derumuro

 

Al tocar en lugar de al cerrar

BBands_stop_v2 y ###Gann_HiLo_Activator_v2### - ¿puede alguien mejorarlos por favor?

Hay pocos indicadores que cambien su gráfico al tocarlo, sino que la mayoría esperan a que el precio se cierre más allá de su gráfico actual.

Las excepciones son -

El SAR Parabólico es uno.

Bat ATR v2 es uno en la configuración correcta (usando CloseBase=false).

Para mí esto significa que la mayoría de los indicadores son menos fiables.

Cuanto más grande es el marco de tiempo, mayor es el riesgo. Si usted espera una señal clara es a menudo en el otro extremo de una ruptura. Si usted lo toma - es a menudo la peor entrada.

¿Puede alguien modificar BBands_stop_v2 y ###Gann_HiLo_Activator_v2### para que tengan una configuración extra como la que tiene Bats_v2 (usando CloseBase=false), para que cambien el gráfico al tocarlo, por favor?

Los dos cambios anteriores serían un buen comienzo - pero la lista de indicadores que creo que no tienen esta capacidad es enorme

All_Bands_Stop

PriceChannel_Stop_v6.

Todas las envolventes de tendencia.

TrendEnvelopes_v2.

MT4-LevelStop-Reverse-vB0-4.

#MTF_BBands_Stop_v1

ATRStops_v1.1_MTF

ATRStops_v1.1

mtfatrstops

BrainTrend1stopline

BrainTrend2Stopline

ChandelierStops V1

VolitilityPivot

VoltyChannel_Stop_v2

delta-stop

hi-lo_mod

MTF_BrainTrend1

NRTRATRStops

VoltiCanales

etc

etc.....