Kimin stratejiye ihtiyacı var? Çok ve ücretsiz - sayfa 52

 
Miroslav_Popov писал(а) >>

Jeneratör tamir edildi. exe'nizi bununla değiştirin.


Jeneratör bazen Gösterge Dönemi + Shift > Çubuk Sayısını ayarlar;

zaten kafam karıştı :)

Yeni bir versiyon

Ancak çubuk sayısı 300'e düşürülerek jeneratör çalışır ve Stop butonu ile durdurulabilir.

'

Eski sürüm (siteden hızlı bir şekilde indirilir)

Ancak, çubuk sayısı < 1000 ise, jeneratör kilitlenir.

'

IMHO, test cihazı için 1000 bar limit gereksinimine alışmak daha iyidir, ancak aralığı seçmenin rahatlığı.

'

 
SergNF писал(а) >>

zaten kafam karıştı :)

'

Eski sürüm (siteden hızlı bir şekilde indirilir)

Ancak, çubuk sayısı < 1000 ise, jeneratör kilitlenir.

'

"Eski versiyon" hakkındaki yanardöner düşüncelerin yanlış olduğu ortaya çıktı.

Onlar. yeni sürümdeki gibi resim. (yani, çubuk sayısı TO tarihinden daha yüksek önceliğe sahiptir!!!!)

'

'

ayy

 if ( bUseStartDate & & aBar [ iTempStartBar ] . Time < dtStartingDate )
{    // We need to cut out the oldest bars
 for ( int iBar = iTempStartBar ; iBar < iTempBars - MINIMUMBARS ; iBar + + )
 {

Döngünün iTempBars - MINIMUMBARS 'a çıkması doğru mu, yani. maksimum çubuk sayısına kadar iTempBars = iMaxBars ; tarihin başından beri?

Geçmiş dosyalarımda 50.000'den fazla satır var ve bu aralıkta iTempStartBar = iBars - iMaxBars'dan iMaxBars - MINIMUMBARS'a kadar sıralanmış bir tarih olmayabilir mi?!

Mantıksal olarak Bitiş tarihi ve Başlangıç tarihi tüm hikayenin sonuna kadar aranmalıdır, yani. iBar'lara mı???

Ancak bitiş çubuğu doğru yerleştirilmiş

 int   iTempEndBar   = iBars - 1 ;
for ( int iBar = iTempStartBar + MINIMUMBARS ; iBar < iTempEndBar ; iBar + +
 
SergNF >> :

Ekran görüntüleriniz hakkında:

1. 1 Ocak 2009'a kadar 300'den az çubuk olduğundan "1 Eylül 2008'den eski verileri kaldır" yok sayılır

2. "1 Ocak 2009'dan daha yeni verileri kaldır" - 1 Ocak için veri yok gibi görünüyor. Bu yüzden FSB barları 31.12.08'e kadar sınırlandırıyor.


(yani, çubuk sayısı TO tarihinden daha yüksek önceliğe sahiptir !!!!)

Aynen öyle.

 
Miroslav_Popov писал(а) >>

1. 1 Ocak 2009'a kadar 300'den az çubuk olduğundan "1 Eylül 2008'den eski verileri kaldır" yok sayılır

2. "1 Ocak 2009'dan daha yeni verileri kaldır" - 1 Ocak için veri yokmuş gibi görünüyor. Bu yüzden FSB barları 31.12.08 tarihine kadar sınırlandırıyor.

Artık değil.

Şimdi saatleri gösteriyorum.

Dosya 63291'de ( iBars) 1999-01-04'ten 2009-03-18'e kadar satırlar

2008-09-01 tarihi 59 973 dizesidir

2009-01-02 tarihi, 62 021 dizesidir

Onlar. program bir başlangıç tarihi ararken, döngü 63.291 - 50.000 = 13.291 ( iTempStartBar = iBars - iMaxBars ; ) çubuğundan 50.000 - 300 = 49.700 ( iTempBars - MINIMUMBARS ) arasında "çalışır" ve tarihimi "için" bulamaz. " (bar 59 973 ), yapraklar ( iTempStartBar = iBars - iMaxBars ; ) başlangıç çubuğu = 63 290 - 50 000 = 13 290 .

Dosyamda 2001-02-21 12:00 (resimle eşleşen +/- 300)

Ek olarak dosya.

Dosyalar:
eurusd60.rar  702 kb
 

iBar'lar <= 50.000

FSB, veri dosyasından en yeni 50000 çubuğu içe aktarır.

Böyle:

2008-09-01 tarihi 59 973 dizesidir

2009-01-02 tarihi, 62 021 dizesidir

yüklenen verilerin dışındadır. Data Horizon bunları hesaba katmaz.



Operasyon. Hatalıyım.

 
Miroslav_Popov писал(а) >>

iBar'lar <= 50.000

FSB, veri dosyasından en yeni 50000 çubuğu içe aktarır.

Böyle:

2008-09-01 tarihi 59 973 dizesidir

2009-01-02 tarihi, 62 021 dizesidir

yüklenen verilerin dışındadır. Data Horizont bunları dikkate almaz.

en yeni !!!!, yani 13.291'den 63.291'e !!!!! ve şimdi arama 0'dan 50.000'e çıkıyor (yuvarlak;))

Biz aynı fikirde değildik. :( Çok yazık :(

Her ne kadar for ( int iBar = iTempStartBar ; iBar < iTempBars - MINIMUMBARS ; iBar + + ) iTempBars - MINIMUMBARS yerine iTempEndBar eklemek bana daha doğru gibi görünse de. Ve eğer AND buseStartDate=True AND buseEndDate=True ise " // Maksimum çubuk sayısını ayarla " bloğunun tamamı gereksizdir

'

Ama yinede ısrar etmiyorum. :( (Dosyayı bom, ancak birkaç dakika için stratejiyi önceki 50.000 çubukta optimize etmek ve sonraki 10.000 çubuğu kontrol etmek isteyebilirsiniz.

:(

not. Yine de kodda bir hata var ve şemaya uymuyor !!!!! (aralığım sağda, solda değil) :(

 

Düşünelim..


İstersen bana kodu ver. Programa koyacağım ve test edeceğim.

 
Miroslav_Popov писал(а) >>

Düşünelim..

İstersen bana kodu ver. Programa koyacağım ve test edeceğim.

Önceki sayfalardan kodunuzun snippet'i

 // Set the maximum nuber of bars
// if (iBars > iMaxBars && iMaxBars >= MINIMUMBARS)
// {   // We need to cut out the oldest bars
//  iTempBars     = iMaxBars;
//  iTempStartBar = iBars - iMaxBars;
//  bChange       = true;
// }
// Или оставить 
// только если && bUseStartDate=False && bUseEndDate=False 
// или && (bUseStartDate=False || bUseEndDate=False)
// сам не представляю, но весь блок "сбивает"



// Set the starting date
DateTime dtStartingDate = new DateTime ( iStartYear , iStartMonth , iStartDay ) ;
if ( bUseStartDate & & aBar [ iTempStartBar ] . Time < dtStartingDate )
{    // We need to cut out the oldest bars
 for ( int iBar = iTempStartBar ; iBar < iTempEndBar ; iBar + + )
 {
  if ( aBar [ iBar ] . Time > = dtStartingDate )
  {
   iTempStartBar = iBar ;
   iTempBars     = iTempEndBar - iTempStartBar + 1 ;
   bChange       = true ;
   break ;
  }
 }
}

Как вариант, после
 // Set the maximum nuber of bars
if ( iBars > iMaxBars & & iMaxBars > = MINIMUMBARS )
{    // We need to cut out the oldest bars
 iTempBars     = iMaxBars ;
 iTempStartBar = iBars - iMaxBars ;
 bChange       = true ;
}

Ekle

 if (bUseStartDate)
{   
 iTempStartBar = 0; 
}
Ancak başlangıç tarihi için iTempStartBar'ı sıfırlamak gerekir!!!!
 
if (bUseStartDate)
{   
    iTempStartBar = 0; 
}
dtStartingDate, iMaxBars'tan daha eskiyse, dtStartingDate'i yok sayın ve iMaxBars ile sınırlayın
 
Miroslav_Popov писал(а) >>
dtStartingDate, iMaxBars'tan daha eskiyse, dtStartingDate'i yok sayın ve iMaxBars ile sınırlayın

Ve iMaxBars boyut penceresini dosya boyunca hareket ettirebilmeniz için dtStartingDate'den "sağa" iMaxBars olması gerektiğini düşünüyorum!

Ancak sağdaki dtStartingDate çubukları iMaxBar'lardan daha azsa. o zaman dtStartingDate önceliğe sahip olmalıdır, çünkü tarihler çubuklardan daha sezgiseldir. BENİM NACİZANE FİKRİME GÖRE.

Ve genel olarak, kullanıcı bilinçli olarak bir "tik" koyar ve çubuklar - varsayılan olarak, özellikle sisteme kablolu olanlar (iMaxBars)

'

not. İşin garibi, büyük ihtimalle programı kullanmayacağım :)