Fan sayfamıza katılın
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayı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
Bu kütüphane, iyi bir performans (okuma/yazma) / boyut oranına sahip olan tick depolama biçimiyle çalışmayı uygular.
Biçim.
Orijinal MqlTick'in yalnızca aşağıdaki alanları saklanır:
struct MqlTick { datetime time; // Son fiyat güncelleme zamanı double bid; // Mevcut fiyat Teklif double ask; // Güncel Satış fiyatı double last; // Son anlaşmanın güncel fiyatı (Last) ulong volume; // Mevcut fiyat için hacim Last long time_msc; // Milisaniye cinsinden son fiyat güncelleme zamanı uint flags; // Kene Bayrakları double volume_real; // Mevcut fiyat için hacim Artırılmış doğrulukla son };
Örnekler.
Kütüphane yöntemlerini MetaEditor'de ALT+M kısayol tuşu ile görebilirsiniz. Aşağıda kullanımlarına ilişkin bazı örnekler verilmiştir.
Dosya üzerinden yazma/okuma.
#property script_show_inputs input datetime inFrom = D'2024.12.01'; #include <fxsaber\TicksShort\TicksShort.mqh> // Kısa tik saklama biçimi. void OnStart() { MqlTick Ticks[]; // Kaynak keneler için. if (CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL,(ulong)inFrom * 1000) > 0) { FileSave("Ticks.bin", Ticks); // Dosya boyutlarını karşılaştırabilmemiz için normal tikleri kaydettik. TICKS_SHORT::Save("TicksShort.bin", Ticks); // Tik işaretlerini sıkıştırılmış bir biçimde kaydedin. MqlTick Ticks2[]; // Ezilmiş keneler için. TICKS_SHORT::Load("TicksShort.bin", Ticks2); // Keneler sıkıştırılmış bir formattan indirildi. Print("Ratio = " + DoubleToString((double)FileGetInteger("Ticks.bin", FILE_SIZE) / FileGetInteger("TicksShort.bin", FILE_SIZE), 3)); Print("Correct = " + (string)TICKS_SHORT::IsEqual(Ticks, Ticks2)); // Karşılaştırıldı. } }
Yukarıdaki kod tik işaretlerini yeni bir format dosyasına kaydeder ve bir dosyadan yükler.
Sonuç.
TicksShort_SaveLoad (EURUSD,M1) Ratio = 10.000 TicksShort_SaveLoad (EURUSD,M1) Correct = true
Günlük çıktısı sıkıştırma oranının 10 kat olduğunu gösterir. Ve sıkıştırılmadığında, keneler orijinal olanlarla eşleşir.
Performans.
#property script_show_inputs input datetime inFrom = D'2024.12.01'; #include <fxsaber\TicksShort\TicksShort.mqh> // Kısa tik saklama biçimi. // Dizinin boyutunu bayt cinsinden döndürür. template <typename T> ulong GetSize( const T &Array[] ) { return((ulong)sizeof(T) * ArraySize(Array)); } // Sıkıştırma formatı performans kriteri. template <typename T1, typename T2> double Criterion( const T1 &Decompression[], const T2 &Compression[], const ulong Interval ) { const double Performance = (double)ArraySize(Decompression) / Interval; return(Performance * ((double)GetSize(Decompression) / GetSize(Compression))); } void OnStart() { MqlTick Ticks[]; // Kaynak keneler için. if (CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL,(ulong)inFrom * 1000) > 0) { TICK_SHORT Ticks2[]; // Sıkıştırılmış keneler için. ulong Interval = GetMicrosecondCount(); TICKS_SHORT::Compress(Ticks, Ticks2); // Squeezed. Interval = GetMicrosecondCount() - Interval; const double Performance = (double)ArraySize(Ticks) / Interval; Print("Compress performance: " + DoubleToString(Performance, 1) + " Ticks (millions)/sec."); Print("Compress performance criterion: " + DoubleToString(Criterion(Ticks, Ticks2, Interval), 1)); MqlTick Ticks3[]; // Ezilmiş keneler için. ulong Interval2 = GetMicrosecondCount(); TICKS_SHORT::Decompress(Ticks2, Ticks3); // Unclenched. Interval2 = GetMicrosecondCount() - Interval2; const double Performance2 = (double)ArraySize(Ticks3) / Interval2; Print("Decompress performance: " + DoubleToString((double)ArraySize(Ticks3) / Interval2, 1) + " Ticks (millions)/sec."); Print("Decompress performance criterion: " + DoubleToString(Criterion(Ticks3, Ticks2, Interval2), 1)); Print("Correct = " + (string)TICKS_SHORT::IsEqual(Ticks, Ticks3)); // Karşılaştırıldı. } }
Bu kod, bir kaynak tik dizisini sıkıştırılmış bir diziye ve geri dönüştürür. Performans/verimlilik verileri çıktı olarak verilir.
Sonuç.
TicksShort_Performance (EURUSD,M1) Compress performance: 67.7 Ticks (millions)/sec. TicksShort_Performance (EURUSD,M1) Compress performance criterion: 677.1 TicksShort_Performance (EURUSD,M1) Decompress performance: 42.1 Ticks (millions)/sec. TicksShort_Performance (EURUSD,M1) Decompress performance criterion: 420.9 TicksShort_Performance (EURUSD,M1) Correct = true
Yazma ve okuma işlemleri, orijinal bilgiler korunarak saniyede 40 milyon tikin üzerindeki hızlarda gerçekleştirilir.
Alternatifler.
MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal kod: https://www.mql5.com/ru/code/61126

Pozisyon açma sinyali, T3 gösterge çizgisinin fiyat tarafından geçilmesidir.

Fiyat serisinin çoklu üstel yumuşatması ile T3 hareketli ortalama.

Otomatik TP ve SL Ayarla: "Otomatik TP ve SL Ayarla" (Kar Al ve Zararı Durdur) özelliği, risk ve ödül yönetimini otomatikleştirmek için tasarlanmış herhangi bir ticaret stratejisinde çok önemli bir araçtır. Yatırımcıların, bir işlemin karları güvence altına almak (TP) veya zararları sınırlamak (SL) için otomatik olarak kapatılması gereken sabit fiyat seviyelerini tanımlamasına olanak tanıyarak sürekli manuel izleme ihtiyacını ortadan kaldırır. Bu özellik etkinleştirildiğinde, açtığınız her pozisyon, belirli bir pip sayısı, bakiye yüzdesi veya teknik seviyeler gibi özel parametrelerinize dayalı olarak otomatik olarak önceden tanımlanmış bir Kar Al ve Zararı Durdur seviyesi içerecektir. Bu sadece zaman kazandırmakla kalmaz, aynı zamanda işlemlerinizin ani piyasa hareketlerinden ve duygusal karar verme süreçlerinden korunmasını sağlar.

The Value Area Retracement indicator, is a powerful volume profile-based tool designed to identify key trading levels—Point of Control (POC), Value Area High (VAH), Value Area Low (VAL), and Profile High/Low—across different timeframes. It helps traders spot potential retracement opportunities to the POC, breakout zones, and value areas, making it useful for intraday, swing, and position trading.