Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Visualizações:
- 13
- Avaliação:
- Publicado:
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
MQTTFive — cliente MQTT 5.0 para MQL5
Biblioteca (#include) para conectar consultores do MetaTrader 5 e scripts a servidores MQTT (Mosquitto, EMQX, HiveMQ). Ela permite publicar preços e sinais, receber comandos de sistemas externos e monitorar o status dos consultores.
Sem DLL — MQL5 puro, API de soquetes própria. Protocolo MQTT v5.0.
Recursos
- QoS 0, 1, 2 com repetição automática de mensagens não enviadas
- Propriedades CONNECT/CONNACK: tempo de validade da sessão, número máximo de pacotes recebidos, número máximo de pseudônimos de tópicos.
- Mensagens agendadas com atraso na publicação
- Pseudônimos de tópicos — redução do tráfego em tópicos duplicados.
- Gerenciamento de fluxo — controle da cota para o volume máximo de dados recebidos.
- Opções de assinatura: no_local, retain_as_published, retain_handling
- TLS/SSL, carga útil binária, UTF-8
Instalação
- Copie os 5 arquivos do arquivo compactado para a pasta MQL5/Include/MQTTFive/
- No código: #include <MQTTFive/MQTTClient.mqh>
Exemplo — publicação de preço
#include <MQTTFive/MQTTClient.mqh> void OnStart () { MQTTClient client; MQTTConnectParams params; params.Init(); params.client_id = "price_pub" ; if (client.Connect( "127.0.0.1" , 1883 , params)) { double bid = SymbolInfoDouble ( _Symbol , SYMBOL_BID ); client.Publish( "mt5/price/" + _Symbol , DoubleToString (bid, _Digits ), 0 ); client.Disconnect(); } }
Exemplo — assinatura de sinais
MQTTClient *mqtt; void OnSignal( string &topic, uchar &payload[], uint payload_len) { string msg = CharArrayToString (payload, 0 , ( int )payload_len, CP_UTF8 ); Print ( "Signal: " , topic, " = " , msg); } void OnStart () { mqtt = new MQTTClient(); mqtt.SetCallback(OnSignal); MQTTConnectParams params; params.Init(); params.client_id = "signal_sub" ; mqtt.Connect( "127.0.0.1" , 1883 , params); mqtt.Subscribe( "trade/signal/#" , 1 ); while (! IsStopped ()) { mqtt.Loop(); Sleep ( 100 ); } mqtt.Disconnect(); delete mqtt; }
Métodos principais
| Connect(host, port, params, useTLS) | Conexão com o broker |
| Disconnect() | Encerramento correto da sessão |
| ForceDisconnect() | Interrupção da conexão TCP (inicia o Will) |
| Publish(tópico, carga, qos, retenção) | Publicação de mensagem |
| Subscribe(topic, qos) | Inscrever-se neste tópico |
| Unsubscribe(tópico) | Cancelar a assinatura |
| Loop() | Processamento de pacotes, manutenção da conexão, tentativas repetidas |
| SetCallback(func) | Função de retorno de chamada para mensagens recebidas |
Requisitos
- MetaTrader 5 (versão 3390+)
- Broker MQTT 5.0 (Mosquitto >= 5.0, EMQX, HiveMQ)
Documentação: github.com/chekh/MQTTFive
Licença: MIT
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/73373
Institutional Markov Chain Transition Matrix
Um mecanismo de probabilidade estocástica quantitativa que utiliza matrizes de transição de cadeias de Markov para prever matematicamente a porcentagem de probabilidade de continuação de uma tendência de alta ou de baixa no próximo ciclo de execução algorítmica.
Institutional Market Reversal - The SMC way
O IMR é um indicador quantitativo de reversão com várias camadas, projetado para traders discricionários que se baseiam na ação do preço e se recusam a negociar às cegas. Ele ajuda os traders a compreender qual é o regime atual do mercado: se trata de uma fase de acumulação, distribuição ou continuação.
Accumulation/Distribution
O Indicador Accumulation/Distribution (Acumulação/Distribuição ou A/D) é determinado pelas mudanças de preço e volume.
Accelerator Oscillator (AC)
O Indicador Acceleration/Deceleration (Aceleração/Desaceleração ou AC) mede a aceleração e a desaceleração da força motriz atual do mercado.
