Ayuda a la codificación - página 159

 
mladen:
No cambie esa parte del código. Esa parte del código está comprobando si su broker es de 4 o 5 dígitos. También, aquí hay una prueba usando $500 para el depósito inicial (riesgo 5% stop loss 20 pips, EURUSD usado para la prueba) y funciona incluso con ese depósito inicial también

Hola, Mladen.

Ayer, le he preguntado acerca de la codificación de la orden.

Pero es demasiado complejo.

Lo siento, porque quiero una codificación simple.

Así:

Saldo de la cuenta$ 500

con un riesgo del 5%, lotes abiertos= $0.25

lotes=$500*(riesgo/100)

lotes=500$*(0.05/100)

lotes=500$(0.0005)

lotes=$0.25

Sólo me gustó este auto EA abrir una $ 0,25 lotes.

Y el conteo de lotes no se mezcla con Stoploss o TProfit.

Espero que me puedan ayudar a resolver este problema.

Muchas gracias.

extern double lots = 0.1;extern double stopsize = 20;

extern double profsize = 10;

extern double Risk =5;

int err;

int ticket;

double stop;

double prof;

int init() { return(0); }

int deinit() { return(0); }

int start()

{

int TotalOrders = 0;

for (int i=0; i <= OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

if (OrderSymbol() == Symbol())

TotalOrders++;

}

if (TotalOrders<1)

{

double sl = stopsize*Point*MathPow(10,Digits%2);

double tp = profsize*Point*MathPow(10,Digits%2);

stop = (Ask-sl);

prof = (Ask+tp);

ticket = OrderSend(Symbol(), OP_BUY, getLots(sl,Risk), Ask, 3, 0, 0, NULL,LimeGreen);

OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);

}

err=GetLastError();

Comment(" ");

}

//

//

//

//

//

double getLots(double stopLoss, double risk)

{

RefreshRates();

double pPoint = MarketInfo(Symbol(),MODE_POINT);

double step = MarketInfo(Symbol(),MODE_LOTSTEP);

double minLot = MarketInfo(Symbol(),MODE_MINLOT);

double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);

double lots = minLot;

if (risk>0 && stopLoss>0)

{

lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(Symbol(),MODE_TICKVALUE)/pPoint);

}

return(MathMax(MathMin(lots,maxLot),minLot));

}
 
hock87:
Hola, Mladen.

Ayer, le he preguntado sobre la codificación de la orden.

Pero es demasiado complejo.

Lo siento, porque quiero una codificación simple.

Así:

Saldo de la cuenta $500

con un riesgo del 5%, lotes abiertos= $0.25

lotes=$500*(riesgo/100)

lotes=500$*(0.05/100)

lotes=500$(0.0005)

lotes=$0.25

Sólo me gustó este auto EA abrir una $ 0,25 lotes.

Y el conteo de lotes no se mezcla con Stoploss o TProfit.

Espero que me puedan ayudar a resolver este problema.

Muchas gracias.

extern double lots = 0.1;extern double stopsize = 20;

extern double profsize = 10;

extern double Risk =5;

int err;

int ticket;

double stop;

double prof;

int init() { return(0); }

int deinit() { return(0); }

int start()

{

int TotalOrders = 0;

for (int i=0; i <= OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

if (OrderSymbol() == Symbol())

TotalOrders++;

}

if (TotalOrders<1)

{

double sl = stopsize*Point*MathPow(10,Digits%2);

double tp = profsize*Point*MathPow(10,Digits%2);

stop = (Ask-sl);

prof = (Ask+tp);

ticket = OrderSend(Symbol(), OP_BUY, getLots(sl,Risk), Ask, 3, 0, 0, NULL,LimeGreen);

OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);

}

err=GetLastError();

Comment(" ");

}

//

//

//

//

//

double getLots(double stopLoss, double risk)

{

RefreshRates();

double pPoint = MarketInfo(Symbol(),MODE_POINT);

double step = MarketInfo(Symbol(),MODE_LOTSTEP);

double minLot = MarketInfo(Symbol(),MODE_MINLOT);

double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);

double lots = minLot;

if (risk>0 && stopLoss>0)

{

lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(Symbol(),MODE_TICKVALUE)/pPoint);

}

return(MathMax(MathMin(lots,maxLot),minLot));

}

hock87

No hay manera simple(r) para calcular el tamaño del lote cuando la equidad, la pérdida de la parada y el riesgo requerido se tienen en cuenta. Además, no puedes calcular el riesgo sin conocer el stop loss (piénsalo: si abres una orden, digamos, de tamaño 1 lote y la cierras después de 1 pip o la cierras después de 100 pips las pérdidas (y por tanto el riesgo que se ha asumido) no van a ser las mismas y no pueden ser iguales).

Si lo calculas así (sin un stop loss conocido) entonces no es el cálculo del riesgo sino un simple cálculo del tamaño del lote (que no implica ningún tipo de cálculo del riesgo)

 
mladen:
hock87

No hay una forma sencilla(r) de calcular el tamaño del lote cuando se tienen en cuenta la equidad, el stop loss y el riesgo requerido. Además, no se puede calcular el riesgo sin conocer el stop loss (piénsalo: si abres una orden, digamos, de tamaño 1 lote y la cierras después de 1 pip o la cierras después de 100 pips las pérdidas (y por tanto el riesgo asumido) no van a ser las mismas y no pueden serlo).

Si lo calculas así (sin un stop loss conocido) entonces no es el cálculo de riesgo sino un simple cálculo de tamaño de lote (que no implica ningún tipo de cálculo de riesgo)

Mladen, tienes razón.

Sé que no implica ningún tipo de cálculo de riesgo.

y sólo quiero un simple cálculo del tamaño del lote,

dejar que el tamaño del lote de cálculo automático con el saldo de la cuenta con el %.

lots=$500*(risk%/100)

lotes=500$*(0.05/100)

lotes=500$(0.0005)

lotes=$0.25

Sólo me gusta este auto EA abrir una $ 0,25 lotes.

Y la cuenta de lotes no se mezcla con Stoploss o TProfit.

¿Cómo codificarlo?

Gracias.

 
hock87:
Mladen, tienes razón.

Sé que no implica ningún tipo de cálculo de riesgo.

y solo quiero un simple calculo de tamaño de lote,

dejar que el tamaño del lote de cálculo automático con el saldo de la cuenta con el %.

lots=$500*(risk%/100)

lotes=500$*(0.05/100)

lotes=500$(0.0005)

lotes=$0.25

Sólo me gusta este auto EA abrir una $ 0,25 lotes.

Y el conteo de lotes no se mezcla con Stoploss o TProfit.

¿Cómo codificarlo?

Gracias.

Pruebe la forma en que se describe por KimIV aquí : b-Lots

 

Muchas gracias a mladen, creo que es similar a lo que en mi mente#1579, por cierto, ¿es posible convertir DPO en la forma similar a las ecuaciones RSI o MFI normalizar la escala vertical?Detrended Price Oscillator - MQL4 Code Base, gracias de nuevo.

 
kenwa:
Muchas gracias a mladen, creo que es similar a lo que en mi mente#1579, por cierto, ¿es posible convertir DPO en la forma similar como RSI o ecuaciones MFI normalizar la escala vertical?Detrended Price Oscillator - MQL4 Code Base, gracias de nuevo.

kenwa

Una vez que usted tiene una plantilla no es difícil

Aquí hay un RSI de un DPO. La parte superior es DPO y la parte inferior es el RSI de un DPO

Archivos adjuntos:
 

hola mladen, tengo su rsi de macd antes, ¿se hace con formas / lógica similar a estos recientes índice de fuerza FI y DPO unos?

he adjuntado sus nuevas versiones de rsi hechas recientemente (FI y DPO) en mi ordenador, me encuentro con un problema si utilizo la función icustom para recordar sus valores de salida, no es de 0 a 100 como se muestra en el gráfico, pero de -100 a 0 a 100, cualquier comentario de por qué, es que me refiero a recordar mal el valor del buffer interior? gracias por el consejo.

Archivos adjuntos:
 

Hola, Mladen.

Tengo un problema,

cuando la orden de compra abierta se mueve en dirección inversa y el precio de mercado a distancia supera los 25 puntos,

se abre automáticamente una orden de compra de nuevo.

¿Cómo codificar esta estrategia?

Gracias.

extern double lots = 0.1;

extern double stopsize = 50;

extern double profsize = 20;

int err;

int ticket;

double stop;

double prof;

int start()

{

int TotalOrders = 0;

for (int i=0; i <= OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

if (OrderSymbol() == Symbol())

TotalOrders++;

}

if (TotalOrders<1)

{

ticket=OrderSend(Symbol(), OP_Buy, 0.1, Ask, 3, 0, 0, NULL,LimeGreen);

stop=(Ask+stopsize*Point);

prof=(Ask-profsize*Point);

OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);

}

err=GetLastError();

// Comment("This is a test ", err, " ", stop, " ", prof);

Comment(" ");

return(0);

}
 
hock87:
Hola, Mladen.

Tengo un problema,

cuando la orden de compra se mueve en dirección inversa y el precio de mercado a distancia supera los 25 puntos,

se abre automáticamente una orden de compra de nuevo.

¿Cómo codificar esta estrategia?

Gracias.

extern double lots = 0.1;

extern double stopsize = 50;

extern double profsize = 20;

int err;

int ticket;

double stop;

double prof;

int start()

{

int TotalOrders = 0;

for (int i=0; i <= OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

if (OrderSymbol() == Symbol())

TotalOrders++;

}

if (TotalOrders<1)

{

ticket=OrderSend(Symbol(), OP_Buy, 0.1, Ask, 3, 0, 0, NULL,LimeGreen);

stop=(Ask+stopsize*Point);

prof=(Ask-profsize*Point);

OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);

}

err=GetLastError();

// Comment("This is a test ", err, " ", stop, " ", prof);

Comment(" ");

return(0);

}

hock87

Ese código no se compila (sustituye OP_Buy por OP_BUY) y no veo ninguna condición para la apertura de otra orden. Por el momento sólo permite una orden (la línea "if (TotalOrders<1)") Ese debería ser su punto de partida

 

CCI fdoe hpp

He descargado este indicador de uno de los hilos y es mucho mejor que los indicadores CCI-zonas o Ma-zonas.

¿Se puede adaptar para que se muestre en la pantalla como en un indicador de zona?

Está ajustado a la configuración de CCI 13, pero si se puede hacer en un indicador de ajuste variable fácilmente, entonces eso sería un bono - pero mucho una petición secundaria.

Es un indicador de Forex-TSD pero no había ninguna carpeta mq4 con él.

Gracias

TEAMTRADER

Archivos adjuntos:
cci_fdoehpp.ex4  19 kb