necesito ayuda con la codificación, por favor - página 4

 

usted dice ....... "Su deslizamiento no se ajusta para 4/5 dígitos Broker "

Digo ......mi entendimiento es que es en puntos o pips o lo que sea - ya

es decir, por lo que 3 es bueno utilizar y 3 * mi punto es incorrecta.

¿Puede alguien confirmar esto?


RaptorUK:

OK, un poco de ayuda . . .

Encuentra esta parte en tu código, y cámbiala por esto. . .

Esto no comprueba el Número Mágico . . tendrás que añadirlo si quieres colocar órdenes manuales en los mismos pares o si quieres correr en diferentes marcos de tiempo en el mismo par al mismo tiempo . . .

Bares no es confiable, es una mala idea usar Bares. . deberías usar Tiempo en su lugar.

Su deslizamiento no está ajustado para corredores de 4/5 dígitos... ni tampoco su TP o SL.

Si usted hace su SL pequeño usted conseguirá el error 130 porque usted no está comprobando si es demasiado cercano o permitiendo el Spread.

¿Su corredor es un corredor ECN? No puede establecer el SL o el TP cuando coloca una orden de mercado con un corredor ECN, tiene que codificar un OredrModify() para añadir el SL o el TP después de colocar la orden...

¿Sigo? Esto es algo básico... estos puntos surgen en este foro día tras día...

Y usted no entiende mucho de esto porque en realidad no ha codificado nada . . . ha utilizado el código de otra persona . . " Expert Advisor Builder". Solo hay un atajo: Trabajos

 
mrmedia:

usted dice ....... "Su deslizamiento no se ajusta para 4/5 Digit Broker "

Digo ......mi entendimiento es que es en puntos o pips o lo que sea - ya

es decir, por lo que 3 es bueno utilizar y 3 * mi punto es incorrecta.

¿Puede alguien confirmar esto?




Lea este https://www.mql5.com/en/forum/138912
 
mrmedia:

usted dice ....... "Su deslizamiento no se ajusta para 4/5 Digit Broker "

Digo ......mi entendimiento es que es en puntos o pips o lo que sea - ya

Slippage = 3 significa 0.3 pips en un Broker de 5 dígitos y 3 pips en un Broker de 4 dígitos.
 
RaptorUK:
El deslizamiento = 3 significa 0,3 pips en un corredor de 5 dígitos y 3 pips en un corredor de 4 dígitos.

Una vez más claro como el barro.

err 0.98330

slippage = 3 = ¿dónde está el relleno?

slippage = 3*SymPoints (broker de 5 dígitos) = ¿dónde está el relleno?

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

if( SymPoints == 0.001 ) { SymPoints = 0.01; SymDigits = 3; }

else if( SymPoints == 0.00001 ) { SymPoints = 0.0001; SymDigits = 5;

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 
mrmedia:

Una vez más claro como el barro.

err 0.98330

slippage = 3 = ¿dónde está el relleno?

slippage = 3*SymPoints (broker de 5 dígitos) = ¿dónde está el relleno?

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

if( SymPoints == 0.001 ) { SymPoints = 0.01; SymDigits = 3; }

else if( SymPoints == 0.00001 ) { SymPoints = 0.0001; SymDigits = 5;

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Mire la documentación de OrderSend, ¿qué tipo dedeslizamiento es? ¿Cómo puedetener sentido eldeslizamiento = 3*SymPoints?
 
El deslizamiento permitido en el precio es siempre el deslizamiento(int) que usted especifica multiplicado por la variable interna Punto. El valor de Point cambia entre corredores de 4 y 5 dígitos.
 
No sé
 
weinux:
No lo sé.
Gracias, ha sido de gran ayuda.
 
No se puede utilizar symPoints para el deslizamiento int(3 * symPoints) == 0 no hay deslizamiento.
//++++ These are adjusted for 5 digit brokers.
int     pips2points;    // slippage  3 pips    3=points    30=points
double  pips2dbl;       // Stoploss 15 pips    0.015      0.0150
int     Digits.pips;    // DoubleToStr(dbl/pips2dbl, Digits.pips)
int     init(){                                             OptInitialization();
     if (Digits % 2 == 1){      // DE30=1/JPY=3/EURUSD=5 forum.mql4.com/43064#515262
                pips2dbl    = Point*10; pips2points = 10;   Digits.pips = 1;
    } else {    pips2dbl    = Point;    pips2points =  1;   Digits.pips = 0; }
    // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
//---- These are adjusted for 5 digit brokers.
    /* On ECN brokers you must open first and THEN set stops
    int ticket = OrderSend(..., 0,0,...)
    if (ticket < 0)
       Alert("OrderSend failed: ", GetLastError());
    else if (!OrderSelect(ticket, SELECT_BY_TICKET))
       Alert("OrderSelect failed: ", GetLastError());
    else if (!OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0)
       Alert("OrderModify failed: ", GetLastError());
     */