Kendinizi test cihazından uzun işlemleri kopyalamaktan nasıl korursunuz? - sayfa 3

 
George Merts :
Evet anladım. Ama yine, strateji test cihazında - sırayla keneler alırsınız ve son kenenizin ne zaman olacağını bilemezsiniz.
İlk çubuğun (başlangıç) zamanını ve sembolün geçmişindeki çubuk sayısını öğrenebilirsiniz, bu yeterlidir.
 

dll'ye gerek yok

init'te, burada ilk çubuğu ve çubuk sayısını sembolle (herhangi bir) çıkarmak için bir şeyler yapabilirsiniz. Ama bu eski yapı için. Ve test cihazında çalışıp çalışmayacağını bilmiyorum. Ancak MT4'te dll olmadan tarihe erişim var

 int init()
{
         int     _GetLastError = 0 , cnt_ticks = 0 , cnt_bars = 0 , temp[ 13 ];
         // запоминаем символ графика, обнуляем хэндл окна off-line графика
         _Symbol = Symbol ();
   hwnd = 0 ;

         // открываем файл, в который будем записывать историю
         string file_name = StringConcatenate ( "!Eqv" , _Symbol , TicksInBar, ".hst" );
         int sd_=iBars( "!Eqv" + _Symbol ,TicksInBar)- 1 ;
   double Open_[],
          Close_[],
          High_[],
          Low_[];
   int Time_[];
   ArrayResize (Open_,sd_+ 1 );
   ArrayResize (High_,sd_+ 1 );
   ArrayResize (Low_,sd_+ 1 );
   ArrayResize (Close_,sd_+ 1 );
   ArrayResize (Time_,sd_+ 1 );
         for ( int sd=iBars( "!Eqv" + _Symbol ,TicksInBar)- 1 ;sd>= 0 ;sd--)
        {
           Time_[sd]=iTime( "!Eqv" + _Symbol ,TicksInBar,sd);
           Open_[sd]=iOpen( "!Eqv" + _Symbol ,TicksInBar,sd);
           Close_[sd]=iClose( "!Eqv" + _Symbol ,TicksInBar,sd);
           High_[sd]=iHigh( "!Eqv" + _Symbol ,TicksInBar,sd);
           Low_[sd]=iLow( "!Eqv" + _Symbol ,TicksInBar,sd);
           //Print(sd," ",GetLastError()," ",Time_[sd]," ",Low_[sd]," ",High_[sd]," ",Close_[sd]," ",Open_[sd]);
        }

        return ( 0 );
}
 
Alexandr Bryzgalov :
İlk çubuğun (başlangıç) zamanını ve sembolün geçmişindeki çubuk sayısını öğrenebilirsiniz, bu yeterlidir.

Strateji test cihazında, ilk çubuğun zamanı, gelen onay işaretinin zamanıdır. Ve strateji test cihazında kenelerin ortaya çıkmasıyla sürekli artacaktır.

Özel örnek:

-------------------------------------------------- ---

Geçerli tarih 1 Mayıs 2015, geçen yıl için strateji test cihazını başlatıyoruz. Strateji test cihazındaki ilk işarette, 1 Ocak 2015'te sıfır çubuğunun zamanını alacağız. Gerçi bilgisayardaki gerçek zaman 1.5.2015. Strateji test cihazına keneler geldiğinde, tarih değişecek ve sıfır çubuğu da değişecek.

Bir dosya işlemi yardımıyla, son (sıfır çubuğumuz) 1.1.2015 tarihli olmasına rağmen, gerçek zamanın 1.05.2015 olduğunu elde edebiliriz. Buna göre, test cihazındaki onay işaretlerini yalnızca 1 Nisan 2015'e kadar işliyoruz.

Yeni gerçek günler geldikçe - test cihazında daha ileri bir tarih alacağız ve buna göre süreç daha da ileri gidiyor, ancak gerçek tarihe bir aydan daha yakın değil.

Şimdi - kullanıcı bizi aldatmaya karar verdi ve tarihi altı ay sonra bilgisayara koydu. Şimdi, test cihazında 05/01/2015 tarihi ile birlikte 11/1/2015 tarihini alacağız ve gerçek tarih hala 05/01 olmasına rağmen 1/10/2015 tarihine kadar keneleri işleyeceğiz. /2015 ve terminalde gerçek veriler yalnızca bu tarihe kadardır. Ancak test başlangıcında bu değeri test cihazından alamıyoruz.

İşte sorun bu.

Yani test cihazında kaydedilen zaman serilerinin gerçek son tarihini test cihazından almak mümkün olsaydı sorun çözülürdü. Ama sorun şu ki, nasıl yapılacağı belli değil.

 
Alexandr Bryzgalov :

dll'ye gerek yok

init'te, burada ilk çubuğu ve çubuk sayısını sembolle (herhangi bir) çıkarmak için bir şeyler yapabilirsiniz. Ama bu eski yapı için. Ve test cihazında çalışıp çalışmayacağını bilmiyorum. Ancak MT4'te dll olmadan tarihe erişim var

Init'te tarih 01/01/2015'e eşit olacak ve buna göre tüm barlar sadece bu tarihten itibaren çekilecek. Gerçek tarih 05/01/2015 olmasına rağmen
 
George Merts :

Strateji test cihazında, ilk çubuğun zamanı, gelen onay işaretinin zamanıdır. Ve strateji test cihazında kenelerin ortaya çıkmasıyla sürekli artacaktır.

Özel örnek:

-------------------------------------------------- ---

Geçerli tarih 1 Mayıs 2015, geçen yıl için strateji test cihazını başlatıyoruz. Strateji test cihazındaki ilk işarette, 1 Ocak 2015'te sıfır çubuğunun zamanını alacağız. Gerçi bilgisayardaki gerçek zaman 1.5.2015. Strateji test cihazına keneler geldiğinde, tarih değişecek ve sıfır çubuğu da değişecek.

Bir dosya işlemi yardımıyla, son (sıfır çubuğumuz) 1.1.2015 tarihi olmasına rağmen, gerçek zamanın 1.05.2015 olduğunu elde edebiliriz. Buna göre, test cihazındaki onay işaretlerini yalnızca 1 Nisan 2015'e kadar işliyoruz.

Yeni gerçek günler geldikçe - test cihazında daha ileri bir tarih alacağız ve buna göre süreç daha da ileri gidiyor, ancak gerçek tarihe bir aydan daha yakın değil.

Şimdi - kullanıcı bizi aldatmaya karar verdi ve tarihi altı ay sonra bilgisayara koydu. Şimdi, test cihazında 05/01/2015 tarihi ile birlikte 11/1/2015 tarihini alacağız ve gerçek tarih hala 05/01 olmasına rağmen 1/10/2015 tarihine kadar keneleri işleyeceğiz. /2015 ve terminalde gerçek veriler yalnızca bu tarihe kadardır. Ancak test başlangıcında bu değeri test cihazından alamıyoruz.

İşte sorun bu.

Yani test cihazında kaydedilen zaman serilerinin gerçek son tarihini test cihazından almak mümkün olsaydı sorun çözülmüş olurdu. Ama sorun şu ki, nasıl yapılacağı belli değil.

Bir geçmiş dosyası var, onu açmanız (FileOpenHistory), okumanız, ilkini bulmanız (tarihteki EN KÜÇÜK BAR), zamanını okumanız, toplam çubuk sayısını hesaplamanız gerekiyor.

Bu, danışmanın test cihazında doğru zamanda durmasını manipüle etmek için yeterli olacaktır.

 
Son tarihi almanıza gerek yok, geçmiş dosyasındaki ilk tarihi ve tarih dosyasındaki toplam çubuk sayısını init'ten okuyarak almanız gerekiyor.
 
Alexandr Bryzgalov :

Bir geçmiş dosyası var, onu açmanız, okumanız, ilkini bulmanız (tarihteki KAYIP ÇUBUK), zamanını okumanız, toplam çubuk sayısını hesaplamanız gerekiyor.

Bu, danışmanın test cihazında doğru zamanda durmasını manipüle etmek için yeterli olacaktır.

Bu doğru, ancak strateji test cihazından ona nasıl erişilir? Yukarıda önerilen seçenek, strateji test cihazındaki Init'te bize 01/01/2015 döndürecek olan standart işlevleri kullanan çubukları alır (Testi bu tarihten itibaren başlatırsanız)
 
Alexandr Bryzgalov :
Son tarihi almanıza gerek yok, geçmiş dosyasındaki ilk tarihi ve tarih dosyasındaki toplam çubuk sayısını init'ten okuyarak almanız gerekiyor.

ANCAK ! İlginç.

Denemek gerek.

 
George Merts :
Bu doğru, ancak strateji test cihazından ona nasıl erişilir?

Yani normal bir dosya işlemi gibi mi yoksa test cihazından geçmişe erişmesine izin verilmiyor mu?

Kendim denemedim ama sertifikada bu konuda herhangi bir yasak yok

 
Belki konuya dahil değilim, ama OnTesterInit () 'de TimeLocal ve TimeGMT'yi kontrol ederseniz , farkı gün olarak bulursanız, orada ne zaman avlanacak, gerçek mi yoksa test mi?