que precisam de ajuda na codificação, por favor - página 4

 

você diz ....... "Your Slippage is not adjusted for 4/5 Digit Broker "

Eu digo ...... meu entendimento é que está em pontos ou pips ou o que quer que seja - já

isto é, 3 é bom de usar e 3*mypoint é incorreto.

Alguém pode confirmar isto?


RaptorUK:

OK, uma pequena ajuda . . .

Encontre esta parte em seu código, e mude-a para esta . .

Isto não verifica o Número Mágico . . você precisará adicioná-lo se quiser fazer pedidos manuais nos mesmos pares ou se quiser executar em prazos diferentes no mesmo par ao mesmo tempo . . você ?

As barras não são confiáveis, é uma má idéia usar Barras. . você deve usar o Tempo em seu lugar.

Seu Slippage não está ajustado para corretores de 4/5 dígitos . . nem seu TP ou SL.

Se você fizer seu SL pequeno você terá erro 130 porque você não está verificando se ele está muito próximo ou permitindo que se espalhe.

Seu corretor é um corretor ECN? você não pode definir o SL & ou TP quando você faz uma ordem de mercado com um corretor ECN, você tem que codificar um OredrModify() para adicionar o SL & ou TP depois que a ordem é feita . .

Devo continuar ? isto é coisa BÁSICO. . estes pontos surgem neste Fórum dia sim, dia não . .

E você não entende muito disso porque na verdade você não codificou nada . . você usou o código de outra pessoa . . " Expert Advisor Builder". Há apenas um atalho: Empregos

 
mrmedia:

você diz ....... "Your Slippage is not adjusted for 4/5 Digit Broker "

Eu digo ...... meu entendimento é que está em pontos ou pips ou o que quer que seja - já

isto é, 3 é bom de usar e 3*mypoint é incorreto.

Alguém pode confirmar isto?




Leia isto https://www.mql5.com/en/forum/138912
 
mrmedia:

você diz ....... "Your Slippage is not adjusted for 4/5 Digit Broker "

Eu digo ...... meu entendimento é que está em pontos ou pips ou o que quer que seja - já

Slippage = 3 significa 0,3 pips em um Corretor de 5 dígitos e 3 pips em um Corretor de 4 dígitos.
 
RaptorUK:
Slippage = 3 significa 0,3 pips em um Corretor de 5 dígitos e 3 pips em um Corretor de 4 dígitos.

Mais uma vez claro como lama.

err 0,98330

escorregamento = 3 = onde está o preenchimento ?

slippage = 3*SymPoints (corretor de 5 dígitos) = onde está o preenchimento?

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

if( SymPoints == 0,001 ) { SymPoints = 0,01; SymDigits = 3; }

caso contrário if( SymPoints == 0,00001 ) { SymPoints = 0,0001; SymDigits = 5;

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

 
mrmedia:

Mais uma vez claro como lama.

err 0,98330

escorregamento = 3 = onde está o preenchimento ?

slippage = 3*SymPoints (corretor de 5 dígitos) = onde está o preenchimento?

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

if( SymPoints == 0,001 ) { SymPoints = 0,01; SymDigits = 3; }

caso contrário if( SymPoints == 0,00001 ) { SymPoints = 0,0001; SymDigits = 5;

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

Veja a documentação para OrderSend, que tipo é Slippage ? como pode oslippage = 3*SymPointsfazer sentido ?
 
O escorregamento permitido no preço é sempre o escorregamento(int) que você especifica multiplicado pela variável interna Ponto. O valor do Ponto muda entre corretores de 4 e 5 dígitos.
 
eu não sei
 
weinux:
eu não sei
Obrigado, isso foi uma grande ajuda.
 
Você não pode usar symPoints para escorregamento int(3 * symPoints) == 0 sem escorregamento.
//++++ 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());
     */