Discussão do artigo "Criação de Consultores Multiespecializados com base em Modelos de Comércio" - página 5
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
MetaTrader 5 Client Terminal build 381
...
MQL5: a biblioteca padrão foi atualizada: os métodos Type() das classes CDealInfo, CHistoryOrderInfo, COrderInfo e CPositionInfo foram renomeados para DealType(), OrderType() e PositionType(), respectivamente.
...
Como o modelo depende das classes comerciais básicas, qualquer alteração, mesmo que pequena, em suas interfaces é fundamental. Nesse caso, o erro pode ser facilmente corrigido com a simples alteração do método Type() para o OrderType() correspondente no arquivo TableOrders.mqh.
Em um futuro próximo, os códigos anexados ao artigo serão atualizados para funcionar corretamente nas compilações mais recentes do compilador e do terminal.
chr1sch4n: Não há erro... o código que você reescreveu é idêntico.
Na linguagem C, as instruções case são interrompidas, e é por isso que você precisa inserir a instrução break, de modo que o Buy deve passar para a próxima instrução e ainda executar a ordem.
Consulte: http: //en.wikipedia.org/wiki/Switch_statement ; seção C, C++, Java, PHP, ActionScript, JavaScript; "esse é um exemplo clássico de omissão da linha de interrupção para permitir a passagem"
Parabéns
Uma solicitação - seus comentários nos arquivos em inglês podem ser traduzidos?
Parece que não consigo obter o impressionante backtest mostrado no artigo. Quais são as configurações que preciso fazer?
"Vale a pena descrever a variávelm_timing separadamente. No decorrer do trabalho do Expert Advisor, é necessário chamar determinados eventos em determinados intervalos de tempo.A funçãoOnTimer()não é adequada para isso, pois modelos diferentes podem ter intervalos de tempo diferentes.
Por exemplo, alguns eventos precisam ser chamados a cada nova barra. Para um modelo de negociação em um gráfico horário, esses eventos devem ser chamados a cada hora; para um modelo de negociação em um gráfico diário, a cada nova barra diária. Está claro que esses modelos têm configurações de tempo diferentes e cada um deve ser armazenado em seu próprio modelo de acordo. A estrutura t_period incluída na classe CModel permite armazenar essas configurações separadamente, cada uma em seu próprio modelo.
Esta é a aparência dessa estrutura:
struct t_period { большая структура };Como você pode ver, ela inclui a enumeração usual de timeframes. Para descobrir se uma nova barra ocorreu, precisamos comparar a hora da última barra com a hora registrada na estrutura t_period. Se o tempo não coincidir, então ocorreu uma nova barra, o tempo na estrutura deve ser atualizado para o tempo da barra atual e retornar um resultado positivo (verdadeiro). Se a hora da última barra e a estrutura coincidirem, isso significa que ainda não ocorreu uma nova barra e só precisamos retornar um resultado negativo (falso).
Aqui está uma função que funciona de acordo com o algoritmo descrito:
"
É claro que sou apenas um programador iniciante, mas talvez seja possível determinar o início de uma nova barra para fazer isso (enquanto a variável m_timing é apenas datetime):
Se eu estiver errado com as conclusões, peço desculpas antecipadamente e peço que me corrijam. Se eu não estiver enganado, agradeço a este site e, em particular, a todos os que trabalham aqui - artigos, documentação escrita -, pois comecei a entender alguma coisa.
P.S.: A propósito, obrigado pelo excelente artigo.
Hi,
Como posso aprimorar o modelo ou a função Processing() para oferecer suporte à negociação de pares (outro símbolo)? Agora tudo funciona com o indicador e a negociação subsequente somente no mesmo símbolo. Como posso adicionar Symbol1 e Symbol2 para poder comprar Symbol1 e vender Symbol2 simultaneamente?
Obrigado pela ajuda
P.S.: Ou comprar/vender o Symbol1 com base no comportamento do indicador no Symbol2...
Hi,
Como posso aprimorar o modelo ou a função Processing() para oferecer suporte à negociação de pares (outro símbolo)? Agora tudo funciona com o indicador e a negociação subsequente somente no mesmo símbolo. Como posso adicionar Symbol1 e Symbol2 para poder comprar Symbol1 e vender Symbol2 simultaneamente?
Obrigado pela ajuda
P.S.: Ou comprar/vender o Symbol1 com base no comportamento do indicador no Symbol2...
Corrigido. Obrigado a você.
Hi,
Obrigado por esse excelente artigo...
Na função ReplacedDelayedOrders há a linha de código: for(int b=0;i<history_orders;b++)
Acho que isso causará um loop infinito, ou estou errado?
Acho que a linha de código deve ser: for(int b=0;b<history_orders;b++)
Tchau, T.