¿Cómo codificar? - página 266

 
ixbone:
Hola a todos,

quiero recoger todas las órdenes (de compra y venta) de un par por arte de magia y si llegan a un punto de equilibrio, todas las órdenes deben cerrarse.

cualquier orientación será bienvenida, gracias

extern bool PairBreakeven=true;// Breakeven por par todas las órdenes del mismo par/magia

extern double Pairbreakevengain=6;// ganancia en pips necesaria para permitir el break even

extern double Pairbreakeven=3;// punto de equilibrio, orden cerrada, 3 pips de ganancia/descuento

double Pairmovebreakeven;

if(PairBreakeven==true){

if(Pairbreakevengain>0)Pairmovebreakeven(Pairbreakevengain,Pairbreakeven);

CerrarPedidosDeCompra(Magia);

CerrarOrdenesDeVenta(Magia);

}

void Pairmovebreakeven(double Pairbreakevengain,double Pairbreakeven){

ActualizarTarifas();

if(OrdersTotal()>0){

for(int i=Total de Pedidos();i>=0;i++){

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic ){

devolver;

}

}

}

}

int CerrarPedidos(int Magia){ //op_sell es similar

int total=Total de Pedidos();

for(int cnt=total-1;cnt>=0;cnt--){

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if(OrderMagicNumber()==Magic && OrderSymbol()==Symbol()){

if(OrderType()==OP_BUY){

OrderClose(OrderTicket(),OrderLots(),Bid,3*mt);

}

}

}

return(0);

}

El principal problema con este código es en la función BE, nunca se movió realmente detener o tomar cualquier acción. Si usted no declara su intención en palabras, realmente no puedo detectar lo que usted está tratando de hacer aquí desde el código.

¿Quieres que el código detecte todas las órdenes en tu cuenta que tienen un stop loss=precio de apertura de la orden y las cierre todas? ¿Así que la acción de equilibrio es realizada por otro EA? Me gustaría ayudar, pero no puedo entender lo que quieres hacer.

 
christinaLi:
El principal problema de este código está en la función BE, en realidad nunca se ha movido el stop ni ha realizado ninguna acción. Si no expresas tu intención en palabras, no puedo detectar realmente lo que estás tratando de hacer aquí desde el código. ¿Quieres que el código detecte todas las órdenes en tu cuenta que tiene un stop loss=precio de apertura de la orden y cierre todas ellas? ¿Así que la acción de equilibrio es realizada por otro EA? Me gustaría ayudar, pero no puedo entender lo que quieres hacer.

christinaLi,

lo siento, por mi error.

-quiero recoger todas las ordenes de un par por arte de magia y resumir los beneficios de todas las ordenes, independientemente de la compra, venta, tp, sl, ejemplo: tenemos 8 ordenes de compra y venta, el beneficio resumido es de 6 pips // extern double Pairbreakevengain=6;// ganancia en pips necesaria para permitir el break even

-si el beneficio es de +6 pips para todas las ordenes de un par (compra&venta),todas las ordenes (compra/venta) sl deben ponerse stoploss al precio actual -3 //extern double Pairbreakeven=3;// break even, orden cerrada, 3 pip de beneficio/descarga

-si Pairbreakevengain cae de la ganancia de todas las ordenes de un par ejemplo: 8 ordenes mixtas de compra/venta la ganancia es la suma 6 de vuelta a 3, todas las ordenes son cerradas

tengo un modulo que funciona correctamente para el breakeven de una sola orden y he tratado de modificarlo por mi mismo, me faltan conocimientos de codigo en mt4, hace muchos años, aprendi ensamblador...

¿Debo publicar la función de una sola orden breakeven?

gracias por la ayuda

IX

 

Hola, IX,

Sé lo que estás tratando de hacer ahora. Se puede hacer.

Las cosas se complican un poco por el hecho de que podrías tener compras y ventas al mismo tiempo. Porque cuando hablas de "precio actual", para las compras significa Bid, para las ventas significa Ask, porque sólo esos son precios reales para cerrar las órdenes. Así que puedes ver que en un momento dado cuando ajustas el stop loss de tus órdenes, las compras y las ventas tienen un precio de diferencia. Si tu spread no es constante, hay muchas posibilidades de que tus órdenes no se cierren al mismo tiempo, a veces es posible que la mitad de tus órdenes no se cierren.

Creo que la buena manera de hacer esto es no mover el stop loss, en su lugar el EA activará una memoria una vez que se alcancen los 6 pips de beneficio total, entonces simplemente cerrará todas las órdenes en el mercado mientras el beneficio total cae a 3 pips. En este caso, la EA obliga a cerrar las órdenes, no son detenidas por MT4.

 
christinaLi:
Hola, IX,

Sé lo que estás tratando de hacer ahora. Se puede hacer.

Las cosas se complican un poco por el hecho de que usted podría tener compras y ventas al mismo tiempo. Porque cuando hablas de "precio actual", para las compras significa Bid, para las ventas significa Ask, porque sólo esos son precios reales para cerrar las órdenes. Así que puedes ver que en un momento dado cuando ajustas el stop loss de tus órdenes, las compras y las ventas tienen un precio de diferencia. Si tu spread no es constante, hay muchas posibilidades de que tus órdenes no se cierren al mismo tiempo, a veces es posible que la mitad de tus órdenes no se cierren.

Creo que la buena manera de hacer esto es no mover el stop loss, en lugar de eso el EA activará una memoria una vez que el beneficio total de 6 pips sea alcanzado, entonces simplemente cerrará todas las órdenes en el mercado mientras el beneficio total cae a 3 pips. En este caso, la EA obliga a cerrar las órdenes, no son detenidas por MT4.

Hola christinaLi,

Estoy de acuerdo al 100%, es demasiado complicado, entiendo lo que quieres decir, tal vez un par (cesta) de cálculo sin mover un stoploss es la solución, como:

- seleccionar todas las ordenes por par y magia

- resumir el beneficio de todas las ordenes

- si la suma de beneficios es = 6pips

- cerrar todas las ordenes, si no hay deslizamiento, el breakeven sera 6pips "profit", si hay deslizamiento 3pips el resultado para el breakeven es 3pips "profit"

1) la ventaja es: ningún problema

2) desventaja: no hay espacio (3pips) para todas las órdenes, si tengo 7 órdenes de compra y 6 de venta cubiertas, si la única orden de compra aumenta 6 pips, todas las órdenes se cierran, ¿hay una opción para marcar todas las órdenes en la memoria para ser cerradas si se alcanzan 6 pips (breakeven=true) por una disminución de 3pips (6-3= 3pips de beneficio) (breakevencloseorders=true)?

Las órdenes 7buy y 6sell hedged no pueden subir más de 6 pips con #1, siempre se cierran.

Con #2, 6 pips son sólo un marcador de activación, si disminuyen a 3 pips, se cierran todas las órdenes, si suben más de 6 pips, por ejemplo a 15 pips, hay espacio desde +3pips hasta 15pips lo que resulta en 12 pips de beneficio

el spread no esta calculado en este momento! porque 7buys & 6sells se resumen con 2pips de spread a 26pips para alcanzar el punto de equilibrio "0" debe tener para la orden de compra y debe tener 32 pips con #1 y 29 pips debe tener con #2 para la orden de compra - ¿estoy en lo cierto?

gracias por sus sugerencias

IX

 
ixbone:
Hola christinaLi,

Estoy de acuerdo al 100%, es demasiado complicado, entiendo lo que quieres decir, tal vez un par (cesta) de cálculo sin mover un stoploss es la solución, como:

- seleccionar todas las ordenes por par y magia

- resumir el beneficio de todas las ordenes

- si la suma de beneficios es = 6pips

- cerrar todas las ordenes, si no hay deslizamiento, el breakeven sera 6pips "profit", si hay deslizamiento 3pips el resultado para el breakeven es 3pips "profit"

1) la ventaja es: ningún problema

2) desventaja: no hay espacio (3pips) para todas las órdenes, si tengo 7 órdenes de compra y 6 de venta cubiertas, si la única orden de compra aumenta 6 pips, todas las órdenes se cierran, ¿hay una opción para marcar todas las órdenes en la memoria para ser cerradas si se alcanzan 6 pips (breakeven=true) por una disminución de 3pips (6-3= 3pips de beneficio) (breakevencloseorders=true)?

Las órdenes 7buy y 6sell hedged no pueden subir más de 6 pips con #1, siempre se cierran.

Con #2, 6 pips son sólo un marcador de activación, si disminuyen a 3 pips, se cierran todas las órdenes, si suben más de 6 pips, por ejemplo a 15 pips, hay espacio desde +3pips hasta 15pips lo que resulta en 12 pips de beneficio

el spread no esta calculado en este momento! porque 7buys & 6sells se resumen con 2pips de spread a 26pips para alcanzar el punto de equilibrio "0" debe tener para la orden de compra y debe tener 32 pips con #1 y 29 pips debe tener con #2 para la orden de compra - ¿estoy en lo cierto?

gracias por sus sugerencias

IX

Creo que me has entendido mal, lo que quieres se puede conseguir con exactitud, sólo que no se modifica el stop loss. Voy a encontrar algo de tiempo para hacer el código de hoy y demostrar para usted. Christina

 
ixbone:
Hola christinaLi,

Estoy de acuerdo al 100%, es demasiado complicado, entiendo lo que quieres decir, tal vez un par (cesta) de cálculo sin mover un stoploss es la solución, como:

- seleccionar todas las ordenes por par y magia

- resumir el beneficio de todas las ordenes

- si la suma de beneficios es = 6pips

- cerrar todas las ordenes, si no hay deslizamiento, el breakeven sera 6pips "profit", si hay deslizamiento 3pips el resultado para el breakeven es 3pips "profit"

1) la ventaja es: ningún problema

2) desventaja: no hay espacio (3pips) para todas las órdenes, si tengo 7 órdenes de compra y 6 de venta cubiertas, si la única orden de compra aumenta 6 pips, todas las órdenes se cierran, ¿hay una opción para marcar todas las órdenes en la memoria para ser cerradas si se alcanzan 6 pips (breakeven=true) por una disminución de 3pips (6-3= 3pips de beneficio) (breakevencloseorders=true)?

Las órdenes 7buy y 6sell hedged no pueden subir más de 6 pips con #1, siempre se cierran.

Con #2, 6 pips son sólo un marcador de activación, si disminuyen a 3 pips, se cierran todas las órdenes, si suben más de 6 pips, por ejemplo a 15 pips, hay espacio desde +3pips hasta 15pips lo que resulta en 12 pips de beneficio

el spread no esta calculado en este momento! porque 7buys & 6sells se resumen con 2pips de spread a 26pips para alcanzar el punto de equilibrio "0" debe tener para la orden de compra y debe tener 32 pips con #1 y 29 pips debe tener con #2 para la orden de compra - ¿estoy en lo cierto?

gracias por sus sugerencias

IX

En realidad, ahora que lo he pensado un poco más, lo que pediste no se puede hacer.

Esto es bastante interesante, he codificado un montón de funciones similares, se puede calcular BE interno de la cantidad de dólares o pips, pero todos son el mismo tipo de orden. No se puede hacer tanto con compras como con ventas. Por ejemplo, si tienes x compras (pueden ser de diferente tamaño de lote), en algún momento, todo el beneficio en dólares sumado es 0, por lo que ahora estás en BE. Entonces, si son compras, si usted quiere 3 pips de ganancia, entonces simplemente agregue 3 pips al Bid actual, entonces usted tiene un precio objetivo. si todas las ventas, usted resta 3 pips del Ask actual, entonces usted tiene un precio objetivo. Pero si tienes tanto compras como ventas, ¿qué haces? ¿sumar o restar?

¿Cómo defines que tienes 3 pips de beneficio en la siguiente situación? ¿1 lote de compra a 1,4100, 2 lotes de venta a 1,4150?

Lo único que si se puede hacer es usar el beneficio en dólares, no el beneficio en pips creo.

 
christinaLi:
Creo que me entendiste mal, lo que quieres se puede lograr con exactitud, sólo que no se modifica el stop loss. Voy a encontrar algo de tiempo para hacer el código de hoy y demostrar para usted. Christina

Gracias Christina,

¡aprecio mucho tus conocimientos!

Michael

 
christinaLi:
En realidad, ahora que lo he pensado un poco más, lo que pediste no se puede hacer.

Esto es bastante interesante, he codificado un montón de funciones similares, se puede calcular BE interno de la cantidad de dólares o pips, pero todos son el mismo tipo de orden. No se puede hacer tanto con compras como con ventas. Por ejemplo, si tienes x compras (pueden ser de diferente tamaño de lote), en algún momento, todo el beneficio en dólares sumado es 0, por lo que ahora estás en BE. Entonces, si son compras, si usted quiere 3 pips de ganancia, entonces simplemente agregue 3 pips al Bid actual, entonces usted tiene un precio objetivo. si todas las ventas, usted resta 3 pips del Ask actual, entonces usted tiene un precio objetivo. Pero si tienes tanto compras como ventas, ¿qué haces? ¿sumar o restar?

¿Cómo defines que tienes 3 pips de beneficio en la siguiente situación? ¿1 lote de compra a 1,4100, 2 lotes de venta a 1,4150?

Lo único que si se puede hacer es utilizar el beneficio en dólares, no el beneficio en pips creo.

Cristina,

Sumar o restar no importa, porque la suma de lotes de 7 órdenes de compra frente a 6 de venta son suficientes para alcanzar los beneficios normales, BE para todas las órdenes de un par debe funcionar como una característica de seguridad:

Con esta función de cobertura, se ahorra un montón de margen, con pasos entre como 50 pips, su cuenta no puede ser limpiado, si los beneficios normales no se alcanza, BE debe cerrar todas las órdenes y comenzar con una nueva señal y la primera orden.

Para la señal de compra/venta uso la acción del precio.

Archivos adjuntos:
unbenannt.png  7 kb
 
ixbone:
Cristina,

Sumar o restar no importa, porque la suma de lotes de 7 órdenes de compra frente a 6 de venta son suficientes para alcanzar los beneficios normales, BE para todas las órdenes de un par debe funcionar como una característica de seguridad:

Con esta característica de cobertura, usted ahorra mucho margen, con pasos entre como 50 pips, su cuenta no puede ser limpiada, si las ganancias normales no se alcanzan, BE debe cerrar todas las órdenes y comenzar con una nueva señal y la primera orden.

Para la señal de compra/venta utilizo la acción del precio.

Información adicional:

- Opero con 8-10 pares al mismo tiempo para diversificar (en parte la correlación), así que es mejor operar con 10 pares con 0.01 que con un par con 0.1

- duplico mis pasos entre las órdenes en 25, 50, 100, 200, 400,

ejemplo:

1ª orden 1.5000

2ª orden 1.5025

3º.........1.050

4º.........1.100

y así sucesivamente

 

Me gustaría ayudar con esta función que usted está hablando, pero parece que no puedo simplemente entender su lógica. Esto realmente no tiene nada que ver con otra lógica de la estrategia .

Simplemente me gustaría saber esto.

Si tienes 1 lote de compra a 1,4110 y 2 lotes de venta a 1,4200. ¿A qué precio crees que tienes 6 pips de ganancia?