¿Cómo codificar? - página 247

 

necesito ayuda para hide_breakeven

Hola a todos, he encontrado este código para un hide trailing stop y quiero hacer un hide breakeaven, funciona, pero no cierra la orden. Quiero cerrar la orden si el BID baja desde arriba y cruza la BE HLINE, y no cerrar si el BID cruza la BE HLINE desde abajo. He hecho muchos ejemplos pero no funciona como quiero... por favor ayúdame, aquí está el código para "comprar":

void HideBreakEvenBuy(){

int totalorders = OrdersTotal();

for(int i=totalorders-1;i>=0;i--){

if (OrderSymbol()==OrderSymbol()){

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){

if (OrderType()==OP_BUY){

if (MarketInfo(OrderSymbol(),MODE_ASK)-OrderOpenPrice() >= breakeven*Point && ObjectGet("sl "+OrderTicket()+"b", OBJPROP_PRICE1) < OrderOpenPrice()){

ObjectCreate("BE "+OrderTicket()+"b", OBJ_HLINE, 0, 0, 0);

ObjectSet("BE "+OrderTicket()+"b", OBJPROP_PRICE1, OrderOpenPrice()+BE*Point);

ObjectSet("BE "+OrderTicket()+"b", OBJPROP_COLOR, Red);

ObjectSet("BE "+OrderTicket()+"b", OBJPROP_STYLE, 3);

}

if (MarketInfo(OrderSymbol(),MODE_ASK) -ObjectGet("BE "+OrderTicket()+"b", OBJPROP_PRICE1)

>= breakeven*Point && ObjectGet("BE "+OrderTicket()+"b", OBJPROP_PRICE1)

>= OrderOpenPrice() && ObjectGet("BE "+OrderTicket()+"b", OBJPROP_PRICE1) <MarketInfo(OrderSymbol(),MODE_ASK)){

//ObjectSet("BE "+OrderTicket()+"b", OBJPROP_PRICE1, MarketInfo(OrderSymbol(),MODE_ASK) -TrailingStop*Point);

if (OrderType() = OP_BUY && MarketInfo(OrderSymbol(),MODE_ASK) >= ObjectGet("BE "+OrderTicket()+"b", OBJPROP_PRICE1)) OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), SlippageClose, Silver);

}

}

}

}

}

}

Saludos cordiales go_rich

 

Cómo añadir un trailing Stop a un Asesor Experto existente

¿Cómo puedo añadir un trailing Stop a un experto que ya está hecho? Este experto se puede editar. Gracias por cualquier ayuda

 

2 indicadores en uno

Hola a todos, desde hace unos meses utilizo una estrategia que se basa en 2 indicadores y me trae buenos beneficios (los utilizo y los fundamentales), estoy buscando a alguien que pueda conectar estos indicadores en uno para mayor comodidad. Si alguien está interesado por favor escriba en privado, gracias

 
vladokvr:
¡Hola a todos, desde hace unos meses utilizo la estrategia que se basa en 2 indicadores y me trae buenos beneficios (yo uso y fundamental con él), estoy buscando a alguien que puede conectar estos indicadores en uno para más comodidad! Si alguien está interesado por favor escriba en privado, gracias

¡alguien me puede ayudar, o tomar un ejemplo de cómo hacer un indicador de dos, creo que será interesante para muchos comerciantes!

 

Cálculo de barras anteriores/Congelación de la prueba

Hola, me preguntaba si alguien podría ayudarme con una corrección rápida del código del EA.

Necesito que mi EA tome el precio más bajo dentro de los últimos 60 días y lo reste del precio más alto dentro de ese mismo período. Una vez hecha la diferencia, me gustaría que el resultado se multiplicara por 1000 para obtener el rango deseado para mis cálculos.

Por ejemplo, si el precio más alto del EURUSD en los últimos 60 días fue 1,30000, y el precio más bajo fue 1,20000, la diferencia sería de 0,1 (o 1000 pips). Entonces multiplicaría ese 0,1 por 1000 para obtener mi rango deseado de 100. (Básicamente para cada rango de negociación de 1000 pips, necesito un valor de 100 para mis cálculos).

Si la diferencia fuera de 1250 pips, el valor que necesito sería 125.

En fin, este es el código que he utilizado:

double highval = High;

double lowval = Low;

int DesiredRange = NormalizeDouble(highval - lowval,3)*1000;

Por alguna razón, en el probador de la estrategia, funciona bien durante un período corto. Sin embargo, en ciertas fechas, el probador simplemente se detiene y no continúa operando. Simplemente se congela sin detenerse; y hay que detener manualmente el programa y cambiar la fecha de inicio al día siguiente para poder continuar.

¿Hay algún problema con mi código? Si quito el código de arriba, funciona bien con un DesiredRange constante. Al principio pensé que podía ser por el redondeo, pero parece que redondea correctamente.

¡POR FAVOR AYUDA! ¡Gracias de antemano!

 

Por qué no usas el marco temporal mensual y obtienes el máximo y el mínimo de los 2 meses anteriores. 2 meses equivale a 60 días.

Obtener el valor más alto en este caso es comparar sólo el máximo de la vela actual y el máximo de la vela anterior. Lo mismo para el más bajo.

jamesmean:
Hola, me preguntaba si alguien podría ayudarme con una corrección rápida del código de EA.

Necesito que mi EA tome el precio más bajo dentro de los últimos 60 días y lo reste del precio más alto dentro de ese mismo período. Una vez hecha la diferencia, me gustaría que el resultado se multiplicara por 1000 para obtener el rango deseado para mis cálculos.

Por ejemplo, si el precio más alto del EURUSD en los últimos 60 días fue 1,30000, y el precio más bajo fue 1,20000, la diferencia sería de 0,1 (o 1000 pips). Entonces multiplicaría ese 0,1 por 1000 para obtener mi rango deseado de 100. (Básicamente para cada rango de negociación de 1000 pips, necesito un valor de 100 para mis cálculos).

Si la diferencia fuera de 1250 pips, el valor que necesito sería 125.

En fin, este es el código que he utilizado:

double highval = High;

double lowval = Low;

int DesiredRange = NormalizeDouble(highval - lowval,3)*1000;

Por alguna razón, en el probador de la estrategia, funciona bien durante un período corto. Sin embargo, en ciertas fechas, el probador simplemente se detiene y no continúa operando. Simplemente se congela sin detenerse; y hay que detener manualmente el programa y cambiar la fecha de inicio al día siguiente para poder continuar.

¿Hay algún problema con mi código? Si quito el código de arriba, funciona bien con un DesiredRange constante. Al principio pensé que podía ser por el redondeo, pero parece que redondea correctamente.

¡POR FAVOR AYUDA! ¡Gracias de antemano!
 

Esto no es una tarea fácil.

vladokvr:
¡Alguien me puede ayudar, o tomar un ejemplo de cómo hacer un indicador de dos, creo que será interesante para muchos comerciantes!
 

Compruebe sus barras

jamesmean:
Hola, me preguntaba si alguien podría ayudarme con una corrección rápida del código de EA.

Necesito que mi EA tome el precio más bajo dentro de los últimos 60 días y lo reste del precio más alto dentro de ese mismo período.

......

En fin, este es el código que he utilizado:

double highval = High;

double lowval = Low;

int DesiredRange = NormalizeDouble(highval - lowval,3)*1000;

¿Hay algo malo en mi código? Si quito el código de arriba, funciona bien con un DesiredRange constante. Al principio pensé que podía ser por el redondeo, pero parece que redondea correctamente.

¡POR FAVOR AYUDA! ¡Gracias de antemano!

Hola James,

Editar - He borrado mi sugerencia. No es el código correcto (era para iCustom's, no para iHighest, iLowest). Sigo aprendiendo.

---

Puedes considerar la sugerencia de Codersguru también usando el periodo del mes ya que puede darte un promedio más preciso.

Espero que esto ayude,

Robert

 

Indicador, el precio rompe el último fractal

Cómo determinar (por código) si el precio rompió el último fractal al alza o a la baja.

He intentado algo con ifractals en mql pero sin éxito. Me gustaría identificar el último fractal bajista en mi código.

Quiero seleccionar por código la barra con la flecha arriba en el gráfico adjunto, pero no tengo idea de cómo lograrlo. Se agradece cualquier ayuda.

¡TIA !

Archivos adjuntos:
chrt1.gif  23 kb
 

Olvida la pregunta sobre el fractal, he encontrado una solución. El problema es que para determinar el fractal hay que retroceder en el tiempo con un "bucle for" que, según la OMI, resulta en una gran sobrecarga. Pero no soy un programador así que probablemente hay mejores soluciones.

THNX

Razón de la queja: