Rejoignez notre page de fans
- Vues:
- 10
- Note:
- Publié:
-
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
MQTTFive — client MQTT 5.0 pour MQL5
Bibliothèque (#include) permettant de connecter les experts MetaTrader 5 et les scripts à des serveurs MQTT (Mosquitto, EMQX, HiveMQ). Elle permet de publier des cours et des signaux, de recevoir des commandes provenant de systèmes externes et de surveiller l'état des experts.
Sans DLL — MQL5 pur, API de sockets native. Protocole MQTT v5.0.
Fonctionnalités
- QoS 0, 1, 2 avec réenvoi automatique des messages non transmis
- Propriétés CONNECT/CONNACK : durée de la session, nombre maximal de paquets reçus, nombre maximal d’alias de sujets.
- Messages différés
- Alias de sujets – réduction du trafic sur les sujets redondants.
- Gestion du flux — prise en compte du quota sur le volume maximal de données reçues.
- Options d’abonnement : no_local, retain_as_published, retain_handling
- TLS/SSL, charge utile binaire, UTF-8
Installation
- Copiez les 5 fichiers de l'archive dans le dossier MQL5/Include/MQTTFive/
- Dans le code : #include <MQTTFive/MQTTClient.mqh>
Exemple : publication d'un cours
#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(); } }
Exemple : abonnement aux signaux
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éthodes principales
| Connect(host, port, params, useTLS) | Connexion au broker |
| Disconnect() | Fermeture correcte de la session |
| ForceDisconnect() | Rupture de la connexion TCP (lancée par Will) |
| Publish(topic, payload, qos, retain) | Publication d'un message |
| Subscribe(topic, qos) | S'abonner à ce sujet |
| Unsubscribe(topic) | Se désabonner |
| Loop() | Traitement des paquets, maintien de la connexion, tentatives répétées |
| SetCallback(func) | Fonction de rappel pour les messages entrants |
Configuration requise
- MetaTrader 5 (version 3390+)
- Courtier MQTT 5.0 (Mosquitto >= 5.0, EMQX, HiveMQ)
Documentation : github.com/chekh/MQTTFive
Licence : MIT
Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/73373
Consecutive Bars (with history) indicator for MT5
An oscillator that shows 2 line studies: 1 for consecutive up bars, and 1 for consecutive down bars.
Multi-Timeframe Candle Map
An educational MT5 panel that maps the live price vertically inside four developing candles and summarizes location alignment, dispersion, candle direction and time remaining.
ShowMinMaxDayLevels
The indicator displays high and low levels of a day (specified by the input parameter value) on any timeframe.
MA_AC_Stochastic_Signal
This indicator shows trend direction (Moving Average) and trading signals (Stochastic + Accelerator).
