Kodlama yardımı - sayfa 407

 

Merhaba arkadaşlar, yaptığım bir indikatör için yardımınıza ihtiyacım var. Temel olarak, yalnızca bir stratejinin ayarlarını optimize etmek (ve performanslarını test etmek) için kullanılması gereken bir test cihazıdır. Test modunda (Optimize Et Yanlış'a çevrildi), harika çalışıyor ve varsayılan parametreler için kazanma oranı ve dengesi veriyor. Ancak optimizasyon işlevini çalıştırırken sorun yaşıyorum. En iyi ayarların sonucu her zaman daha düşük değer olur (PeriodMin). Optimizasyon çift işlevi içinde bildirilen arabellekleri bu şekilde mi kullanıyorum merak ediyorum (616 ve 617 satırlarına ve arabellekleri boşaltmak için kullanılan 746 ve 747 satırlarına bakın). Sanırım sadece bu değil, çünkü bu arabellekleri kullanmazsam (AllowMultipleOpenTrades'i False'a çevirerek), yine de tutarlı sonuçlar vermiyor. Bakıp yardım edebilecek olan varsa minnettar kalırım. Çok teşekkürler.

Dosyalar:
 
airquest:
Ne yapmaya çalıştığından emin değilim. Belki bu ?

Hayır, korkmuyorum. Bir ekran görüntüsü ile anlatayım. Pembe üst okta, DÜŞÜK'ün kırmızı çubuğunun YÜKSEK'in mavi çubuğundan daha büyük olduğunu açıkça görebilirsiniz. Yine de Doğrusal Çubuk Fark göstergesindeki karşılık gelen çıktı sıfırın üzerinde!! (alt pembe oka bakınız). Kırmızı çubuk Düşük çubuk mavi Yüksek çubuktan daha büyük olduğunda, her iki çubuğun farkı pozitif değil, negatif olmalıdır. Yeşil oklar, aynı problemin başka bir örneğini göstermektedir.

Saygılarımla

Dosyalar:
example.png  25 kb
 
mrcodix:
Hayır, korkmuyorum. Bir ekran görüntüsü ile anlatayım. Pembe üst okta, DÜŞÜK'ün kırmızı çubuğunun YÜKSEK'in mavi çubuğundan daha büyük olduğunu açıkça görebilirsiniz. Yine de Doğrusal Çubuk Fark göstergesindeki karşılık gelen çıktı sıfırın üzerinde!! (alt pembe oka bakınız). Kırmızı çubuk Düşük çubuk mavi Yüksek çubuktan daha büyük olduğunda, her iki çubuğun farkı pozitif değil, negatif olmalıdır. Yeşil oklar, aynı problemin başka bir örneğini göstermektedir. Saygılarımla

Yani belki bu? Tampon 3 ve 4'ün Yüksek VS Açık ve Düşük VS Açık ile değil, VS Açık'ı Kapatmak ile ilgili olduğunu görmeniz gerekir.

 
mrcodix:
Hayır, korkmuyorum. Bir ekran görüntüsü ile anlatayım. Pembe üst okta, DÜŞÜK'ün kırmızı çubuğunun YÜKSEK'in mavi çubuğundan daha büyük olduğunu açıkça görebilirsiniz. Yine de Doğrusal Çubuk Fark göstergesindeki karşılık gelen çıktı sıfırın üzerinde!! (alt pembe oka bakınız). Kırmızı çubuk Düşük çubuk mavi Yüksek çubuktan daha büyük olduğunda, her iki çubuğun farkı pozitif değil, negatif olmalıdır. Yeşil oklar, aynı problemin başka bir örneğini göstermektedir. Saygılarımla

Veya bu, Yüksek/Düşük VS Açık veya Kapat VS Açık seçeneğinin kullanılmasıyla olur.

 
airquest:
Merhaba arkadaşlar, yaptığım bir indikatör için yardımınıza ihtiyacım var. Temel olarak, yalnızca bir stratejinin ayarlarını optimize etmek (ve ayrıca performanslarını test etmek) için kullanılması gereken bir test cihazıdır. Test modunda (Optimize Et Yanlış'a çevrildi), harika çalışıyor ve varsayılan parametreler için kazanma oranı ve dengesi veriyor. Ancak optimizasyon işlevini çalıştırırken sorun yaşıyorum. En iyi ayarların sonucu her zaman daha düşük değer olur (PeriodMin). Optimizasyon çift işlevi içinde bildirilen arabellekleri bu şekilde mi kullanıyorum merak ediyorum (616 ve 617 satırlarına ve arabellekleri boşaltmak için kullanılan 746 ve 747 satırlarına bakın). Sanırım sadece bu değil, çünkü bu arabellekleri kullanmazsam (AllowMultipleOpenTrades'i False'a çevirerek), yine de tutarlı sonuçlar vermiyor. Bakıp yardım edebilecek olan varsa minnettar kalırım. Çok teşekkürler.

hava görevi

602 satırındaki recTP[] ve recSL[] dizileriniz yeniden boyutlandırılmamış (boyut 0, döngünün başında bildirilme biçimleridir), for() döngüsünden önce yeniden boyutlandırmayı deneyin

 
airquest:
Veya bu, Yüksek/Düşük VS Açık veya Kapat VS Açık seçeneğinin kullanılmasıyla olur.

Hayır, bahsettiğim şey bu.

int başlangıç()

{

int counted_bars=IndicatorCounted();

int i;

//int UpDays, DownDays, NeutralDays;

çift BarH, BarL, BarC;

//----

for(i=0; i<Barlar; i++)

{

BarH = Yüksek - Açık;

BarL = Açık - Düşük;

BarC = Kapat - Aç;

//if(BarC>0) UpDays +=1;

//else if(BarC<0) DownDays +=1;

//else if(BarC==0) NeutralDays +=1;

ExtMapBuffer1 = BarH;

ExtMapBuffer2 = BarL;

ExtMapBuffer5 = BarH - BarL;

}

//----

dönüş(0);

}

Şimdi kendim çözdüm ama yine de çaban için teşekkürler.

Biri bana bu göstergenin neden olduğunu söyleyebilir mi: Mum Oranı » Metatrader Dosyaları son birkaç mum çubuğunun çıktısını göstermiyor mu? Gösterilen resimde bunu yapmak görünmüyor.

 
mladen:
airquest 602 satırındaki recTP[] ve recSL[] dizileriniz yeniden boyutlandırılmamış (boyut 0, döngünün başında bildirildikleri şekilde), for() döngüsünden önce yeniden boyutlandırmayı deneyin

Teşekkürler Mladen, yaptım ama yine de optimizasyon doğru sonuçlar vermiyor. Optimize'ı True'ya çevirirsem, en iyi ayar olarak en düşük değeri verir (bant periyodu = 5), örneğin False ve default BandsPeriod'da 40'ta, örneğin 5'ten daha iyi bir kazanma oranı gösterir. optimizasyon, hangi ayarların en iyi kazanma oranını verdiğini bulmaktır. Kodu yüzlerce kez yeniden okudum ve neyin yanlış olduğunu bulamıyorum. herhangi bir fikriniz varsa, aksi takdirde belki de kayıp bir nedendir lol.

Bu, ArrayResize eklenen . Ayrıca bazı hatalar düzeltildi, ancak yine de optimizasyon olmadan elde edilen sonuçlarla aynı sonuçları vermiyor:

Dosyalar:
 
airquest:
Teşekkürler Mladen, yaptım ama yine de optimizasyon doğru sonuçlar vermiyor. Optimize'ı True'ya çevirirsem, en iyi ayar olarak en düşük değeri verir (bant periyodu = 5), örneğin False ve default BandsPeriod'da 40'ta, örneğin 5'ten daha iyi bir kazanma oranı gösterir. optimizasyon, hangi ayarların en iyi kazanma oranını verdiğini bulmaktır. Kodu yüzlerce kez yeniden okudum ve neyin yanlış olduğunu bulamıyorum. herhangi bir fikriniz varsa, aksi takdirde belki de kayıp bir nedendir lol. Bu, ArrayResize eklenmiş haldedir. Ayrıca bazı hatalar düzeltildi, ancak yine de optimizasyon olmadan elde edilen sonuçlarla aynı sonuçları vermiyor:

Neden olduğundan emin değilim, ancak bir CSV dosyası yazarak sonuçları kontrol ederken, toplam işlemler, kazançlar ve bakiye 10'luk bir faktörle çarpılır: http://clip2net.com/s/38YHODl ...

 
airquest:
Neden olduğundan emin değilim, ancak bir CSV dosyası yazarak sonuçları kontrol ederken, toplam işlemler, kazançlar ve bakiye 10'luk bir faktörle çarpılır: Microsoft Excel - BB+CCI_FX-EURUSD-H1-SA-1.csv ...

hava görevi

Gördüğüm kadarıyla toplam takaslar ve kazançlar tamam (aksi takdirde 0 ile bitmeleri gerekirdi)

 
mladen:
airquest Gördüğüm kadarıyla toplam takaslar ve kazançlar tamam (aksi takdirde 0 ile bitmeleri gerekirdi)

Yine de... İşte bazı testler:

- Varsayılan ayarlar (optimizasyon yok, WriteCSV to True): http://clip2net.com/s/38YSV53

- Optimize'ı True, PeriodMin'i 20 ve PeriodMax'i 20'ye ayarlayın: http://clip2net.com/s/38YT2hN

İlki tutarlı değerler verir (CSV dosyası ve ekran sonuçları eşleşmesi). Bu normal, çünkü ikisi de aynı değişkenlerden geliyor. Ancak ikincisinde, opti sonuçları, ekran sonuçlarına kıyasla neredeyse 10 ile çarpılıyor. Yine de, aynı sonuçlara varmaları gerekir...

Neyse, acele etme, belki zamanla neyin yanlış olduğunu öğrenirim. Nazik yardımın için teşekkürler Mladen.