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:
- 64
- Derecelendirme:
- Yayınlandı:
-
Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git
CIsNewBar sınıfı, yeni bir çubuk geldiği anda hesaplamalarını yapan uzmanların ekonomik çalışmaları için gereklidir.
Genellikle bu tür işler için bir sınıf değil, sadece IsNewBar() fonksiyonu kullanılır. Ancak böyle bir fonksiyon statik bir değişken içerir ve bu nedenle bu fonksiyonun birden fazla çağrısını kullanamazsınız. Uzman Danışman kodunda böyle bir işlevin birden çok kullanımı için, onu bir sınıfın üyesi yapmak çok daha uygundur, bu durumda IsNewBar.mqh kitaplığının yardımıyla yapılmıştır.
Kütüphane kodunun kendisi, #include yönergesi ile global düzeyde dosyanın içeriğine dahil edilmelidir:
#include <IsNewBar.mqh> Ardından OnTick() bloğunda IsNewBar sınıfının gerekli sayıda değişkenini bildirmelisiniz:
static CIsNewBar NB1,NB2; Bundan sonra IsNewBar() fonksiyonlarına çağrı yapabilirsiniz
bool IsNewBar(string symbol, // para birimi sembolü ENUM_TIMEFRAMES timeframe) // hesaplama için grafik zaman dilimi
EA kodundaki işlevler:
if(NB1.IsNewBar(Symbol(),PERIOD_D1)) // yeni bir çubuk olup olmadığını kontrol et { /* İşte ticaret sinyali 1'i alma bloğunun kodu */ }
Örneğin, OnTick() işlevi içinde CIsNewBar sınıfını kullanan olası bir kod varyantı aşağıda verilmiştir:
//+------------------------------------------------------------------+ //| Uzman tik fonksiyonu| //+------------------------------------------------------------------+ void OnTick() { //---- double iClose1[1],iClose2[1]; //---- statik değişkenlerin bildirimi static bool Recount1=true,Recount2=true; static CIsNewBar NB1,NB2; //+----------------------------------------------+ //| İşlemler için sinyal belirleme | //+----------------------------------------------+ if(NB1.IsNewBar(Symbol(),PERIOD_D1) || Recount1) // yeni bir çubuk olup olmadığını kontrol et { Recount1=false; //---- yeni ortaya çıkan verileri dizilere kopyalayın if(CopyClose(Symbol(),PERIOD_D1,1,1,iClose1)<=0) {Recount1=true; return;} /* İşte ticaret sinyali 1'i alma bloğunun kodu */ } if(NB2.IsNewBar(Symbol(),PERIOD_H4) || Recount2) // yeni bir çubuk olup olmadığını kontrol et { Recount2=false; //---- yeni ortaya çıkan verileri dizilere kopyalayın if(CopyClose(Symbol(),PERIOD_H4,1,1,iClose2)<=0) {Recount2=true; return;} /* İşte işlem sinyalini alma bloğunun kodu 2 */ }
MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal kod: https://www.mql5.com/ru/code/768
ATR kanalı
ATR (Average True Range) teknik göstergesinin hareketli ortalamadan sapmalarına dayanan bir kanal.
Basic GridManager Library
Bu, ızgaraları oluşturmak ve yönetmek için temel bir kütüphanedir.
Tahmin Osilatörü
İşlem yapmak için sinyal hattı ve renkli noktalar eklenmiş normalleştirilmiş osilatör.
A Code block to detect A "New Candle/Bar" using bars history (very effective way)
Kod bloklarınızı "çubuk başına yalnızca bir kez" çalıştırmak istiyorsanız, yeni çubuk gelip gelmediğini kontrol etmek önemlidir.