¿Cómo codificar? - página 225

 

novato...

¡en primer lugar feliz año nuevo a todos!

entonces gracias por todo el conocimiento que está compartiendo en este foro

Me estoy acercando a mql4, no soy un codificador.

Agradecería un poco de apoyo para escribir esta estrategia tan sencilla:

entradas largas:

(ask-bid) <= Z_pips /* spread check */

y

(bollinger_up-bollinger_down) <= K_pips /* comprobación de volatilidad */

y

ask < (bollinger_down + X_pips) /* comprobación del precio */

y

ma_Qperiods >= ma_Wperiods /* comprobación de tendencia */

salidas:

Trailing SL = 15 pips

¿Alguien tiene tiempo para darme una oportunidad?

Gracias de antemano

neeverr

 

necesito ayuda con mi indicador nr7

hola

estoy codificando un indicador para nr7.

el algo es

-calcular el rango y almacenarlo en el array

- si el rango actual <= últimos 7 rangos, entonces la barra actual es nr7

pero el indicador parece estar marcando cada barra como nr7. no se donde he cometido un error.

la captura de pantalla está aquí

2010-01-18_0531

Archivos adjuntos:
nr7.mq4  3 kb
 

advancedsar EA

Hola amigos,

Necesito toda su ayuda, si alguno de ustedes puede ayudarme a modificar un EA que obtuve de otro hilo, pero desafortunadamente no tengo su archivo mql.

De la lógica original de este EA, quiero hacer un poco de modificación como a continuación:

- Este EA sólo trabaja en 4 dígitos, ayudar a mejorar que pueden trabajar en 5 dígitos también.

- Este EA trabajando de acuerdo con el sistema de martingala común, necesito añadir más modo de operación 2X methode,

1. Si el EA abre la orden en el último comercio, y golpean TP, entonces EA se iniciará un nuevo ciclo y el comercio abierto como el mismo orden que la última orden. Ejemplo: si la última operación es una orden de compra, y se alcanza el TP, entonces el EA seguirá abriendo la operación de compra a menos que se alcance el SL y el EA cambiará la orden a una orden de venta de dirección opuesta. lo mismo en la orden de venta, siempre y cuando se obtengan beneficios en la orden de venta, entonces se continuará abriendo la orden de venta con un nuevo ciclo hasta que se alcance el SL y se cambie la dirección a la orden de compra.

2. Segundo modo de operación. El EA trabaja en una secuencia lógica de compra-venta-compra-venta-compra, este modo está diseñado para el mercado que varía sin tendencia.

se agradecerá toda su ayuda.

Gracias

yoha

Archivos adjuntos:
 

¿alguna idea de por qué este EA no hace pedidos?

Hola chicos, ha sido un tiempo desde que estoy de vuelta en este juego .... de todos modos acaba de empezar a refrescar en mql....lot ha cambiado aquí.

básicamente quiero colocar órdenes de compra y venta pendientes a 10 pips de la apertura de una barra en ambos lados. El Takeprofit esta a 15 pips de las ordenes pendientes.

el problema es que las ordenes nunca se colocan...

int counted_bars = IndicatorCounted();

int pos = Bars - counted_bars + 1;

if (counted_bars == 0) pos = Bars - 10;

if (counted_bars>0) counted_bars--;

double currentPrice = iClose("EURUSD",PERIOD_M1,0);

while(pos>0)

{

//Putting Pending LongOrder

Print("Long...");

OrderSend("EURUSD",OP_BUYLIMIT,1,Open+10*Point,3,0,Open+25*Point,"Pending Long Order", 888, 0, Green);

Print("Short...");

//Putting Pending ShortOrder

OrderSend("EURUSD",OP_SELLSTOP,1,Open-10*Point,3,0,Open-25*Point,"Pending Short Order", 999, 0, Red);

pos--;

}
 

No estoy seguro de lo que las barras contadas tiene que ver con un EA? ¿No está diseñado para su uso en los indicadores?

Creo que si quitaste esa parte podrías estar bien.

 

variable datetime

Hola,

Quiero escribir los datos actuales y la hora

extern int starthour = 8;

extern int startminute = 0;

[/CODE]

in my variable

[CODE]

datetime starttime= 0;

¿Cómo puedo escribir esto?

Pero como puedo escribir esto

starttime = Fecha del día + starthour + startminute;

 

No estoy muy seguro de lo que estás preguntando, pero supongo que estás tratando de incrementar una fecha en un número de horas y minutos. Si miras el archivo de ayuda de TimeCurrent() verás que devuelve la hora en segundos. Así que lógicamente puedes deducir entonces que para añadir minutos se multiplicaría por 60 y para las horas sería por 3600 (60*60).

Así que tendrías algo como...

TimeCurrent()+(starthour*3600)+(startmin*60);

Sólo tienes que sustituir TimeCurrent() por la hora que hayas designado como 'startdate'.

Lux

 
sunshineh:
Hola,

Quiero escribir los datos reales y la hora

extern int starthour = 8;

extern int startminute = 0;

[/CODE]

in my variable

[CODE]

datetime starttime= 0;

¿Cómo puedo escribir esto?

Pero cómo puedo escribir esto:

starttime = Fecha del día + starthour + startminute;

Usa la función StrToTime. Si no le pasas el día a esta función sino sólo la hora y los minutos, utilizará el día actual. Así

datetime startTime = StrToTime( StartHour+": "+ StartMinute);

Donde StartHour y StartMinute son cadenas:

string HoraInicio = 8;

string InicioMinuto = 0;

 

¡Muchas gracias!

También tengo otra pregunta.

¿Cómo puedo codificar si quiero que mi EA sólo compre o venda al precio de cierre de la vela?

Pensé que puedo escribir

if(!Close[0]) return;

pero no funciona.

 
sunshineh:
¡¡Muchas gracias!!

También tengo otra pregunta.

¿Cómo puedo codificarla, si quiero que mi EA sólo compre o venda al precio de cierre de la vela?

Pensé que podía escribir

if(!Close[0]) return;
pero no funciona.

Necesitas definir una variable digamos que será

int barsNumber = 0;

en la sección global (por ejemplo, justo antes de la función init)

y luego en la función de inicio donde tienes tu parte con la función sendOrder necesitas comprobar esta condición

if(Bars>número de barras)

y si es verdadera entonces establecer nuestra variable barsNumber a Bars

barsNumber = Bars;

Así que todo quedaría así

#algunas propiedades

int número de barras = 0;

int init()

{

}

int deinint()

{

}

int inicio()

{

if(Bares>número de barras)

{

SendOrder(...);

barsNumber = Bars;

}

}

Razón de la queja: