Ayuda a la codificación - página 485

 
NWFstudent:
Digamos que usted está operando en el gráfico de 1 hora y utiliza un indicador mtf que muestra el gráfico de 4 horas, entonces quiero que la configuración sea utilizar el siguiente marco de tiempo.

Es decir, estoy operando en un gráfico de 1 hora y el indicador está utilizando datos de 4 horas, cuando cambio mi marco de tiempo a 4 horas quiero que el indicador cambie al marco de tiempo por encima de 4 horas, por lo que ahora utilizará los datos diarios.

Encontré este hilo, pero como no soy un codificador no estoy seguro de dónde pegar el código o si necesita alguna modificación para el indicador real.

Next Timeframe - Foro MQL4

El indicador al que quiero añadir esto es "Traders Dynamic_Cb_ssa norm Index_alerts+arrows new 1.01" de los foros de elite

NWFstudent

Puedes ver en este cómo se puede hacer de una manera sencilla : https://www.mql5.com/en/forum/181187/page24 (incluyendo hasta la elección del tercer marco de tiempo más alto de forma automática)

 

Hola mladen.

La última vez por un tiempo....Lo prometo.

Como ya sabrás, soy un gran fan del indicador ADX.

Lo utilizo de varias formas y nunca entro en una operación contra él.

También me gusta el principio del indicador de los tres patos

y he tratado de combinar los dos pero sin ninguna alegría.

Lo intentaré una vez más y luego probaré otra cosa:

El indicador adjunto, por lo que puedo ver, tiene sólo el área donde se menciona un indicador - Líneas 54,57,60.

Todo lo demás parece estar relacionado con el marco de tiempo.

He tratado de eliminar toda mención de 'sma & SMA' - & a adx & ADX, en su lugar, pero sin suerte.

Es posible, & si es así (Sin tomar demasiado de su tiempo.) me haría saber cómo.

Que tengan un buen fin de semana.

Archivos adjuntos:
 
Jeeves:
Hola mladen.

La última vez por un tiempo....I promesa.

Como ya sabrás, soy un gran fan del indicador ADX.

Lo utilizo de varias maneras y nunca entro en una operación en contra de él.

También me gusta el principio del indicador de los tres patos

y he tratado de combinar los dos pero sin ninguna alegría.

Lo intentaré una vez más y luego probaré otra cosa:

El indicador adjunto, por lo que puedo ver, tiene sólo el área donde se menciona un indicador - Líneas 54,57,60.

Todo lo demás parece estar relacionado con el marco de tiempo.

He tratado de eliminar toda mención de 'sma & SMA' - & a adx & ADX, en su lugar, pero sin suerte.

¿Es posible, y si es así (sin tomar demasiado de su tiempo.) me haga saber cómo.

Que tengas un buen fin de semana.

Jeeves

No se puede utilizar adx en lugar de sma en ese indicador. Los valores de adx están en un rango de valores completamente diferente y no pueden ser comparados con Bid como está haciendo ese indicador en el código

 
mladen:
NWFstudent Puedes ver en este cómo puedes hacerlo de forma sencilla : https://www.mql5.com/en/forum/181187/page24 (incluso hasta elegir el tercer marco temporal más alto de forma automática)

Gracias, fue sencillo copiar y pegar

 

Estimado,

puede alguien ayudarme.

que pasa con este "ticket inválido para la función OrderModify"

Pero en otras puede operar.

extern double lotes = 0.1;

extern double stopsize = 200;

extern double profsize = 100;

extern double Risk =0.01;

int err;

int ticket;

double stop;

double prof;

int init() { return(0); }

int deinit() { return(0); }

int inicio()

{

int TotalPedidos = 0;

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

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

if (OrderSymbol() == Symbol())

TotalOrders++;

}

if (TotalOrders<1)

{

ticket=OrderSend(Symbol(), OP_SELL, getLots(Risk), Bid, 3, 0, 0, NULL,LimeGreen);

stop=(Oferta+tamaño de la oferta*Punto);

prof=(Bid-profsize*Point);

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

}

err=GetLastError();

Comentario(" ");

}

 
hock87:
Estimado,

alguien puede ayudarme.

¿Qué pasó con esta "entrada inválida para la función OrderModify"?

Pero en otras puede operar.

Eso significa que su pedido no fue aceptado / ejecutado y que la función OrderSend( ) devolvió -1 como resultado. Compruebe siempre si ese número de ticket es > -1 antes de intentar modificar un pedido recién creado

 

¿Algún ejemplo de uso de archivos simples (no de archivos históricos)?

 
mladen:
xtractalpha Tendré que probarlo para ver qué ocurre. Si encuentro el problema, lo publicaré aquí

Estimado Mladen,

¿Tienes alguna novedad sobre mi petición?

Disfrute de su fin de semana

Gracias de antemano,

Thierry

 
xtractalpha:
Estimado Mladen,

¿Tienes alguna novedad sobre mi petición?

Disfrute de su fin de semana

Gracias de antemano,

Thierry

Thierry

Elimine las líneas 74 y 137 de su código (está llamando a la función LotsizeCalc() desde ambas líneas y de esa manera está empujando artificialmente el tamaño del lote en todos y cada uno de los ticks)

Después de eliminar esas líneas debería funcionar bien

 
mladen:
Thierry

Elimine las líneas 74 y 137 de su código (está llamando a la función LotsizeCalc() desde ambas líneas y de esa manera está empujando artificialmente el tamaño del lote en cada tick)

Después de borrar esas líneas debería funcionar bien

Gracias por su rápida respuesta.

He eliminado las líneas, pero el EA sigue abriendo operaciones con el tamaño de lote equivocado.

Es realmente extraño que el EA esté ignorando mi código de Martingala. Porque el EA sólo abre operaciones con un tamaño de lote de 0,10 o 0,20.... (ver la imagen).

Captura de pantalla por Lightshot

Creo que mi función lotsizecalc tiene que ser el problema. Quiero que la función multiplique mi tamaño de lote por la cantidad de martingala cuando pierda una operación.

Mi cantidad de martingala es 1.5 y mi tamaño de lote es 0.10. Esto significa que cuando pierdo 5 operaciones seguidas los tamaños de los lotes serán: 0.1 , 0.15 , 0.22 , 0.34 , 0.51 .

double LotsizeCalc() { if(lastOrderProfit()<0 && tradeNumber <=MaximumTrades) { tradeNumber++; malot=OrderLots()*MartingaleAmount; } else { malot = LotSize; tradeNumber=1; } return(malot); }

¿Alguien podría comprobar este código?

Gracias de antemano,

Thierry

Razón de la queja: