Geri test sırasında bulunan sorunlar ve temel nedeni bulamıyor! - sayfa 3

 

iHighest(), 'i'nin solundaki veya sağındaki nokta arasındaki çubuğu döndürür mü?

 MaxH = High[iHighest( NULL , 0 ,MODE_HIGH,period,i)];

Ayrıca, lütfen bu yazının hemen önündeki bir önceki yazıma da bakın.

 

Sevgili JollyDragon,

Göstergenin yeniden hesaplandığını gördüğünüze sevindim.

Fisher kodu her zaman aynıdır, tanımlanması kolaydır.

kod sadece bir veriyi yeniden enjekte eder, birçok göstergenin bir şekilde yaptığı gibi (verilerin geçmiş değerini 1 2 3 çubuğunda saklarlar), bu gösterge bunu yapmaz, bu yüzden yeniden hesaplar:

 for (i=limit- 1 ; i>= 0 ; i--)
     {
      MaxH = High[iHighest( NULL , 0 ,MODE_HIGH,Solar_period,i)];
      MinL = Low[iLowest( NULL , 0 ,MODE_LOW,Solar_period,i)];
      price = (High[i]+Low[i])/ 2 ;
      Value = 0.33 * 2 *((price-MinL)/(MaxH-MinL)- 0.5 ) + 0.67 * Value1 ;
      Value= MathMin ( MathMax (Value,- 0.999 ), 0.999 );
      ExtBuffer0[i]= 0.5 * MathLog (( 1 +Value)/( 1 -Value))+ 0.5 *Fish1;
       Value1 =Value;
      Fish1=ExtBuffer0[i];
     
       if (ExtBuffer0[i]> 0 ) ExtBuffer1[i]=Solar_limit;
       else ExtBuffer1[i]=-Solar_limit;
     }
 
jollydragon :

iHighest(), 'i'nin solundaki veya sağındaki nokta arasındaki çubuğu döndürür mü?


Sola
 

ffoorr, GumRai, teşekkürler.

Kod, bar1'in verilerini depolamasına rağmen, bar0'ın solundaki çubukları yeniden hesaplamadığını görebilirsiniz.

Bu yüzden, bar0'dan önce çubukları yeniden hesaplamak için bir kod olmadığı için yeniden çizmeye neyin neden olduğu konusunda hala kafam karıştı.

 for (i=limit- 1 ; i>= 0 ; i--)
     {
      MaxH = High[iHighest( NULL , 0 ,MODE_HIGH,period,i)];
      MinL = Low[iLowest( NULL , 0 ,MODE_LOW,period,i)];
      price = (High[i]+Low[i])/ 2 ;
      Value = 0.33 * 2 *((price-MinL)/(MaxH-MinL)- 0.5 ) + 0.67 *Value1;
      Value= MathMin ( MathMax (Value,- 0.999 ), 0.999 );
      ExtBuffer0[i]= 0.5 * MathLog (( 1 +Value)/( 1 -Value))+ 0.5 *Fish1;
      Value1=Value;
      Fish1=ExtBuffer0[i];
       if (ExtBuffer0[i]> 0 ) ExtBuffer1[i]= 10 ;
       else ExtBuffer1[i]=- 10 ;
     }
 

Limite hangi değerin verildiğini bilmiyoruz.

Bu göstergeye sağ tıklayıp çöp kutusuna taşımanızı şiddetle tavsiye ederim!

       ExtBuffer0[i] = 0.5 * MathLog (( 1 +Value)/( 1 -Value))+ 0.5 * Fish1 ;
      Value1=Value;
       Fish1=ExtBuffer0[i] ;

Fish1'in global veya statik bir değişken olduğunu ve son çubuğun yeniden hesaplandığını varsayarsak

i==0 olduğunda Fish1'e Bar[0] verilerine dayalı bir değer verilir

Daha sonra bar[1] yeniden hesaplandığında, bar[0]'da oluşturulan Fish1 değeri, bar[1] için bir değer oluşturmak için kullanılır.

Göstergenin ne amaçladığını bilmiyorum, ancak i çubuğuna ilişkin verileri kullanan ve daha sonra bunu önceki bir çubukta kullanan herhangi bir gösterge kötü bir göstergedir.

 
GumRai :

Limite hangi değerin verildiğini bilmiyoruz.

Lütfen tüm gösterge dosyasının eklendiği 20 numaralı gönderiye bakın. Aşağı tekrar yapıştırıldı.

Ekli dosyalar:
solarjoy.mq4 (6.11 KB) silme
GumRai :

Daha sonra bar[1] yeniden hesaplandığında, bar[0]'da oluşturulan Fish1 değeri, bar[1] için bir değer oluşturmak için kullanılır.

Göstergenin ne amaçladığını bilmiyorum, ancak i çubuğuna ilişkin verileri kullanan ve daha sonra bunu önceki bir çubukta kullanan herhangi bir gösterge kötü bir göstergedir.

Çubuk hesaplaması için soldan sağa doğru 'limit-1'den '0'a 'i' değişiklikleri görebilirsiniz.

Bu nedenle bar[1]'da hesaplanan Fish1 değeri, bar[0] için bir değer oluşturmak için kullanılır. Neden tam tersini düşünüyorsun?

Bu nedenle, kod hakkındaki anlayışıma göre bu göstergenin bu tür kötü bir gösterge olduğunu düşünmüyorum.

Her neyse, sonunda yeniden çizimi gözlemledim ve bu, bunun o kadar kötü bir gösterge olduğunu onaylıyor.

Ancak, kendini geliştiren olarak yeniden çizmeyi önlemek için kodu nasıl düzelteceğimi bilmem gerekiyor.

 for (i=limit- 1 ; i>= 0 ; i--)
     { 
       ...
      }
 

Bu balıkçı yeniden boyama yapmıyor, iyi görünüyor, solar_joy ile karşılaştırıldığında, sinyal bir çubuk gecikiyor, ancak aynı gösterge.

https://www.forex-tsd.com/metatrader-4/474-fisher-14.html#post214965

Sorun göstergeler değil, mükemmeller, her zaman değişen pazar, asla aynı değil.

Bazı trend piyasalarında mükemmel sinyal veren bir gösterge, başka bir piyasada sadece yanlış sinyal verecektir.

Biri, ister StopLoss ister TakeProfit kullanarak olsun, her zaman iyi osilatörden gelen sinyalleri filtrelemek zorunda kalacak,

Bir trend göstergesi kullanıp kullanmadığınızı.


Fisher göstergesinin işe yaradığını düşünüyorum, sadece bir ölçü gecikti, yeniden hesaplıyor, yeniden çizmiyor, bu yeniden çiziyor, test cihazında bir EA'ya koyuyor ve göreceksiniz:

https://www.forex-tsd.com/ideas-suggestions/25934-bulletproof-11.html#post351354

 
jollydragon :

Bu nedenle bar[1]'da hesaplanan Fish1 değeri, bar[0] için bir değer oluşturmak için kullanılır. Neden tam tersini düşünüyorsun?

Yeterince adil, ama bahsettiğim kod, limit için herhangi bir hesaplama içermiyordu ve başka bir yere dahil edilip edilmediğini görmek için 3 sayfa geriye bakmayacaktım.

Bu nedenle, bu gösterge her işarette bar[1] için yeniden hesaplanmaz.

Ama hala

 ExtBuffer0[i]= 0.5 * MathLog (( 1 +Value)/( 1 -Value))+ 0.5 *Fish1;
 Fish1=ExtBuffer0[i];

kapalı çubuklarda ilk çalıştırmada mevcut çubukta yaptığından farklı hesaplamalara izin verecektir.

Yeni bir çubuğun ilk işaretinde yapacağı şey,

ExtBuffer0[ 0 ]= 0.5 * MathLog (( 1 +Value)/( 1 -Value))+ 0.5 *ExtBuffer0[ 1 ];

Aynı çubuğun sonraki kenelerinde hesaplayacaktır

ExtBuffer0[ 0 ]= 0.5 * MathLog (( 1 +Value)/( 1 -Value))+ 0.5 *ExtBuffer0[ 0 ];

Hangisi bir tür bileşik

 

Bu takas edilebilir, solar_joy /fischer, yeniden hesaplanmayan bir balıkçıya kıyasla bir çubuk daha erken sinyal verir,

Ardından 1. ve 2. çubuktaki sinyali alın ve 2. ve 3. çubukta sinyalin hala orada olup olmadığına bakın.

Sinyal kaybolursa, siparişi kapatın.

  if(Joy2 < = EA_Limit && Joy1 > = EA_Limit)  open_order( OP_BUY); 
 if( (Joy3 < = EA_Limit && Joy2 > = EA_Limit)== false ) close_order( OP_BUY); 
 
ffoorr :

Bu balıkçı yeniden boyama yapmıyor, iyi görünüyor, solar_joy ile karşılaştırıldığında, sinyal bir çubuk gecikiyor, ancak aynı gösterge.

https://www.forex-tsd.com/metatrader-4/474-fisher-14.html#post214965

Fisher göstergesinin işe yaradığını düşünüyorum, sadece bir ölçü gecikti, yeniden hesaplıyor, yeniden çizmiyor, bu yeniden çiziyor, test cihazında bir EA'ya koyuyor ve göreceksiniz:

https://www.forex-tsd.com/ideas-suggestions/25934-bulletproof-11.html#post351354


Sevgili ffoorr, sayfaları açamıyorum ve siteye erişemiyorum, www.forex-tsd.com. Belki internet yapılandırmamda bir sorun vardır.

Lütfen koduma odaklanalım. Ana içerik için sadece yaklaşık 10 satır kod var.

Ancak tarihi barların yeniden boyanmasının temel nedenini bulmak bizim için hala çok zor.

Neden: