Erros, bugs, perguntas - página 456

 
_____Life_Line:

Pode implementá-lo de diferentes maneiras, dependendo da sua tarefa.

Dê uma vista de olhos às secções de ajuda da MQL5 "Chart Periods", "Instrument Information" e preste atenção à função ChartSetSymbolPeriod().

Para a implementação, muito provavelmente terá de prescrever uma lista de TFs e Símbolos ou obtê-los do ambiente do mercado.

 
Urain:

Isto pode ser implementado de diferentes maneiras, dependendo da sua tarefa.

Veja as secções de ajuda da MQL5 "Períodos Gráficos" , "Informação sobre Instrumentos" e preste atenção à função ChartSetSymbolPeriod().

Para a implementação, muito provavelmente terá de prescrever uma lista de TFs e Símbolos ou obtê-los do ambiente do mercado.

Obrigado, já descobri. Funcionou. Coloquei todas as enumerações necessárias no interruptor. O erro foi na escolha de um tipo de string correcto para o par e ENUM_TIMEFRAMES para o período.
 

Olá a todos, há uma nuance muito desagradável quando se fecham posições abertas,

O lucro obtém, por exemplo, +150$ e fecha tudo: MAS no gráfico viu uma imagem assim:

decidiu fazer um pequeno aditamento antes de fecharmos todas as posições sobre os diferentes símbolos no código que assim é:

    double bal = AccountInfoDouble(ACCOUNT_BALANCE);
    double eqv = AccountInfoDouble(ACCOUNT_EQUITY);
    if (bal < eqv && (tral == false && GetProfit()>= PP))
     {

isto é, quando o lucro em todos os pares é mais do que especificado nos parâmetros, e a equidade é mais do que o equilíbrio, então fechamos

Mas depois destas mudanças a situação não mudou, agora só temos as mesmas nuances num lugar diferente.


Tenho a única explicação para isto: calculámos um lucro de texto que é superior ao que fixámos em +.

e quando começámos a fechar os preços já tinham mudado, ou seja, quando começámos a fechar os preçosUm par de carrapatos em

de carrapatos no testador passou e já estávamos no vermelho enquanto tudo estava a fechar (2 pares de instrumentos

EURUSD .. GBPUSD)

Então ?

 
Im_hungry:

Olá a todos, há uma nuance muito desagradável quando se fecham posições abertas,

.............

Então ???

Existem algumas paragens?
 
MetaDriver:
Tem algum pé?
"Bem, onde é que eles vão buscar os seus pés em Itália, já vi a sua Itália num mapa, bota na bota"(s)quase blindada) :o)
 
MetaDriver:
Há paragens?

Não só arrasto (o que está abaixo em cada carrapato), agora tentou o seguinte código:

    double bal = AccountInfoDouble(ACCOUNT_BALANCE);
    double eqv = AccountInfoDouble(ACCOUNT_EQUITY);
    if (bal < eqv && (tral == false && AccountInfoDouble(ACCOUNT_PROFIT)>= PP))

PP - lucro em parâmetros, e ainda as mesmas falhas, alguns carrapatos e estamos todos com prejuízo ou então...?

Abre por arbitragem em 2 pares (EURUSD ... GBPUSD) e quando alcançamos o lucro desejado

Encerramos.

 

Assegurei-me de que as linhas extra não interferem no fecho rápido das poses,

menos saltos, mas estou cada vez mais inclinado a pensar que é por causa da lentidão do computador,

Já tenho RAM suficiente, mas tenho um CPU completo?

 

Aconselhar sobre como interpretar o estatuto de SYMBOL_TRADE_MODE.

Posso enviar ordens para alterar os níveis de paragem no modo SYMBOL_TRADE_MODE_CLOSEONLY?

 
Im_hungry:

Não só arrasto (o que está abaixo em cada carrapato), agora tentou o seguinte código:

PP - lucro em parâmetros, e ainda as mesmas falhas, alguns carrapatos e estamos todos com prejuízo ou então...?

Abrimos arbitragem em 2 pares (EURUSD ... GBPUSD) e depois de atingirmos o lucro total necessário

Encerramos.

O código fornecido não é suficiente. Há um erro fora dele.
 
MetaDriver:
O código fornecido não é suficiente. O erro está fora dele.

depois disso (

bal < eqv && (tral == false && AccountInfoDouble(ACCOUNT_PROFIT)>= PP && sum>=PP)

) as poses são imediatamente encerradas com este código que foi retirado deste site

   MqlTradeRequest mrequest;                           
   MqlTradeResult mresult;                             
   if(PositionSelect(Symbol_1)==true)
     {
       mrequest.action = TRADE_ACTION_DEAL;              
       if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) mrequest.price = SymbolInfoDouble(Symbol_1,SYMBOL_BID);    
       if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) mrequest.price = SymbolInfoDouble(Symbol_1,SYMBOL_ASK);
       mrequest.symbol = Symbol_1;                         
       mrequest.volume = PositionGetDouble(POSITION_VOLUME);                          
       mrequest.magic = PositionGetInteger(POSITION_MAGIC); ;                           
       if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) mrequest.type= ORDER_TYPE_SELL;                    
       if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) mrequest.type= ORDER_TYPE_BUY;
       mrequest.type_filling = ORDER_FILLING_AON;         
       mrequest.deviation=Prosk;                          
       OrderSend(mrequest,mresult);

Não tenho quaisquer erros em 2 pares de moedas. Vou tentar analisar o que está errado, mas o facto é que obtive resultados diferentes em computadores diferentes com interfaces diferentes e quase sem saltos no fecho

Razão: