Çizelgeleri eksik çubuklar olmadan görmek isteyenler - burada =) - sayfa 8

 
komposter , terminalle başa çıkmak için aşağıdaki öneriyi aldım.
WS_EURUSDm1440.hst dosyasının özniteliklerini salt okunur olarak ayarlarsanız, terminal başladığı anda terminal de günlüklerde yemin eder, ancak dosya DEĞİŞTİRİLEMEZ! Dosya, terminali kapatmadan önce olduğu gibi grafikte de mükemmel bir şekilde görüntülenir.
Öyleyse, WS_EURUSDm1440'ın özniteliklerini değiştirebilecek bazı harici DLL yaparsak ne olur? hst okuma/yazma? Yani, bir Uzman Danışmanın geçmişe bir çubuk eklemesi gerektiğinde, yazmak için geçmiş dosyası özniteliklerini ayarlayan DLL'ye bir çağrı yapar, Uzman Danışman çubuğu yazar ve ardından geçmişi ayarlamak için DLL'yi tekrar çağırır. dosya öznitelikleri yalnızca okumak için. Elbette bu durumda kimsenin %100 garanti veremeyeceğini anlıyorum ama vakaların %95'inde terminal tarafından geçmiş çubuğuna zarar vermeden terminalin kapatılıp/açılacağını düşünüyorum. Işığım ayda en fazla 2 kez kesiliyor ve bu bana çok yakışırdı.
 
solandr писал (а):
komposter , terminalle başa çıkmak için aşağıdaki öneriyi aldım.
Hayır, bu gerçekten üzücü...
Aslında, terminalin neden dosyanın üzerine yazdığını çoktan anladım.
Terminalin çevrimdışı grafiğime hangi hakla dokunduğunu anlamıyorum ...

Tamam, hata normal bir zaman dizisindeyse, güncellemeniz gerekir. Ama bu benim dosyam. İstediğim şey, yazdığım şey.

Temelde, önemli değil ...
Bugün Expert Advisor'ın çalışan bir versiyonunu yapmaya çalışacağım.
 
Ve en üzücü şey ne biliyor musun? =)
Test edilen tarihte saat 23:00 olan 3 barım vardı. Geri kalan her şey - 00:00 ve bu 3, lanet olsun ...

Genel olarak, geçmişte bir hata (bu arada, günleri 23:00 MT'de başlayan "yanlış" dosyam doğrudur, ancak dürüst geçmiş =))).

Her durumda, sökme boşuna değildi - küçük bir hata çıkardım;)
solandr , en son sürümü kendiniz deneyin.

Hatalar devam ederse, geçmişi kontrol edin.

Ve hala kalırsan, de ki, kazmaya devam edeceğim ;)
Dosyalar:
 
komposter писал (а):
Genel olarak, geçmişte bir hata (bu arada, günleri 23:00 MT'de başlayan "yanlış" dosyam doğrudur, ancak dürüst geçmiş =))).

Her durumda, sökme boşuna değildi - küçük bir hata çıkardım;)
solandr , en son sürümü kendiniz deneyin.

Hatalar devam ederse, geçmişi kontrol edin.

Ve hala kalırsan, de ki, kazmaya devam edeceğim ;)


Ne yazık ki, temel bir değişiklik olmadı :o(. Digits=0 ile aynı grafikler günlüklerde de yemin ediyor.
2006.11.02 11:45:16 HistoryBase: 'WS_NZDUSDm1440' içinde 42 hata
2006.11.02 11:45:16 HistoryBase: 'WS_EURJPYm1440' içinde 271 hata
2006.11.02 11:45:16 HistoryBase: 'WS_EURCHFm1440' içinde 271 hata
2006.11.02 11:45:16 HistoryBase: 'WS_AUDUSDm1440'ta 272 hata
2006.11.02 11:45:16 HistoryBase: 'WS_EURGBPm1440' içinde 271 hata
2006.11.02 11:45:16 HistoryBase: 'WS_USDJPYm1440' içinde 272 hata
2006.11.02 11:45:16 HistoryBase: 'WS_USDCADm1440' içinde 272 hata
2006.11.02 11:45:16 HistoryBase: 'WS_GBPUSDm1440' içinde 272 hata
2006.11.02 11:45:16 HistoryBase: 'WS_CHFJPYm1440' içinde 78 hata
2006.11.02 11:45:16 HistoryBase: 'WS_USDCHFm1440' içinde 272 hata
2006.11.02 11:45:16 HistoryBase: 'WS_EURUSDm1440' içinde 272 hata

Hatayı daha hızlı görmek için birkaç çevrimdışı grafiği aynı anda açmayı deneyebilirsiniz.

Tarih nasıl kontrol edilir? Bu, terminalin Home tuşuna uzun basarak dürüstçe kendi kendine pompaladığı bir hikaye. İçine hiçbir şey ithal etmedim. Belki ona bakabilirsin ve onun hakkında bir şeyler söyleyebilirsin? Geçmiş dosyasını ekliyorum.

Not: Tabii ki, aracının sunucusunda depolanan geçmişin bazı hatalara sahip olduğunu varsayabilirim, örneğin, grafiklerde büyük "saç tokası" ve ayrıca birkaç gün boyunca alıntılarda boşluklar var, ancak yalnızca bir sonraki sorunun planı ortaya çıkar. Terminal neden onunla çalışırken hata vermiyor, ancak yalnızca bu geçmiş basit bir dönüşümle düzeltildiğinde ve SADECE düzeltilmiş geçmişin grafiğinin doğru görüntülendiğinden emin olduktan sonra, terminal hataları günlüklere yazsa da hata veriyor? ? Geliştiriciler, bu Uzman Danışman ile terminali arkadaş edinme olasılığı hakkında ne söyleyebilir?
Dosyalar:
history.zip  681 kb
 
solandr :
Ne yazık ki, temel bir değişiklik olmadı :o(. Digits=0 ile aynı grafikler günlüklerde de yemin ediyor.
Hatayı daha hızlı görmek için birkaç çevrimdışı grafiği aynı anda açmayı deneyebilirsiniz.
Tamam, bugün savaşmaya devam edeceğim ;)

Tarih nasıl kontrol edilir? Bu, terminalin Home tuşuna uzun basarak dürüstçe kendi kendine pompaladığı bir hikaye. İçine hiçbir şey ithal etmedim. Belki ona bakabilirsin ve onun hakkında bir şeyler söyleyebilirsin? Geçmiş dosyasını ekliyorum.

Benim de "dürüst" bir hikayem vardı. Tüm D1 çubukları 00:00'da başlar ve 3 çubuk 23:00'te başlar.
MT buna hiçbir şekilde tepki vermedi.
Ama dürüst MT reddeder aynı çevrimdışı grafik.

Onlar. Özellikle tüm dönüşümleri koddan kaldırmaya çalıştım ve geçmişi kopyaladım - MT hata diyor...
 
solandr :
Ne yazık ki, temel bir değişiklik olmadı :o(. Digits=0 ile aynı grafikler günlüklerde de yemin ediyor.
Dene ;)
Dosyalar:
 
komposter писал (а):
Dene ;)

İyi! Artık terminal herhangi bir hata yazdırmıyor gibi görünüyor ve terminali yeniden başlattıktan sonra grafikler doğru şekilde açılıyor. Bir sır değilse, terminali yenmeyi nasıl başardınız?

Ama ne yazık ki bir sorun vardı. Uzman Danışmanlar çevrimdışı açık bir grafikte çalışmaz :o(((.
Örneğin, bu Uzman Danışman hiçbir şey yazdırmaz:
 //+------------------------------------------------------------------+
//|                                                          bid.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        https://www.metaquotes.net// |
//+------------------------------------------------------------------+
#property copyright " Copyright © 2006, MetaQuotes Software Corp. "
#property link      " https://www.metaquotes.net// "
 
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init ()
  {
//----
   
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit ()
  {
//----
   
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start ()
  {
//----
   Print ( " Bid= " , Bid ) ;
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
Expert Advisors'ın bağımsız olarak açık bir grafikte başlatılmasını bir şekilde zorlamak mümkün müdür, aksi takdirde tüm çabalar ne yazık ki kaybedilir mi? Göstergeler ve komut dosyaları çevrimdışı grafiklerde iyi çalışıyor gibi görünse de.
Doğru, bunun iyice kontrol edilmesi gerekiyor. Göstergeler gerçekten doğru çalışıyorsa, Expert Advisor'ı 2 bileşene ayırmak mümkün olacaktır. Biri çevrimdışı bir grafikte bir gösterge, ikincisi ise siparişleri yöneten ve küresel terminal değişkenleri aracılığıyla göstergeden veri alan bir Uzman Danışman. Tabii ki hangisinin daha kolay olacağını bile bilmiyorum. Hesaplamalarda Pazar çubuklarını dikkate almadan EA'da kendiniz yapmak mı yoksa gerçek hayatta zaten debug edilmiş EA'yı 2 parçaya bölmek mi? Her şeyin amaçlandığı gibi insan olmasını istiyorum ve Uzman Danışmanların özerk olarak açık grafiklerde çalışmaması durumunda nasıl davranmanız gerekeceğini değil.
 
solandr :
İyi! Artık terminal herhangi bir hata yazdırmıyor gibi görünüyor ve terminali yeniden başlattıktan sonra grafikler doğru şekilde açılıyor. Bir sır değilse, terminali yenmeyi nasıl başardınız?

Ama ne yazık ki bir sorun vardı. Uzman Danışmanlar çevrimdışı açık bir grafikte çalışmaz :o(((.
sır =)

Uzman Danışmanlar, çevrimdışı çizelgelerde hiç çalışmaz.
Bir anlamda start () işlevi başlatılmaz.

Bir çözüm var - tüm kodu bir döngüye koyun:
 int init ()
{
   start () ;
}
int start ()
{
   while ( ! IsStopped ())
   {
      //код эксперта
      Sleep ( 10 ) ;
   }
}
 
komposter писал (а):

Bir çözüm var - tüm kodu bir döngüye koyun:


Prensip olarak, betikler başarıyla yürütüldüğünden çözüm oldukça mantıklıdır.
Ancak, Uzman Danışmanların çevrimdışı çizelgelerde çalışmasına izin vermenin neden imkansız olduğu hala net değil? Geliştiricilerin, bunu belirli bir nedenle yaptıklarına ve konumlarını yeniden gözden geçirmeyeceklerine dair resmi bilgilerine bir bağlantı verebilir misiniz? Kötü mü arıyorum?


Şimdiden teşekkür ederim!

 
solandr :

Ancak, Uzman Danışmanların çevrimdışı çizelgelerde çalışmasına izin vermenin neden imkansız olduğu hala net değil? Geliştiricilerin, bunu belirli bir nedenle yaptıklarına ve konumlarını yeniden gözden geçirmeyeceklerine dair resmi bilgilerine bir bağlantı verebilir misiniz? Kötü mü arıyorum?

Bulmaya çalıştım - işe yaramadı.
Ama bilgi şuydu, orası kesin)