Hatalar, hatalar, sorular - sayfa 595

 
-Alexey- :
C'ye geçmeyi deneyin - hatanın kendisi bulunacaktır. Ve genel olarak - bu tür projelerle sadece üzerinde ve gelecekte sorun istemiyorsanız yazın. Maalesef bunu çok geç fark ettim ve şimdi yeniden yazıyorum :)
Belki yakın gelecekte ben de C++ öğreneceğim. Son altı ayda kafam şimdiden MQL4, MQL5, HTML, CSS, XML ile doldu. Ve şimdi hala JavaScript öğreniyorum. C ++ için henüz yer ve zaman yok, gerçekten istememe rağmen.))
 

TF M15'te başlatılan bir göstergemiz var, kodda gösterge, TF M1 ile MqlRates zaman serisini istiyor.

Gösterge, M1 verileri hazır olmadığı için hemen başlamaz ve ilk çalıştırmada yüklenmelerini sağlamak mümkün değildir.

Sonuç olarak, sahte bir geçişimiz var ve gösterge artık verilere erişmiyor, zaten hesaplandıklarını ve yeniden hesaplamaya değmeyeceğini düşünüyor.

Şimdi göstergeyi iki şekilde başlatıyorum:

  1. Göstergeyi M15'te başlatıyorum, göstergeyi silip tekrar başlatıyorum (her şey çalışıyor).
  2. Göstergeyi M15'te başlatmadan önce, M1'de bir tablo açıyorum, göstergeyi M15'te başlatıyorum (her şey ilk kez çalışıyor).

Dolayısıyla soru şu: başka bir TF'nin gerekli verilerinin doğrulanması ve yüklenmesi nasıl otomatikleştirilir?

 
Urain :

Dolayısıyla soru şu: başka bir TF'nin gerekli verilerinin doğrulanması ve yüklenmesi nasıl otomatikleştirilir?

Benzer bir durumda, OnCalculate içindeki başlatma sürecini kontrol ediyorum. Başlatma sırasında bir hata varsa, her şey doğru şekilde hesaplanana kadar prev_calculated=0, vb. döndürürüm.
 
Lizar :
Böyle bir durumda OnCalculate'de başlatma işlemini kontrol ediyorum. Başlatma sırasında bir hata varsa, her şey doğru şekilde hesaplanana kadar prev_calculated=0, vb. döndürürüm.

Fikir güzel, prev_calculated'da hiçbir şey atanamasa da, değişken const olarak bildirilmiş, ancak sizi anlıyorum, başka bir benzer değişken oluşturabilirsiniz.

Geriye bir soru kalıyor ve veri yoksa ne yapmalı?

Anladığım kadarıyla, veri talebinin kendisi onların yerel veritabanından yüklenmesine veya yüklenmesine yol açmıyor ve sorun tam olarak bu.

 
Urain :

Fikir güzel, prev_calculated'da hiçbir şey atanamasa da, değişken const olarak bildirilmiş, ancak sizi anlıyorum, başka bir benzer değişken oluşturabilirsiniz.

ve atama işinde değil! Nokta, OnCalculated tarafından döndürülen sayıdır. Verileriniz hazır değilse, buna göre OnCalculated'dan 0 döndürürsünüz.
BarsCalculated'daki örneklere bakın. Kontrol etmeniz gereken onun aracılığıyla.

Geriye bir soru kalıyor ve veri yoksa ne yapmalı?

görünmüyorlarsa ve görünmeyeceklerse, yapacak özel bir şey yoktur.
Dilerseniz timer ile bekleme ve hesaplama tamponlarını arayabilirsiniz.
 
sergeev :

ve atama işinde değil! Nokta, OnCalculated tarafından döndürülen sayıdır. Verileriniz hazır değilse, buna göre OnCalculated'dan 0 döndürürsünüz.
BarsCalculated'daki örneklere bakın. Kontrol etmeniz gereken onun aracılığıyla.

görünmüyorlarsa ve görünmeyeceklerse, yapacak özel bir şey yoktur.
Dilerseniz timer ile bekleme ve hesaplama tamponlarını arayabilirsiniz.

Yardımcı olmaz, yalnızca göstergeyi boşaltmak ve yeniden başlatmak yardımcı olur, bu durumda veriler bir nedenden dolayı zaten oradadır.

Veya bir seçenek olarak, gerekli TF M1 ile bir tablo açın, ardından M1'in talebi üzerine bitişik M15 grafiğindeki veriler hemen hazırdır.

 
Urain :

Yardımcı olmaz, yalnızca göstergeyi boşaltmak ve yeniden başlatmak yardımcı olur, bu durumda veriler bir nedenden dolayı zaten oradadır.

Veya bir seçenek olarak, istediğiniz TF ile bir grafik açın, ardından yandaki grafikteki veriler hemen hazır olur.

Nikolai bugün yarım gününü hindilerle geçirdi inanamayacaksınız. Çoklu para birimi / multi-timerfaymovy vardı.

Dolayısıyla, görüntülememe ile ilgili sorun, bu TF'de basitçe mevcut olmayan bir çubuktan bir değer almaya çalışılıyor olmasıdır. henüz tarih yok.

Bu nedenle, çubuğu almadan önce kontrol etmek gerekir - SeriesInfoInteger.
İndirmeye gerek yok. Aynı şekilde, yerleşim bölümünü boşaltamazsınız (bugün konuyu bu konuda gündeme getirdim).
 
sergeev :

Nikolai bugün yarım gününü hindilerle geçirdi inanamayacaksınız. Çoklu para birimi / çoklu zamanlama vardı.

Dolayısıyla, görüntülememe ile ilgili sorun, bu TF'de basitçe mevcut olmayan bir çubuktan bir değer almaya çalışılıyor olmasıdır. henüz tarih yok.

Bu nedenle, çubuğu almadan önce kontrol etmek gerekir - SeriesInfoInteger.

İndirmeye gerek yok. Aynı şekilde, yerleşim bölümünü boşaltamazsınız (bugün konuyu bu konuda gündeme getirdim).

Bu arada elimde bir çek var, M1 TF'ye göre ilk tarihi buluyorum ve M15 çubuklarının hesaplanması bu tarihten başlıyor. Ayarlarda TF, PERIOD_M1 olarak belirtilmiş

   timestart=( datetime ) SeriesInfoInteger ( _Symbol ,TF, SERIES_FIRSTDATE );
   for ( int i=prev> 0 ?prev- 1 : 0 ;i<rates_total- 1 ;i++)
     {
       if (time[i]>timestart)
        {
         ... расчёт
        }
     }
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков - Документация по MQL5
 
Urain :

1. Fikir güzel, prev_calculated'da hiçbir şey atanamasa da, değişken const olarak bildirilmiş, ama sizi anlıyorum, başka bir benzer değişken oluşturabilirsiniz.

2. Bir soru kaldı ve hala veri yoksa ne yapmalı?

3. Veri talebinin kendisinin yerel veritabanından indirilmesine veya indirilmesine yol açmadığını anlıyorum ve sorun tam olarak bu.

  1. OnCalculate'den kastedilen 0 döndürür, ardından prev_calculated=0;
  2. Yeniden başlatmaların sayacını koydum. Taşma olduğunda göstergeyi boşaltırım.
  3. CopyХХХХ ile ilgili herhangi bir sorun yoktu. Yerel bir tarih varsa, o zaman birinciden değilse, ikinci veya üçüncü zamandan itibaren her şey düşünüldü. Şampiyonada, danışman tarafından kullanılan "casus" yalnızca bir dakikalık geçmişe göre hesaplar, H1'de çalışır. Ve böylece 9 çift için. Yerel bir tarihin yokluğunda, 2. madde işe yaradı. Ama hatırladığım kadarıyla sunucudan geçmişin indirilmesi başladı.
 
Urain :

Anladığım kadarıyla, veri talebinin kendisi onların yerel veritabanından yüklenmesine veya yüklenmesine yol açmıyor ve sorun tam olarak bu.

CopyXXXX yardımından:

Bir Uzman Danışmandan veya bir komut dosyasından veri istenirken, terminal bu verilere yerel olarak sahip değilse sunucudan indirme başlatılacak veya veriler yerel geçmişten oluşturulabiliyorsa gerekli zaman serilerinin yapımı başlayacak, ancak henüz hazır değil. İşlev, zaman aşımı sona erdiğinde hazır olacak veri miktarını döndürür, ancak geçmiş yüklemesi devam eder ve bir sonraki benzer istek daha fazla veri döndürür.

Bu sadece uzmanlar ve senaryolarla ilgili. Bu göstergeler için işe yarıyor mu?