¿Cómo codificar? - página 64

 

Muchas gracias por su respuesta. No es un problema de argumentos, el cálculo en el bucle es correcto. Creo que el problema está en la segunda llamada a iMAonArray fuera del bucle de la función.

Saludos

 

La mejor manera de añadir MaxBarsToCount (History) al límite

cuando limitamos MaxBarsToCount (History) a veces es necesario añadir Corrección, etc

¿existe la mejor manera (más segura, más fácil, universal)?

----------------------

como aquí tenemos light fisher 4 stoch smothing:

----------

int inicio()

{

int counted_bars=IndicatorCounted();

//---- comprobar posibles errores

if(counted_bars<0) return(-1);

int limit=Barras_contadas;

if(limit>maxbars)limit=maxbars;

if (limit>Bars-lenth-1)limit=Bars-lenth-1;

//----

for (int shift = limit; shift>=0;shift--)

{

AuxBuffer[shift]=(iStochastic(NULL,0,lenth,2,1,MODE_SMA,0,MODE_MAIN,shift)/100-0.5)

+0.5*AuxBuffer[shift+1];

FishBuffer[shift]= 0,25* MathLog((1+AuxBuffer[shift])/(1-AuxBuffer[shift]))+

0.5*FishBuffer[shift+1];

SignalBuffer[shift]=FishBuffer[shift+1];

}

//----

return(0);

}

------------------------

para fisher limit f-la:

int límite;

int barras_contadas=IndicadorContado();

if(barras_contadas>0) barras_contadas--;

limit=Barras_contadas;

for(int i=límite; i>=0; i--)

{

....

para Stoch:

int inicio()

{

int i,k

int barras_contadas=IndicadorContado();

doble precio;

//----

if(Bars<=draw_begin2) return(0);

//---- cero inicial

if(barras_contadas<1)

{

for(i=1;i<=draw_begin1;i++) MainBuffer=0;

for(i=1;i<=draw_begin2;i++) SignalBuffer=0;

}

//---- conteo de mínimos

i=Barras-KPeriodo;

if(barras_contadas>KPeriod) i=Barras_contadas-1;

while(i>=0)

{

double min=1000000;

k=i+KPeriodo-1;

while(k>=i)

{

precio=Low[k];

if(min>precio) min=precio;

k--;

}

LowesBuffer=min;

i--;

}

....

p.s. en el indicador adjunto, basado en la transformación de fisher limpia y Stoch; MaxBars necesita ser enderezado un poco... (cuando MaxBars fuera - no hay problema)

Archivos adjuntos:
 

Hola,

Muchas gracias a todos. Ahora funciona bien y sólo se abre una orden por barra. Lo bueno de un EA como este es que podemos utilizar la opción "Open price only" para hacer backtesting, que es más rápida que la de "per tick".

 
Michel:
Hola Omelette, Sabes que el BT tiene un problema al buscar en el historial: busca en el historial real, no en el del BT. Pregunté a Metaquote hace unos meses sobre este error pero no tuvieron ninguna respuesta.... Tal vez ahora se ha arreglado...

Michel, gracias por el aviso. Vaya, no lo sabía - ¡¡¡y yo lo calificaría como un gran fallo!!!

Para comprobarlo (con MT 208), utilicé la información de OrdersHistoryTotal() para decidir la dirección de la operación en un martingala, y utilicé "medios convencionales" en otra versión - la curva de equidad para ambos "debería" ser idéntica. Esto es lo que he encontrado.........

También he comprobado con la última Metatrader y el error sigue ahí - increíble.....

 

Necesito un código MQL

Hola,

Necesito pocos códigos que pueda integrar en un EA.

1) Necesito poner una restricción a mi EA como que, no debe abrir ninguna posición entre las 2:00 PM a 5:00 PM. ¿Cómo puedo hacer eso? por favor, dame este código simple y dime dónde puedo colocarlo en el EA.

2) No quiero poner SL en el EA para abrir la posición debido a la caza de SL por el corredor. Por lo tanto, necesito poner un control en el EA que "si el beneficio total de la posición abierta es de +20 puntos, entonces cierre la posición".

¡Estaré muy agradecido a los seguidores que siempre apoyan a otras personas!

Saludos cordiales,

Kashif.

 
oilfxpro:
.....¿Puede EA mirar los tipos actuales de swaps y los históricos de swaps? OILFXPRO

Me temo que no.

P.D.: mi respuesta parece engañosa. Me refería a que no se pueden recuperar los tipos históricos de los swaps - no hay problema en obtener los tipos actuales...

 

varios Pedidos a la vez

Hola,

Quiero programar en un Asesor Experto lo siguiente :

Me gustaría abrir varias Órdenes al mismo tiempo (3-6 Órdenes )

1. Orden : Volumen; T/P; S/L; T/S

.

.

.

5. Orden : Volumen; T/P; S/L; T/S

¿Puede ayudarme?

Gracias

derumuro

 

Necesito aprender algo.

Hola a todos

Necesito una ayuda de programación para un código simple que es:

Si el precio de mercado > valor MA por pips delta abrir comprar.

Si el precio de mercado < valor MA por pips delta abrir vender.

Con TP SL y TS. ¿Puede algún programador experto enseñarme a escribir el código?

Gracias

 

¿Qué tengo que hacer para cambiar este código para que las órdenes sólo se abran cuando los tres indicadores estén sincronizados, ya sea tendencia alcista (Azul) o tendencia bajista (Rojo) manualmente esto funciona bien y es lo suficientemente simple para mí para seguir LOL.

He utilizado un ea antiguo como plantilla y he intentado añadir los indis para crear las señales correctas. de momento las órdenes se abren con el TM o el HAS.

He adjuntado el ea y el rendimiento de los últimos días sé que no significa nada pero tiene potencial. OMI

Alguien podría indicarme la dirección correcta.

Saludos

Beno

Archivos adjuntos:
 

¿Hay alguna forma de codificar esta función include para que NO haya posibilidad de que se quede "atascada" en su bucle?

int CBM(int intMagic)//CloseByMagic

{

int intOffset=0;

while(OTBM(intMagic)>0)

{

OrderSelect(intOffset,SELECT_BY_POS);

if(OrderMagicNumber()==intMagic)

{

if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),999,Red);

if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),999,Orange);

}

else {

intOffset++;

}

}

return(0);

}

Gracias a quien pueda ayudar.

Razón de la queja: