Bibliotecas: MT4Orders - página 6

 
Maxim Dmitrievsky:
Sim, funciona assim, obrigado... e a seleção de pedidos fica mais lenta, sim... mas não notei nenhum outro erro até agora.... Boa dica, de fato, faz sentido acelerar a busca de ordens, eu acho.
A enumeração de ordens HISTÓRICAS será acelerada apenas para um testador/otimizador. Na verdade, não pode ser.

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação.

MetaEditor build 1463

Renat Fatkhullin, 2016.11.05 10:38 AM

O histórico de negociações pode mudar como resultado da correção pelos administradores. Por exemplo, correção de picos, cancelamento de transações errôneas ou operações financeiras.

Na realidade, é melhor usar seu cache 99% do tempo, atualizando-o totalmente uma vez por dia/sessão/limpeza e adicionando coisas novas. Isso se seu trabalho for baseado em recálculo pesado e constante do histórico de transações.

Se estiver testando na bolsa, leve em consideração

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Bibliotecas: MT4Orders

fxsaber, 2016.11.07 08:31 pm.

Não recomendo trabalhar com histórico na bolsa de valores via MT4Orders. Ou seja, MODE_TRADE - sem problemas, MODE_HISTORY - não é necessário na Bolsa.
O histórico funciona no Hedge sem erros, exceto nos momentos de proximidade, que exigem muito tempo livre para classificar e comparar diferentes situações de proximidade em ambas as plataformas.
 
fxsaber:
A pesquisa de ordens HISTÓRICAS será acelerada apenas para um testador/otimizador. No mundo real, isso não é possível.
Na realidade, em 99% dos casos, é melhor usar seu cache, atualizando-o completamente uma vez por dia/sessão/limpeza e adicionando um novo cache. Isso se seu trabalho for baseado em um recálculo pesado e constante do histórico de transações.

Considerando o que Renat disse, parece-me que você pode (e deve) em vez de não poder. Você pode atualizar o cache uma vez por hora ou sob demanda.

 
Stanislav Korotky:

Considerando o que Renat disse, parece-me que você pode (e deve) em vez de não pode. Você pode atualizar o cache uma vez por hora ou sob demanda.

Qual é o objetivo do cache em uma negociação real? Você já armazenou o histórico em cache no MT4? A aceleração é necessária quando o desempenho é importante - testador.
 
fxsaber:
// O que não é realizado:
// Momentos CloseBy - ainda não tive tempo de fazer isso. Talvez no futuro, quando necessário.
// Determinar TP e SL de posições fechadas - atualmente (build 1368) a MQL5 não sabe como fazer isso.

Eu escrevi a biblioteca para mim e não uso o CloseBy. É por isso que não o implementei. Talvez eu o adicione assim que estiver pronto.

Como uma solução temporária, adicione estas linhas antes de ativar sua biblioteca

#ifdef __MQL5__
  bool OrderCloseBy( const int Ticket, const int Opposite, const color Arrow_Color = clrNONE )
  {
    return(false);
  }  
#endif

Na verdade, eu percebo um erro

cPoza::closeBy Counter close failed ticketB=168 ticketA=2216 caused error-4754

 
-Aleks-:

De fato, eu pego um erro

cPoza::closeBy Counter close failed ticketB=168 ticketA=2216 caused error-4754.

Então, por que você está tentando fazer closeBy quando foi dito originalmente que essa é a única coisa que não está na implementação?

O OrderCloseBy acima é um quadro em branco para a compilação de sua biblioteca.

É difícil pensar em algo mais simples do que escrever um OrderCloseBy funcional. O problema é a exibição do histórico. As coisas são muito específicas em ambas as plataformas. Tanto que os próprios desenvolvedores estão confusos.

Preciso fazer isso, mas ainda não. Eu mesmo não o usarei, portanto não estou interessado.

 
fxsaber:

Então, por que você está tentando fazer o closeBy quando foi originalmente declarado que essa é a única coisa que não está na implementação?

O OrderCloseBy acima é um quadro em branco para a compilação de sua biblioteca.

É difícil pensar em algo mais simples do que escrever um OrderCloseBy funcional. O problema é a exibição do histórico. As coisas são muito específicas em ambas as plataformas. Tanto que os próprios desenvolvedores estão confusos.

Preciso fazer isso, mas ainda não. Eu mesmo não vou usá-lo, portanto não estou interessado.

Desculpe, não prestei atenção ao código que você me forneceu - fui estúpido.

[Excluído]  
Outra pergunta: como contabilizar corretamente o SYMBOL_FILLING_MODE em sua biblioteca? Digamos que o modo atual não seja compatível com um dos corretores que tenho, posso fazer uma verificação automática?
 
Maxim Dmitrievsky:
Outra pergunta: como levar em conta corretamente o SYMBOL_FILLING_MODE em sua biblioteca? Digamos que o modo atual não seja compatível com uma das corretoras que tenho, posso fazer uma verificação automática?
Para entender melhor do que você está falando, publique o nome do servidor de negociação. Verei o que está errado lá.
[Excluído]  
fxsaber:
Para entender melhor do que estamos falando, publique o nome do servidor de negociação. Verei o que está errado.
Existe o ORDER_FILLING_IOC, eu verifiquei, as negociações são abertas com essa solicitação. Você precisa verificar na biblioteca, porque as ordens também não são modificadas, você precisa verificar em todos os lugares
[Excluído]  
Em geral, descobri o problema - os servidores nem sempre retornam os valores corretos, portanto, há uma confusão e não há como corrigi-la, apenas alterar manualmente o tipo de preenchimento, sim. Houve problemas semelhantes com pessoas aqui no fórum.