"MQL4 ve MQL5 kullanarak fraktallara dayalı trend çizgileri çizme" makalesi için tartışma

 

Yeni makale MQL4 ve MQL5 kullanarak fraktallara dayalı trend çizgileri çizme yayınlandı:

Makale, MQL4 ve MQL5 kullanarak Fraktallar göstergesine dayalı trend çizgilerinin çizilme otomasyonunu açıklar. Makale yapısı, iki dil için çözümün karşılaştırmalı bir görünümünü sağlar. Trend çizgileri, bilinen son iki fraktal kullanılarak çizilir.

Çizgi çizmek için fraktalın zamanını ve fiyatını belirlememiz gerekilidir. Tabii ki, MQL4'teki Yüksek[] ve Düşük[] önceden tanımlanmış zaman serilerini ve iTime() işlevini kullanabilirdik ancak aynı zamanda trend çizgisinin doğru çizmek için daha kesin zaman koordinatları almamız gereklidir.

Şekil 1-2, H4 ve M15 zaman dilimlerindeki uç noktaların zaman değerleri arasındaki farkı göstermektedir.

Şek.1 H4'teki uç nokta zaman değeri

Şek.1. H4'teki uç nokta zaman değeri

Şek.2 M15'teki uç nokta zaman değeri

Şek.2. M15'teki uç nokta zaman değeri

15 dakikalık uç nokta doğruluğunun amaçlarım için oldukça yeterli olduğu sonucuna vardım.

Yazar: Almat Kaldybay

[Silindi]  
Öğleden sonra. Eleştiri. Bir gün her zaman sabit sayıda mum değildir. Sizin durumunuzda - M15 için 96 mumluk verileri kontrol etmek her zaman doğru değildir. Bazen başka bir günün verilerine girebilirsiniz.
 
Tapochun:
Öğleden sonra. Eleştiri. Bir gün her zaman sabit sayıda mum değildir. Sizin durumunuzda - M15 için 96 mumluk verileri kontrol etmek her zaman doğru değildir. Bazen başka bir günün verilerine girebilirsiniz.
Açıklama için teşekkürler, gün içi ticaret lehine günlük TL'den vazgeçtiğim için bununla kendim karşılaşmadım (4 saat, saat ve m15'e bakıyorum). Ancak genel olarak duruma daha yakından bakmam gerekecek.
[Silindi]  
Almat Kaldybay:
Yorum için teşekkürler, gün içi ticaret lehine günlük TL'den vazgeçtiğim için (4 saat, saat ve m15'e bakıyorum) gerçekten bununla karşılaşmadım. Ancak genel olarak duruma daha yakından bakmamız gerekecek.
Bu, M15 olması gerekmeyen herhangi bir TF için geçerlidir. Mesele şu ki, bir gün içinde, örneğin bir önceki gün üstleri / kökleri arıyorsanız, sabit sayıda muma güvenmemelisiniz, zamana güvenmek daha iyidir: önceki günün açılışından, bu durumda, mevcut günün açılışına (00.00'dan farklı bir zamana sahip olabilen ilk mum).
 
Tapochun:
Bu herhangi bir TF için geçerlidir, M15 olması gerekmez. Mesele şu ki, bir gün içinde, örneğin bir önceki gün üstleri / kökleri arıyorsanız, sabit sayıda muma güvenmemelisiniz, zamana güvenmek daha iyidir: önceki günün açılışından, bu durumda, mevcut günün açılışına (00.00'dan farklı bir zamana sahip olabilen ilk mum).

Şu anda mql4 üzerinde bir EA yazıyorum ve eleştirinizi hatırladım. Pratikte bu durumla karşılaşmamış olmama rağmen, bunu hariç tutmaya karar verdim. Çözüm aşağıdaki gibidir:

//1.2 Ekstremumu takip eden çubuğu belirleyin
int UpperFractal_1_base_next=UpperFractal_1_base-1;
int UpperFractal_2_base_next=UpperFractal_2_base-1;
int LowerFractal_1_base_next=LowerFractal_1_base-1;
int LowerFractal_2_base_next=LowerFractal_2_base-1;
//1.3 Fraktal oluşum zamanını belirleyin
datetime UpFractalTime_1_base=iTime(NULL,base_tf,UpperFractal_1_base);
datetime UpFractalTime_2_base=iTime(NULL,base_tf,UpperFractal_2_base);
datetime LowFractalTime_1_base=iTime(NULL,base_tf,LowerFractal_1_base);
datetime LowFractalTime_2_base=iTime(NULL,base_tf,LowerFractal_2_base);
//1.4 Ekstremumu takip eden çubuğun zamanını belirleyin
datetime UpFractalTime_1_base_next=iTime(NULL,base_tf,UpperFractal_1_base_next);
datetime UpFractalTime_2_base_next=iTime(NULL,base_tf,UpperFractal_2_base_next);
datetime LowFractalTime_1_base_next=iTime(NULL,base_tf,LowerFractal_1_base_next);
datetime LowFractalTime_2_base_next=iTime(NULL,base_tf,LowerFractal_2_base_next);
//1.5 Fraktal çubuk açılma süresi için m15 üzerinde çubuk endekslerini belirleyin
int UpperFractal_1_m15_base=iBarShift(NULL, 15, UpFractalTime_1_base,true);
int UpperFractal_2_m15_base=iBarShift(NULL, 15, UpFractalTime_2_base,true);
int LowerFractal_1_m15_base=iBarShift(NULL, 15, LowFractalTime_1_base,true);
int LowerFractal_2_m15_base=iBarShift(NULL, 15, LowFractalTime_2_base,true);
//1.6 Ekstremumu takip eden çubuk için m15 üzerinde çubuk endekslerini belirleyin
int UpperFractal_1_m15_base_next=iBarShift(NULL, 15, UpFractalTime_1_base_next,true);
int UpperFractal_2_m15_base_next=iBarShift(NULL, 15, UpFractalTime_2_base_next,true);
int LowerFractal_1_m15_base_next=iBarShift(NULL, 15, LowFractalTime_1_base_next,true);
int LowerFractal_2_m15_base_next=iBarShift(NULL, 15, LowFractalTime_2_base_next,true);
//1.7 m15 üzerinde bar - fraktal ile bir sonraki bar arasındaki bar sayısını bulun
int UpperFractal_1_m15_NumBars_base=(UpperFractal_1_m15_base-UpperFractal_1_m15_base_next);
int UpperFractal_2_m15_NumBars_base=(UpperFractal_2_m15_base-UpperFractal_2_m15_base_next);
int LowerFractal_1_m15_NumBars_base=(LowerFractal_1_m15_base-LowerFractal_1_m15_base_next);
int LowerFractal_2_m15_NumBars_base=(LowerFractal_2_m15_base-LowerFractal_2_m15_base_next);
// --- Aşama 2 - - ekstremumların iyileştirilmesi
//2.1 İlk en küçük fraktal için
int Bar_1_Lowest_m15_base=iLowest(NULL,PERIOD_M15,MODE_LOW,LowerFractal_1_m15_NumBars_base,LowerFractal_1_m15_base_next);
datetime Time_1_Lowest_m15_base=iTime(NULL,PERIOD_M15,Bar_1_Lowest_m15_base);
double Price_1_Lowest_m15_base=iLow(NULL,PERIOD_M15,Bar_1_Lowest_m15_base);
//2.2 İkinci en küçük fraktal için
int Bar_2_Lowest_m15_base=iLowest(NULL,PERIOD_M15,MODE_LOW,LowerFractal_2_m15_NumBars_base,LowerFractal_2_m15_base_next);
datetime Time_2_Lowest_m15_base=iTime(NULL,PERIOD_M15,Bar_2_Lowest_m15_base);
double Price_2_Lowest_m15_base=iLow(NULL,PERIOD_M15,Bar_2_Lowest_m15_base);
//2.3 İlk en büyük fraktal için
int Bar_1_Highest_m15_base=iHighest(NULL,PERIOD_M15,MODE_HIGH,UpperFractal_1_m15_NumBars_base,UpperFractal_1_m15_base_next);
datetime Time_1_Highest_m15_base=iTime(NULL,PERIOD_M15,Bar_1_Highest_m15_base);
double Price_1_Highest_m15_base=iHigh(NULL,PERIOD_M15,Bar_1_Highest_m15_base);
//2.4 İkinci en büyük fraktal için
int Bar_2_Highest_m15_base=iHighest(NULL,PERIOD_M15,MODE_HIGH,UpperFractal_2_m15_NumBars_base,UpperFractal_2_m15_base_next);
datetime Time_2_Highest_m15_base=iTime(NULL,PERIOD_M15,Bar_2_Highest_m15_base);
double Price_2_Highest_m15_base=iHigh(NULL,PERIOD_M15,Bar_2_Highest_m15_base);

	          
[Silindi]  
Almat Kaldybay:

Bu durumla pratikte karşılaşmamış olsam da, yine de hariç tutmaya karar verdim

Bugün, örneğin, GBPUSD/EURUSD M5 çiftini açın, ilk mum 00:05'te açıldı. M15 ile benzer şekilde 288 mum çubuğu alırsak, başka bir günün verilerine gireceğiz.

Doğru, bu MT5 için ... MT4'te (MetaQuotes-Demo sunucusu) - ayrıca, 00: 00'dan itibaren başka bir komisyoncuda, yani ... her şey bireyseldir ve yine de kontrol etmeniz gerekir.

 
MetaQuotes Software Corp.:

MQL4 ve MQL5 kullanarak fraktallara dayalı trend çizgileri çizme başlıklı yeni makale yayınlandı:

Yazar Almat Kaldybay

Merhaba,

Trend çizgisini yukarıda gösterildiği gibi alamıyorum.
Herhangi bir özel ayar var mı?

 
Hairi Baba:

Merhaba,

Trend çizgisini yukarıda gösterildiği gibi alamıyorum.
Herhangi bir özel ayar var mı?

Merhaba, belki de geçmiş verilere sahip değilsiniz M15
 

Merhaba Almat,

Grafikte trend çizgileri almıyorum, ancak sürekli mobil uyarılar alıyorum. Bir şey kaçırırsam lütfen yardım edin.

teşekkürler,
Prakash.R

 
prakki79:

Merhaba Almat,

Grafikte trend çizgileri almıyorum, ancak sürekli mobil uyarılar alıyorum. Bir şey kaçırırsam lütfen yardım edin.

teşekkürler,
Prakash.R

Merhaba,

1. Meta düzenleyicide mq4 dosyasını derlemeniz gerekir;

2. Grafikte trend çizgileriniz olduğunu düşünüyorum, ancak grafiğin ölçeği nedeniyle bunları göremiyorsunuz

 
Selamlar, lütfen bana mt4'e bir Uzman Danışmanı nasıl koyacağımı söyleyin. Trendlines.mq4 dosyasını indirdim, derledim ve kaynak koduyla birlikte mql4/Indicators klasörüne gönderdim, terminali yeniden yükledim, göstergeyi grafiğe eklemeye çalışıyorum - tepki yok. Neyi yanlış yapıyorum?