![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
O que você quer ganhar com isso? Para ser honesto, eu não entendo. No início eu pensava que se pretendia uma estrutura à la, mas não, nenhuma classe de invólucros para indicadores, ordens, algoritmos padrão de tomada de decisão, nada. Embora muito mais legível é esta construção: fast.Get(2)>=slow.Get(1); (é apenas para dar o exemplo), mas a declaração:
CMA fast=novo CMA(NULL,0,12,...);
CMA slow=novo CMA(NULL,0,100,...);
Agora podemos discutir isso, enquanto você, IMHO, está pisoteando no local.
Por exemplo, em vez de fast.Get(2)>=slow.Get(1); é um código bastante legal e de trabalho:
table[FAST_MA][1] >=table[SLOW_MA][2]
funciona como uma planilha, com excelência. Ela é resumida em uma tabela, não por manipulações individuais, porque os dados (fórmulas) podem ser interdependentes.
Poderia ser feito (só que ainda não o tenha feito em uma biblioteca específica):
fast=table[FAST_MA]; slow=table[SLOW_MA];
e depois rápido[2]>baixo[1] é ainda mais fácil de ler
e todos os cálculos internos serão realizados "sob demanda".
Também por exemplo, ao invés de fast.Get(2)>=slow.Get(1); código bastante legal e de trabalho:
table[FAST_MA][1] >=table[SLOW_MA][2]
funciona como com uma planilha, com o Excel. Ela é resumida em uma tabela, não por manipulações individuais, porque os dados (fórmulas) podem ser interdependentes.
Pode ser feito (só que ainda não o fez em uma biblioteca específica):
fast=table[FAST_MA]; slow=table[SLOW_MA];
e depois rápido[2]>baixo[1] lê ainda mais fácil
e todos os cálculos internos serão feitos "sob demanda".
Concordo, é muito difícil ler seu código, mesmo que você conheça o idioma.
Na verdade, esta regra funciona para qualquer código de terceiros. A única pergunta é qual código não é difícil, mas mais fácil de ler.
E aqui é mais fácil de ler e editar quase sempre o código MQL4. Os desenvolvedores adivinharam isso uma vez.
Na verdade, esta regra funciona para qualquer código de terceiros. A única pergunta é qual código não é difícil, mas mais fácil de ler.
E é mais fácil de ler e editar quase sempre o código MQL4. Os desenvolvedores adivinharam isso uma vez.
Mas deixe-me fazer-lhe uma pergunta. Qual foi o palpite? O padrão C/C++, exceto para consultas específicas relacionadas a comércio e gráficos, pode ser considerado como "windows.h" em C+++.
Portanto, respeito aos desenvolvedores por não reinventar a roda, embora a proibição de elos seja um inequívoco menos, não pude me regozijar quando caí em C/C++ após mql. É por isso que, se um milagre acontecer, talvez você deva considerar, como alternativa, como C# usafe, especialmente para pessoas como eu, como se você quisesse bater na parede, matar-se, nós o advertimos.
Deixe-me fazer-lhe uma pergunta. Qual é o palpite?
Kodobase está cheio de MT5 EAs que são remakes de MT4 EAs. Compare o código do original e do remake.
Obviamente, descobrir a lógica do original do MT4 é muito mais fácil. Mas é ainda mais fácil quando há a necessidade de corrigir algo no TS. Não é por nada que a MQL4 é um padrão para discussão de algoritmos comerciais em fóruns em todo o mundo. Nenhum outro idioma, a não ser MQL4. E tem desempenhado um grande papel na popularidade do MT4, e não o contrário.
E se falamos das conversões do MT5, elas são tortas - nem sempre funcionam. Um exemplo simples. Você envia um pedido para fechar uma posição, mas recebe uma ordem comercial em vez de fechá-la. Há muitos truques que precisam ser resolvidos para ir para a conta real. Com o MT4, é simples e confiável.
O kodobase está cheio de MT5 EAs que são remakes de MT4 EAs. Compare o código do original e do remake.
Obviamente, é muito mais fácil entender a lógica do MT4 original. Mas é ainda mais fácil quando há a necessidade de corrigir algo no TS. Não é por nada que a MQL4 é um padrão para discussão de algoritmos comerciais em fóruns em todo o mundo. Nenhum outro idioma, a não ser MQL4. E tem desempenhado um grande papel na popularidade do MT4, e não o contrário.
E se falamos das conversões do MT5, elas são tortas - nem sempre funcionam. Um exemplo simples. Você envia um pedido para fechar uma posição, mas recebe uma ordem comercial em vez de fechá-la. Há muitos truques que precisam ser tratados para ir para a conta real. Com o MT4, é simples e confiável.
Portanto, é um absurdo trabalhar com ordens/posições por analogia. Tenho uma classe de embalagem para ela em mql4 e duas diferentes em mql5 porque em mt4 é uma entidade e em mt5 são duas diferentes. Agora planejo implementar a classe de embalagem nelas e esquecer de trabalhar com encomendas como fiz há meio ano atrás em mql4.
É por isso que devemos aprender a mesma coisa em matemática e não em matemática, tudo funciona bem e vai bem lá, mas primeiro temos que aprender a mecânica comercial do câmbio e do Forex e levar em conta suas diferenças. Tudo o que é necessário para fazer isso, os desenvolvedores deram e descreveram nas docas, e depois cabe a você.
Tente ampliar seus horizontes, pois o que você escreveu é realmente lamuriante.
Parece ser uma muleta. Além dos amortecedores de limpeza, que o terminal vai criar de qualquer forma, adicionamos também matrizes duplas. Eu entendo que você vai reservar a memória para eles até a profundidade total da história (para M1 USHORT_MAX, se eu me lembrar corretamente *8 bytes) ou você planeja usar o caro ArrayResize regularmente no processo de operação?
Aloco memória a eles, é claro. A uma profundidade não maior que a necessária para os cálculos e depuração. No fragmento dado, são 30, o que é mais do que suficiente. Se em algum lugar for necessário calcular, por exemplo, o desvio padrão de profundidade 50, então o cache deve ser aumentado. E é apenas para agilizar os cálculos.
Tente ampliar seus horizontes, pois o que você escreveu é realmente lamuriante.
Estou bem, mas é assim que a conexão entre posição e ordem é implementada em mql5 (como parte do último trabalho foi, em princípio, nesta forma, já será incluída na biblioteca para contas de hedge).