Alım-satım robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Telegram üzerinde bulun!
Fan sayfamıza katılın
Kodu ilginç mi buldunuz?
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
Kodu beğendiniz mi? MetaTrader 5 terminalinde deneyin
Kütüphaneler

Universal Pip Value and Dynamic Lot Calculator Class for MQL5 - MetaTrader 5 için kütüphane

Görüntülemeler:
7
Derecelendirme:
(2)
Yayınlandı:
\MQL5\Include\
MQL5 Freelance Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git

CRiskCalculator, Uzman Danışmanlar ve işlem araçları için risk yönetimi ve hacim hesaplamalarını gerçekleştirmek üzere tasarlanmış, nesne yönelimli bir MQL5 başlık kütüphanesidir . Belirli bir hesap risk tutarı ve pip cinsinden Stop Loss mesafesine göre parasal pip değerlerini ve kesin lot büyüklüklerini hesaplar .

Otomatik ticarette sık karşılaşılan bir sorun, çapraz döviz çiftlerinde pozisyon büyüklüğünün hesaplanmasıdır (örneğin, EUR cinsinden bir hesapta GBPJPY ticareti yapmak) . Bu sınıf, MetaTrader 5’in yerel sembol özelliklerini, çapraz döviz çiftleri için yedek bir dönüştürme sistemiyle birleştirerek bu sorunu çözer .

Temel Özellikler

  • Çift Motorlu Hesaplama: Birincil hesaplama yöntemi olarak yerel broker özelliklerini ( SYMBOL_TRADE_TICK_VALUE ve SYMBOL_TRADE_TICK_SIZE ) kullanır . Bu parametreler mevcut değilse veya broker tarafından başlatılmamışsa, otomatik olarak manuel baz/fiyat para birimi çıkarma ve dönüştürme oranı sorgularına geri döner .

  • Broker Parametre Normalleştirme: Hesaplanan hacimleri otomatik olarak SYMBOL_VOLUME_MIN ile SYMBOL_VOLUME_MAX arasında sınırlar ve broker reddi hatalarını (TRADE_RETCODE_INVALID_VOLUME gibi) önlemek için SYMBOL_VOLUME_STEP değerine uyarlar .

  • Temiz OOP Tasarımı: CRiskCalculator sınıfı içinde kapsüllenmiş olup küresel kapsamda karmaşıklık yaratmaz; bu sayede mevcut EA projelerine veya özel göstergelere kolayca eklenebilir .

  • Kendi Kendini Yapılandırma: Başlatma sırasında mevcut hesap temel para birimini (ACCOUNT_CURRENCY) otomatik olarak algılar .

Entegrasyon Örneği

Bu sınıfı Expert Advisor'ınızda veya komut dosyanızda kullanmak için, CRiskCalculator.mqh dosyasını MQL5/Include/ dizinine yerleştirin ve nesneyi oluşturun :

#include <CRiskCalculator.mqh>

// Grafikte yüksek kontrastlı bir panel oluşturmaya yarayan yardımcı işlev
void DrawChartPanel(const string &lines[])
  {
   int x = 20, y = 30;
   int width = 280, lineHeight = 18;
   int height = (ArraySize(lines) * lineHeight) + 20;

   // 1. Arka Plan Kutusu Oluştur (Beyaz, siyah veya özel grafiklerde görünür)
   string bgName = "RiskCalc_BG";
   if(ObjectFind(0, bgName) < 0)
      ObjectCreate(0, bgName, OBJ_RECTANGLE_LABEL, 0, 0, 0);

   ObjectSetInteger(0, bgName, OBJPROP_CORNER, CORNER_LEFT_UPPER);
   ObjectSetInteger(0, bgName, OBJPROP_XDISTANCE, x);
   ObjectSetInteger(0, bgName, OBJPROP_YDISTANCE, y);
   ObjectSetInteger(0, bgName, OBJPROP_XSIZE, width);
   ObjectSetInteger(0, bgName, OBJPROP_YSIZE, height);
   ObjectSetInteger(0, bgName, OBJPROP_BGCOLOR, clrDarkSlateGray);
   ObjectSetInteger(0, bgName, OBJPROP_BORDER_COLOR, clrDodgerBlue);
   ObjectSetInteger(0, bgName, OBJPROP_BORDER_TYPE, BORDER_FLAT);
   ObjectSetInteger(0, bgName, OBJPROP_SELECTABLE, false);

   // 2. Panel içindeki metin satırlarını görüntüle
   for(int i = 0; i < ArraySize(lines); i++)
     {
      string lblName = "RiskCalc_Lbl_" + IntegerToString(i);
      if(ObjectFind(0, lblName) < 0)
         ObjectCreate(0, lblName, OBJ_LABEL, 0, 0, 0);

      ObjectSetInteger(0, lblName, OBJPROP_CORNER, CORNER_LEFT_UPPER);
      ObjectSetInteger(0, lblName, OBJPROP_XDISTANCE, x + 12);
      ObjectSetInteger(0, lblName, OBJPROP_YDISTANCE, y + 10 + (i * lineHeight));
      ObjectSetString(0, lblName, OBJPROP_TEXT, lines[i]);
      ObjectSetString(0, lblName, OBJPROP_FONT, "Segoe UI");
      ObjectSetInteger(0, lblName, OBJPROP_FONTSIZE, 9);
      ObjectSetInteger(0, lblName, OBJPROP_COLOR, (i == 0) ? clrYellow : clrWhite);
      ObjectSetInteger(0, lblName, OBJPROP_SELECTABLE, false);
     }

   ChartRedraw(0);
  }

void OnStart()
  {
   // Risk hesaplayıcısını başlat
   CRiskCalculator riskCalc;

   string symbol     = _Symbol;
   double riskAmount = 100.0; // Hesap para birimindeki hedef risk
   double slPips     = 25.0;  // Pip cinsinden Zarar Durdurma mesafesi

   // Parametreleri hesapla
   double lotSize      = riskCalc.CalculateLotSize(symbol, riskAmount, slPips);
   double pipValPerLot = riskCalc.GetPipValuePerLot(symbol);

   // Çıktı satırlarını hazırla
   string info[6];
   info[0] = "=== RISK & POSITION CALCULATOR ===";
   info[1] = "Symbol: " + symbol;
   info[2] = "Account Currency: " + AccountInfoString(ACCOUNT_CURRENCY);
   info[3] = "Target Risk: $" + DoubleToString(riskAmount, 2);
   info[4] = "Calculated Lot Size: " + DoubleToString(lotSize, 2) + " lots";
   info[5] = "Pip Value (1 Lot): " + DoubleToString(pipValPerLot, 2);

   // Grafik üzerinde GUI panelini görüntüle
   DrawChartPanel(info);
  }
Grafikteki örnek

Sınıf Referansı

Yöntem Dönüş Türü Açıklama
GetPipValuePerLot(string sembol) double

Hesap para biriminde 1 standart lot için 1 pip'in parasal değerini döndürür .

GetPipValue(string sembol, double hacim) double

Belirtilen hacim için 1 pip'in toplam parasal değerini döndürür .

CalculateLotSize(string sembol, double riskMiktarı, double slPips) double

Hedef nakit riski ve Stop Loss için lot büyüklüğünü hesaplar ve pip cinsinden normalleştirir .


MetaQuotes Ltd tarafından İngilizceden çevrilmiştir.
Orijinal kod: https://www.mql5.com/en/code/77130

Gueta Position Sizer: Risk and Lot Guard HUD Gueta Position Sizer: Risk and Lot Guard HUD

MT5 için gerçek zamanlı risk hesaplayıcı ve lot büyüklüğü koruma HUD’si. Hesap bakiyesi, hedef risk yüzdesi ve dinamik ATR Stop Loss değerlerine göre kesin lot büyüklüğünü hesaplar; ayrıca minimum lot aşımı uyarısı da sunar.

RJO Daily Pivot Levels  Classic and  Fibonacci for MT5 RJO Daily Pivot Levels Classic and Fibonacci for MT5

MetaTrader 5 için Klasik ve Fibonacci yöntemlerini kullanan Günlük Pivot Noktaları göstergesi. Önceki tamamlanmış günlük mum çubuğunu kullanarak PP, R1-R3 ve S1-S3 değerlerini gösterir.

Margin Risk Simulator Margin Risk Simulator

Shows the prices of the current symbol at which the account reaches margin call and stop out, with a what-if mode for extra volume, the maximum volume you can add and pending orders that trigger on the way.

GridPro Panel — open-source grid trading EA with on-chart control panel GridPro Panel — open-source grid trading EA with on-chart control panel

open-source grid trading EA with on-chart control panel