Alım-satım robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Facebook üzerinde bulun!
Fan sayfamıza katılın
Komut dosyasını ilginç mi buldunuz?
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
Komut dosyasını beğendiniz mi? MetaTrader 5 terminalinde deneyin
Görüntülemeler:
18
Derecelendirme:
(4)
Yayınlandı:
\MQL5\Scripts\fxsaber\ \MQL5\Include\fxsaber\TicksShort\
MQL5 Freelance 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.

https://www.mql5.com/en/code/30791

MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal kod: https://www.mql5.com/ru/code/61126

T3 göstergesine dayalı alım satım sinyalleri modülü T3 göstergesine dayalı alım satım sinyalleri modülü

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

T3 T3

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

Auto Tp Auto Tp

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.

Value Area Retracement Volume Indicator Value Area Retracement Volume Indicator

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.