Discussão do artigo "Dados de mercado sem intermediários: conectando MetaTrader 5 à MOEX via ISS API" - página 2

 
Denis Kirichenko moexindex.mqh, na definição da enumeração MOEX_SECURITYTYTYPES, vejo o seguinte:


Por exemplo, uma constante nomeada é definida como currency-gold_metal. Provavelmente, a entrada correta poderia ser currency_gold_metal.

E assim, o novo compilador (build 5200) jura que os nomes de alguns identificadores coincidem:

Após uma análise mais detalhada do problema, estou inclinado a pensar que o erro não está relacionado ao símbolo de ponto, mas ao fato de que os nomes dos itens de enumeração agora estão consolidados entre todas as enumerações.

Não tenho ideia de como corrigir isso no nível do aplicativo. Se você adicionar o nome da enumeração ao identificador da variável, não terá comprimento suficiente permitido para a variável na maioria dos lugares.

Acho que o mais fácil por enquanto é editar as duplicatas manualmente, por exemplo, para adicionar números.

 

Sim, ocaractere de ponto (- no meio, código Unicode 0x00B7) funciona.

Há outro problema. Tentei alterar as enumerações. Em particular:

enum MOEX_SECURITYCOLLECTIONS
{
  no_securitycollections = 0, // --//--
  sec_coll_currency_futures_delivery_all = 254, // currency_futures (currency_futures_delivery_all) Todas as moedas que podem ser entregues FUCHERS
  sec_coll_currency_futures_delivery_cny = 250, // currency_futures (currency_futures_delivery_cny) FUCHERS de entrega de CNY\/RUB
  sec_coll_currency_futures_delivery_eur = 255, // currency_futures (currency_futures_delivery_eur) FUCHERS de entrega de EUR\/RUB
  sec_coll_currency_futures_delivery_others = 293, // currency_futures (currency_futures_delivery_others) FUCHERS de entrega de outras moedas
  sec_coll_currency_futures_delivery_usd = 252, // currency_futures (currency_futures_delivery_usd) FUCHERS de entrega de USD\/RUB
...
  sec_coll_stock_shares_three = 162, // stock_shares (stock_shares_three) Nível 3
  sec_coll_stock_shares_two = 161, // stock_shares (stock_shares_two) Nível 2
};

O compilador funcionou, pelo menos, sem erros. Mas. Ao compilar o URL, o script moexmarket produziu esse URL:

2025.08.18 19:50:05.260 Alert: Problematic URL: https://iss.moex.com/iss/engines/engine_stock/markets/shares/securities.json?iss.meta=off&leaders=1&security_collection=s ec_coll_stock_shares_one

onde tem isso no final da linha:

security_collection= sec_coll_stock_shares_one

Aparentemente, precisamos de alguma forma modificar a função nativa EnumToString() para obter stock_shares_one em vez de sec_coll_stock_shares_one.

 
Denis Kirichenko moexmarket forneceu este endereço:

onde, no final da linha, há isto:

Aparentemente, precisamos de alguma forma modificar a função nativa EnumToString() para obter stock_shares_one em vez de sec_coll_stock_shares_one.

Bem, se uma resolução de conflito única for suficiente, tente isso:

...
stock_shares·stock_shares_one = 160, // stock_shares (stock_shares_one) Nível 1
...

Embora especificamente com essa enumeração, não esteja claro para mim por que os elementos entram em conflito com algo - em particular, stock_shares_one está apenas em MOEX_SECURITYCOLLECTIONS (uma lista geral de coleções) e em MOEX_SECURITYCOLLECTIONS_STOCK_SHARES (uma coleção específica para uma determinada seção, uma de muitas), que não está conectada em meus exemplos, pois.porque todas essas enumerações "pequenas" são cobertas pela diretiva MOEX_DEMO_INPUTS e desativadas por padrão - elas são reservadas para uma abordagem diferente de criação de programas a partir do intercâmbio de APIs, em que os links são definidos de forma mais rigorosa no momento da compilação (ou seja, grosso modo, quando o programa é destinado a uma seção específica).

 

Olá, caros conhecedores!

Preciso testar um Expert Advisor no testador de estratégias do MT5. Vocês podem me dizer como um usuário simples, que não tem conhecimentos de administração e programação, pode conectar o MT5 ao MOEX-FORTS (corretor BKS) nas realidades atuais?

Muito obrigado!

 
Profitexcell testador de estratégias do MT5. Você pode me dizer como um usuário simples, que não tem conhecimentos de administração e programação, pode conectar o MT5 ao MOEX-FORTS (corretor BKS) nas realidades atuais?

Essa é uma pergunta dividida em duas partes, portanto, a resposta também é dividida em duas partes.

No testador de estratégias, é possível testar um Expert Advisor em ferramentas personalizadas criadas com base nos dados solicitados por meio da API descrita diretamente do MOEX (sem um corretor).

O corretor mencionado, até onde eu sei, não funciona com o MT5, portanto, é problemático negociar a partir do MT5 sem habilidades administrativas e de programação (necessárias para a integração com as interfaces oferecidas pelo corretor).

 
Boa tarde. Os arquivos são de tamanhos diferentes, veja a captura de tela.
 
Sergey Seriy #:
Boa tarde. Os arquivos são de tamanhos diferentes, veja a captura de tela.
Você pode me dizer mais sobre o que está errado? De qualquer forma, somente a MQ pode editar o artigo após a publicação.
 
Stanislav Korotky #:
...
(Já fiz isso antes, mas o seu é mais legal, para todos os gostos)
 
Stanislav Korotky #:
Você pode explicar melhor o que está errado? De qualquer forma, somente a MQ pode editar um artigo após a publicação.
Abaixo do seu artigo, há uma inscrição "Attached files" (Arquivos anexados) e dois links para arquivos - "Download ZIP" e MQL5MOEX.zip. Eles são de tamanhos diferentes. (O fxsaber teve um problema semelhante, é um desenvolvedor bastante conhecido como você, e descobriu-se que os arquivos continham fontes diferentes, em um dos arquivos eles estavam desatualizados).
 
Sergey Seriy #:
Abaixo do seu artigo, há uma inscrição "Attached files" (Arquivos anexados) e dois links para arquivos - "Download ZIP" e MQL5MOEX.zip. Eles são de tamanhos diferentes. (O fxsaber teve um problema semelhante, é um desenvolvedor bastante conhecido como você, e descobriu-se que os arquivos continham fontes diferentes, em um dos arquivos eles estavam desatualizados).
Portanto, parece ser um alarme falso - havia um arquivo no arquivo. É por isso que seu tamanho era menor que o do segundo arquivo, que é o MQL5MOEX.zip. Se você descompactar todos eles, eles são os mesmos (mas o fxsabera realmente teve uma situação, e não uma vez, com confusão do conteúdo dos arquivos de seus códigos postados no site).