¿Cómo codificar? - página 68

 

Altura de la barra anterior

Hola,

Por favor, puede dar el código de la barra anterior.

Esto se puede utilizar en el EA para limitar la colocación de las órdenes cuando la barra anterior es más de cierta altura.

Saludos,

SIDDESH

 

Por favor, corregir mi código (EMA básica, STOC etc.)

Hola... soy nuevo aquí y nuevo en la codificación de mql4... he construido algunos códigos basados en condiciones específicas... espero que ustedes puedan ayudarme a corregir si hay algún error...

ok... empecemos

1) EMA CRUZADA

COMPRAR si:

- EMA 5 > EMA 18

- ambas líneas son ascendentes

- diferencia entre el precio actual y el anterior para EMA5 >= 10pips

actualmente estoy usando esto:

double EMA5 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, 0);

double EMA5_prev = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, 1);

double EMA18 = iMA(NULL, 0, 18, 0, MODE_EMA, PRICE_CLOSE, 0);

double EMA18_prev = iMA(NULL, 0, 18, 0, MODE_EMA, PRICE_CLOSE, 1);

if (EMA5 > EMA18) {

if ( EMA5 - EMA5_prev >= 10 && EMA18 > EMA_prev) {

Order = BUY;

}

}

[/CODE]

2) RSI

double RSI = iRSI(NULL, 0, 18, PRICE_CLOSE, Current + 0);

double RSI_prev = iRSI(NULL, 0, 18, PRICE_CLOSE, Current + 1);

if (RSI > 50 && RSI > RSI_prev) {

Order = BUY;

}

[/CODE]

3) STOCH

Buy when the Oscillator (either %K or %D) falls below a specific level (e.g., 20) and then rises above that level. Sell when the Oscillator rises above a specific level (e.g., 80) and then falls below that level

[code]

double STOCH_K = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 0);

double STOCH_D = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 0);

if (STOCH_K < 20 || STOCH_D < 20) {

Order = BUY;

}

* i think i've skipped the red one.. dont know how to do that part..

Buy when the %K line rises above the %D line and sell when the %K line falls below the %D line

[code]

double STOCH_K = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 0);

double STOCH_D = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 0);

if (STOCH_K > STOCH_D) {

Order BUY;

} else

if {STOCH_K < STOCH_D) {

Order SELL;

}

4) En la codificación de Stoc, MODE_MAIN indica para qué? MODE_SIGNAL indica para qué?

5) ¿Cómo poner auto cierre y auto en el temporizador de EA?

por ejemplo: poner abrir a las 8am y cerrar a las 5pm

6) ¿Cómo poner deshabilitar EA en otro gráfico cuando se abre un puesto?

como usar un EA en 2 pares (GU y EJ) cuando un puesto en GU se abre entonces deshabilitar EA en EJ..

Lo siento si esta pregunta es muy básica... espero que ustedes puedan enseñarme... thx

 

Un Stoploss difícil - ¿puede ayudar con esto?

He montado un EA de tendencia. Cuando el beneficio alcanza un determinado nivel, quiero mover el stoploss para PARTE de los lotes abiertos, a ese nivel de beneficio. Dejaría el resto de los lotes (o movería el stoploss para el resto hasta el punto de equilibrio).

No estoy usando un Take Profit.

¿Cómo puedo codificar esto?

Gracias,

Big Be

 
Big Be:
... Cuando el beneficio alcanza un determinado nivel, quiero mover el stoploss para PARTE de los lotes abiertos, a ese nivel de beneficio. ..

¿Cómo puedo codificar esto?

Gracias,

Big Be

No puedes hacer eso a menos que tengas múltiples posiciones : puede haber sólo un SP/TP por posición. Pero puedes cerrar una parte de una posición: sólo tienes que poner el número de lotes que quieres cerrar en la función OrderClose(..).

Lo que también puedes hacer (depende de tu broker) es colocar un stop pendiente (hedge) para la parte que quieras : luego tienes que hacer un comando o función "CloseBy".

 

#Pregunta sobre la importación

Hola a todos

necesito calificar esta función de la API en MT4

int GetMouseMovePoints(

UINT cbSize // tamaño de la estructura MOUSEMOVEPOINT

LPMOUSEMOVEPOINT lppt, // puntero al punto de movimiento actual del ratón

LPMOUSEMOVEPOINT lpptBuf, // buffer para almacenar los puntos

int nBufPoints, // cuántos puntos puede almacenar el buffer

DWORD resolution // resolución de los puntos

);

por favor dime la clausula #import

gracias

 
DooMGuarD:
hola a todos

es necesario calificar esta función de la API en MT4

int GetMouseMovePoints(

UINT cbSize // tamaño de la estructura MOUSEMOVEPOINT

LPMOUSEMOVEPOINT lppt, // puntero al punto de movimiento actual del ratón

LPMOUSEMOVEPOINT lpptBuf, // buffer para almacenar los puntos

int nBufPoints, // cuántos puntos puede almacenar el buffer

DWORD resolution // resolución de los puntos

);

por favor dime la clausula #import

gracias

He movido tu pregunta a este hilo.

 

¿Una operación por barra?

Sé que esto ha sido cubierto antes, pero ¿puede alguien mostrarme algún código para permitir sólo 1 comercio por barra?

Gracias.

 

Michel,

Gracias.

Me lo temía.

Ahora tengo que aprender a "divertirme con los números mágicos".

Big Be

 

¡¡¡Pregunta!!!

¿Cómo puedo codificar esto?

¡¡¡Si las 6 operaciones anteriores fueron una pérdida, he intentado esto, y no funciona!!!

int MTL;

extern MaxTradeLoss=6;

int start()

{

for(int b=0;b<MaxTradeLoss;b++)

{

if(OrderSelect(b,SELECT_BY_POS,MODE_HISTORY)==true)

{

if(OrderSymbol()==Symbol() && OrderProfit()<0)

{

MTL++;

}

}

}

MTL=0;

return(0);

}

 
Dan7974:
¿Cómo puedo codificar esto?

¡¡¡Si las 6 operaciones anteriores fueron una pérdida, he probado esto, y no funciona!!!

int MTL;

extern MaxTradeLoss=6;

int start()

{

for(int b=0;b<MaxTradeLoss;b++)

{

if(OrderSelect(b,SELECT_BY_POS,MODE_HISTORY)==true)

{

if(OrderSymbol()==Symbol() && OrderProfit()<0)

{

MTL++;

}

}

}

MTL=0;

return(0);

}

su declaración MTL=0; más o menos establece MTL a cero sin importar lo que contó en el bucle "for". Esa línea debería estar antes del bucle "for" y no después.

Razón de la queja: