Fan sayfamıza katılın
- Görüntülemeler:
- 18
- Derecelendirme:
- Yayınlandı:
-
Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git
MQTTFive — MQL5 için MQTT 5.0 istemcisi
MetaTrader 5 danışmanlarını ve komut dosyalarını MQTT brokerlerine (Mosquitto, EMQX, HiveMQ) bağlamak için kullanılan kütüphane (#include). Bu kütüphane, fiyatları ve sinyalleri yayınlamaya, harici sistemlerden komutlar almaya ve danışmanların durumunu izlemeye olanak tanır.
DLL içermez — saf MQL5, özel soket API'si. MQTT v5.0 protokolü.
Özellikler
- QoS 0, 1, 2 ile gönderilemeyen mesajların otomatik olarak tekrarlanması
- CONNECT/CONNACK özellikleri: oturum süresi, kabul edilen maksimum paket sayısı, maksimum tema takma adı sayısı.
- Yayın gecikmeli mesajlar
- Konu takma adları – yinelenen konularda trafik azaltma.
- Akış yönetimi — alınabilecek maksimum veri hacmi kotasının hesaplanması.
- Abonelik seçenekleri: no_local, retain_as_published, retain_handling
- TLS/SSL, ikili yük, UTF-8
Kurulum
- Arşivdeki 5 dosyayı MQL5/Include/MQTTFive/ klasörüne kopyalayın
- Kodda: #include <MQTTFive/MQTTClient.mqh>
Örnek - fiyat yayınlama
#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(); } }
Örnek - Sinyallere abone olma
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; }
Temel yöntemler
| Connect(host, port, params, useTLS) | Broker'a bağlanma |
| Disconnect() | İşlemi düzgün bir şekilde sonlandırma |
| ForceDisconnect() | TCP bağlantısını kesme (Will'i başlatır) |
| Publish(konu, yük, qos, saklama süresi) | Mesajın yayınlanması |
| Subscribe(topic, qos) | Bu konuya abone olun |
| Unsubscribe(topic) | Aboneliği iptal et |
| Loop() | Paket işleme, bağlantı sürdürme, yeniden denemeler |
| SetCallback(func) | Gelen mesajlar için geri arama işlevi |
Gereksinimler
- MetaTrader 5 (3390+ sürümü)
- MQTT 5.0 brokerı (Mosquitto >= 5.0, EMQX, HiveMQ)
Belgeler: github.com/chekh/MQTTFive
Lisans: MIT
MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal kod: 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.
Prop Firm Risk Dashboard - daily loss and drawdown monitor
A read-only on-chart panel that tracks your account against a daily-loss limit and a max-drawdown limit, with color-coded OK / WARNING / DANGER status. Monitoring only - it does not place, modify or close any orders.
ShowMinMaxDayLevels
The indicator displays high and low levels of a day (specified by the input parameter value) on any timeframe.
