Fan sayfamıza katılın
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
- Yayınlayan:
- Nikolay Kositsin
- Görüntülemeler:
- 116
- Derecelendirme:
- Yayınlandı:
-
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.

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:

MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal kod: https://www.mql5.com/ru/code/562
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
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ü, 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
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.