¡Pide! - página 108

 
Dave137:
void TrailingPositions() {

double pBid, pAsk, pp;

pp = MarketInfo(OrderSymbol(), MODE_POINT);

if (OrderType()==OP_BUY) {

pBid = MarketInfo(OrderSymbol(), MODE_BID);

//BreakEven routine

if (BreakEven>0) {

if ((pBid-OrderOpenPrice())>BreakEven*pp) {

if ((OrderStopLoss()-OrderOpenPrice())<0) {

ModifyStopLoss(OrderOpenPrice()+0*pp);

}

}

}

if (TrailingStop>0) {

if ((pBid-OrderOpenPrice())>TrailingStop_Over135*pp){ //15 pips TS

ModifyStopLoss(pBid-TrailingStop_Over135*pp);

if (pBid-OrderOpenPrice()>TrailingStop_Over90*pp && pBid-OrderOpenPrice()<TrailingStop_Over135*pp){ //55 pips TS

ModifyStopLoss(pBid-TrailingStop_Over90*pp);

if ((OrderOpenPrice()-pAsk)>TrailingStop +TrailingStep+1*pp && (OrderOpenPrice()-pAsk) < TrailingStop_Over90*pp+TrailingStep-1*pp || OrderStopLoss()==0) {//75 pips TS

ModifyStopLoss(pAsk+TrailingStop*pp);

return;

}

}

}

}

}[/PHP]

Three levels of Trailing Stop:

1) 75 Pips TS up to first 90 Pips Profit.

2) 55 Pips TS after 90 but only up to 135 pips profit.

3) 15 Pips TS after 135 pips profit.

The problem I am having is the Trailing Stop moves both up and down as the price moves up and down . . It should just be moving up as the price profit increases and stop if the price starts dropping! How do I get it to stop moving down as the price drops - The Trailing Stop is acting like a Yo-Yo as the price moves up and down.

I am not sure how to stop this from happening?? Please, I need your expertise!

Humbly,

Dave

por ejemplo:[PHP]ts = pBid - TrailingStop_Over135*pp;

si (ts > OrderOpenPrice() && ts > OrderStopLoss()) ModificarStopLoss(ts);

 

por favor puedo pedir ayuda

¿Puedo pedir a alguien que eche un vistazo a mi código para ver dónde está mal por favor.... No soy mucho de un programador y agradecería un poco de ayuda con esto.

muchas gracias de antemano

También me di cuenta de algo - theres un tipo llamado Ben Taylor la venta de un EA que se ve casi exactamente como el que el gurú del codificador programado - tal vez eso es uno de sus clientes - lol

si no es así - debemos dejar codificadores gurú saber acerca de esto

Archivos adjuntos:
 
Michel:
Si es necesario, compruebe primero que es más tarde de las 8 horas:
if(Hour() < 8) return;[/PHP]

Then, find the max and min of the current day. (if its ok for you, its easier than from 8 am): [PHP]double Max = iHigh(Symbol(), PERIOD_D1, 0);

double Min = iLow(Symbol(), PERIOD_D1, 0);

int Range = (Max - Min) / Point;

if(Range > 90) return;

...

Hola Michel:

Me refiero a tu código:

if(Hora() < 8) return;

He modificado el código de la siguiente manera

if(Hora()>12) hr_x=1;

.....

.....

.....

.....

if(hr_x==1) signal=50;

¡¡¡¡Pero tenía toda la barra del histograma 50!!!!

¡¡¡Si miras el gráfico de abajo, parece que el comando "Hour" no lo reconoce!!!

Para tu información, estoy usando un gráfico de 30 minutos, habrá alguna diferencia. He intentado cambiar a un gráfico de 1 hora pero el problema sigue existiendo.

También intenté "if(Hour() < 8) return;" pero todas las barras desaparecieron.

He intentado muchas cosas pero todavía no puedo conseguir que funcione.

¿Es posible aconsejarme de nuevo? Gracias

Archivos adjuntos:
untitled_5.jpg  115 kb
 
n3sve1k4s:
Hola codersguru ¿podría añadir señal con pop-up y flechas al indicador de abajo?

¿alguien puede añadir una señal?

 

Gracias Michel por la corrección adecuada a mi triple Trailing Stop codificación. Con esto espero poner el arreglo final a mi nueva creación de ea. Sin la generosidad de los conocimientos de todos, no habría sido capaz de programar este lenguaje. Mantengo notas sobre toda la nueva información que adquiero sobre este lenguaje. Espero que cuando se introduzca MT5, la codificación no cambie tan radicalmente - ¡no me gustaría empezar de nuevo! ¡Gracias de nuevo!

Dave

<<<

 
solamax:

Puedo pedirle a alguien que eche un vistazo a mi código para ver dónde está mal por favor.... No soy muy programador y agradecería algo de ayuda con esto.

muchas gracias de antemano

También me di cuenta de algo - theres un tipo llamado Ben Taylor la venta de un EA que se ve casi exactamente como el que el gurú del codificador programado - tal vez eso es uno de sus clientes - lol

si no es así - debemos dejar que los codificadores gurú saber acerca de esto
double Buy2_1 = iOpen(NULL, 0, Current + 0); //Statement in question for crossover! double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

Si tuviera que cero en un área de problema, sería este código de arriba. Tiene que haber un cruce para una compra y una venta.

double Buy1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Buy2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Sell2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

if(Buy1_1>Sell2_1 && Buy1_2<Sell2_2) Then Buy; // ¡Se ha producido un cruce "UP" adecuado!

if(Sell1_1Buy2_2) Then Sell; // ¡Se ha producido un cruce 'DOWN' adecuado!

Dave

 

Esto no es exactamente lo que está buscando, pero mírelo de todos modos. Adjúntalo a otro gráfico y monitorea todas las ganancias y pérdidas de los gráficos que tienen ea's funcionando en ellos.

 

Dave - eres una bendición:)

Dave137:
double Buy2_1 = iOpen(NULL, 0, Current + 0); //Statement in question for crossover! double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

Si tuviera que poner a cero en un área de problema, sería este código de arriba. Tiene que haber un cruce para una compra y una venta.

double Buy1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Buy2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

double Sell2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 1); //1-Back

if(Buy1_1>Sell2_1 && Buy1_2<Sell2_2) Then Buy; // ¡Se ha producido un cruce "UP" adecuado!

if(Sell1_1Buy2_2) Then Sell; // ¡Se ha producido un cruce 'DOWN' adecuado!

Dave

muchas gracias - voy a darle una oportunidad

 

Se necesita ayuda para codificar

Se agradece cualquier ayuda..

Esto iría en un EA como componente de la rutina de cierre de operaciones.

Necesito crear una variable que siempre devuelva el mayor saldo histórico de la cuenta. Creo que esto requeriría un array?

En términos prácticos, el lenguaje sería decir. "si mi beneficio abierto es X-pips mayor que el saldo histórico más alto de la cuenta, cierra todas las operaciones".

Si alguien puede ayudar con la variable creo que puedo codificar el resto.

Gracias de antemano.

 

Gracias por tu respuesta, pero tienes razón, no son exactamente lo que busco.

Todavía no tengo el código inteligente para abordar el problema.

Necesito que el código devuelva la "marca de agua alta" del saldo de la cuenta.

Gracias de nuevo, cualquier ayuda se agradece.

Dave137:
Esto no es exactamente lo que estás buscando, pero míralo de todos modos. Adjúntalo a otro gráfico y monitorea todas las ganancias y pérdidas de los gráficos que tienen ea's funcionando en ellos.