Alım-satım robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Telegram ü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östergeler

Döngü Dönemi - MetaTrader 5 için gösterge

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

Gerçek yazar:

Witold Wozniak

Bu göstergenin amacı, bir finansal varlığın fiyatındaki değişim sürecinin periyodikliğini ölçmektir.

Gösterge, hiçbir zaman sabit olmayan mevcut piyasa döngüsünün değerlerini gösterge tamponunda saklar. Bu gösterge, osilatörleri değişen piyasa döngülerine uyarlamak ve onları uyarlanabilir osilatörlere dönüştürmek için öncelikle osilatörlerde kullanılmak üzere tasarlanmıştır.

Gösterge, John Ehlers'in Kasım 2002'de "Technical Analysis Of Stock & Commodities" dergisinde yayınlanan "Using The Fisher Transform" makalesine dayanmaktadır.

Çevrim Süresi Göstergesi

Bu göstergeyi başka bir göstergenin (örneğin, RVI osilatörü) kodunda kullanmak için, gösterge tanıtıcı değişkeni CyclePeriod'u global düzeyde bildirmelisiniz:

//---- gösterge tutamaçları için tamsayı değişkenlerinin bildirimi
int CP_Handle;

Bundan sonra, RVI göstergesinin başlatma bloğunda CyclePeriod gösterge tanıtıcısını almalısınız:

//---- CyclePeriod gösterge tanıtıcısını al
   CP_Handle=iCustom(NULL,0,"CyclePeriod",Alpha);
   if(CP_Handle==INVALID_HANDLE)
     {
      Print(" CyclePeriod gösterge tanıtıcısı alınamadı");
      return(1);
     }

Şimdi, kullanılan göstergenin giriş parametresi olan ve dönem ortalama katsayısını temsil eden yeni bir Alpha değişkeni vardır. Bu değişken, geliştirilmekte olan göstergenin bir girdi değişkeni haline getirilmelidir.

//+----------------------------------------------+
//|| Gösterge giriş parametreleri |
//+----------------------------------------------+
input double Alpha=0.07; // Gösterge ortalama katsayısı 

Ancak eski girdi değişkeni Length, OnCalculate() fonksiyonu içinde yerel bir değişken haline getirilerek girdi parametreleri sayısından çıkarılmalıdır.

Ortalama almak için gösterge, boyutu Length parametresinin değerine göre sabitlenen diziler kullanır:

//---- Değişken dizileri için bellek ayırma 
   ArrayResize(Count,Length);
   ArrayResize(Value1,Length);
   ArrayResize(Value2,Length);

Şimdi bu parametrenin değeri değişir, bu nedenle bu dizilerin boyutlarını bu değişkenin beklenen maksimum değerinden daha küçük yapmamak daha iyidir.

Göstergenin grafiklerini analiz ettikten sonra, bu değerin yüzün üzerine çıkmadığından emin olabiliriz, bu nedenle dizilerin boyutlarını tam olarak bu boyutta yaparız:

//---- Değişken dizileri için bellek ayırma 
   ArrayResize(Count,MAXPERIOD);
   ArrayResize(Value1,MAXPERIOD);
   ArrayResize(Value2,MAXPERIOD);

Ve sonra zaten OnCalculate() bloğunda özel gösterge CyclePeriod 'un tamponundan mevcut çubuk için dönem değerlerini almak ve bunları önceki giriş parametresi Length'in değeri yerine kullanmak gerekir.

//---- ana gösterge hesaplama döngüsü
   for(bar=first; bar<rates_total && !IsStopped(); bar++)
     {
      //---- yeni ortaya çıkan verileri diziye kopyalayın
      if(CopyBuffer(CP_Handle,0,rates_total-1-bar,4,period)<=0) return(RESET);

      Length=int(MathFloor((4.0*period[0]+3.0*period[1]+2.0*period[2]+period[3])/20.0));
      if(bar<Length) Length=bar; // ortalamayı geçerli bir çubuk sayısına kadar kes

Bu durumda, son dört değer CyclePeriod gösterge tamponundan alınır ve doğrusal olarak ağırlıklandırılmış ortalaması alınır, ardından elde edilen değer ortalama dönem Uzunluğu olarak kullanılır. Ve son olarak, gösterge kodunun sonundaki satırı biraz değiştirmeliyiz:

      if(bar<rates_total-1) Recount_ArrayZeroPos(Count,MAXPERIOD);

Sonuç olarak, bir Uyarlanabilir RVI osilatörümüz var:

Şekil 2 RVI ve Uyarlanabilir RVI göstergeleri

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

Günlük Menzil Projeksiyonları Tam Günlük Menzil Projeksiyonları Tam

Mevcut grafiğin tüm çubukları için bir sonraki günlük mumun değişim aralıklarını tahmin etme.

Logging V2 for both MQL4 and MQL5 Logging V2 for both MQL4 and MQL5

CDebugLogger sınıfı, MQL4/5 ortamlarında kullanılmak üzere tasarlanmış esnek ve kapsamlı bir günlük tutma aracıdır. Geliştiricilerin çeşitli önem düzeylerindeki (INFO, WARNING, ERROR, DEBUG) mesajları, zaman damgalarını, işlev imzalarını, dosya adlarını ve satır numaralarını günlük girdilerine dahil etme seçenekleriyle birlikte günlüğe kaydetmelerine olanak tanır. Sınıf, günlükleri ortak bir klasöre ve CSV biçiminde kaydetme özelliğiyle hem konsola hem de dosyalara günlüğe kaydetmeyi destekler. Ayrıca, hassas bilgilerin günlüğe kaydedilmemesini sağlamak için belirli anahtar kelimelere dayalı günlükleri susturma işlevi sunar. Bu sınıf, çok çeşitli hata ayıklama ve izleme ihtiyaçlarını karşılayan özelleştirilebilir özelliklerle MQL4/5 uygulamalarında sağlam günlük mekanizmaları uygulamak isteyen geliştiriciler için idealdir.

Uyarlanabilir CG Osilatörü Uyarlanabilir CG Osilatörü

Uyarlanabilir CG Osilatörü, gerçek bir finansal varlığın sürekli değişen piyasa döngülerine uyum sağlayan bir CG Osilatörü osilatörüdür.

PTB PTB

Gösterge Açıklaması: PTB.mq5 Genel Bakış: MetaTrader 5 için PTB.mq5 göstergesi, kısa vadeli ve uzun vadeli yüksek ve düşük fiyatları ve bu uç noktalara dayalı Fibonacci geri çekilme seviyelerini hesaplar. Özellikler: Kısa Vadeli Yüksek ve Düşük: Kullanıcı tanımlı kısa bir uzunlukta acil destek ve direnci belirler. Uzun Vadeli Yüksek ve Düşük: Daha uzun bir süre boyunca daha geniş piyasa eğilimlerini analiz eder. Fibonacci Seviyeleri: Potansiyel geri dönüş noktaları için önemli geri çekilme seviyelerini (%23,6, %38,2, %50, %61,8, %78,6) çizer. Girdi Parametreleri: shortLength: Kısa vadeli hesaplama için mum sayısı. longLength: Uzun vadeli hesaplama için mum sayısı. Görsel Temsil: Yüksek/düşük ve Fibonacci seviyeleri arasında ayrım yapmak için her çizgi için farklı renkler ve genişlikler. Kullanım: Yatırımcıların giriş/çıkış noktalarını belirlemelerine ve geçmiş fiyat seviyelerine dayalı olarak piyasa trendlerini izlemelerine yardımcı olur.