Başlatmada ChartNavigate - sayfa 4

 
Ihor Herasko :

P./S.: Her ihtimale karşı, bu deneyler sırasında terminalin uzun bir süre sonra (yani, birçok yeni çubuğun ortaya çıkması beklenirken) yüklenmesi durumunda ne olacağına bakmadığımı açıklığa kavuşturacağım. terminal yüksüz) .

 
Alexey Viktorov :

Dina, senin için işe yarıyor mu? 2-3 saattir (sadece bugün, dünün testleri sayılmıyor) OnInit'te çalışmayan bir seçenek bulmaya çalışıyorum ama hepsi boşuna. Her şey her zaman olması gerektiği gibi çalışır. Sadece şu özellik fark edildi: Göstergeyi iki çizelgeye koyup terminali yeniden başlatırsanız, sadece terminalin açılıp kapanma anında aktif olan çizelge üzerinde çalışacaktır. İkinci, etkin olmayan grafikte çalışmıyor. Ancak bu bence oldukça anlaşılabilir, verilerin gelmesine rağmen grafiğin çizimi yok ve grafiğin kendisi yok.

Evet, Alex, işe yarıyor. Bunun hakkında burada yazdım. Görünüşe göre, diğer gönderilerden yaptığım alıntıların arkasında bu görsel olarak kaybolmuş

 
Dina Paches :

Lütfen söyleyin, terminali boşaltmadan önce tabloyu en son fiyatlara iade ediyor musunuz?

Hayır, dönmüyorum. Çünkü mesele tam olarak bu. Bütün bunların ne için olduğu hakkında size biraz daha anlatacağım. Tüccar grafiği bir test cihazı gibi kullanır. Gösterge, sözde şimdiki zamanın sağında bulunan gerçek grafiğin bir bölümünü gizler (aslında bu zaman tarihte bir yerdedir). F12'ye bastığınızda, çevrimiçi grafiğin bir sonraki mumu görüntülenir, vb. Bu nedenle, tam olarak gösterge eklenmiş olarak terminali yeniden başlattığınızda, grafik konumunu tüccarın araştırmasını tamamladığı yere döndürmez. Sonuç olarak, boş bir grafik alır çünkü terminal, grafik görüntüsünü son gerçek muma değiştirir. Ve bu, terminalin tamamen farklı bir yerde boşaltılmasına rağmen.

Neden soruyorum:

Bu şartlar altında benim için nasıl çalıştığını görmek için kodunuzu uyguladım. Test ederken, ilk başta tarif ettiğiniz sorunu yeniden oluşturmaya karar verdim. Daha sonra anladım - hayır. Çünkü grafik yüklemeden önce en son fiyatlara döndürülürse terminale yüklendikten sonra koda göre çalışır. Boşaltmadan önce taze fiyatlara dönmezseniz, yüklemeden sonra tablo boşaltmadan önce olduğu yerde kalır.

İlginç bir gözlem. Kendim kontrol ettim - ne yazık ki ve ah, hiçbir şey değişmedi. Yine de, yeniden başlattığımda en son fiyatları alıyorum.

Saati kontrol etmenizi öneririm. Bunların hepsini yapı 1861'de test ediyorum. Sizde hangisi var?

 
Alexey Viktorov :

Dina, senin için işe yarıyor mu? 2-3 saattir (sadece bugün, dünün testleri sayılmıyor) OnInit'te çalışmayan bir seçenek bulmaya çalışıyorum ama hepsi boşuna. Her şey her zaman olması gerektiği gibi çalışır. Sadece şu özellik fark edildi: Göstergeyi iki çizelgeye koyup terminali yeniden başlatırsanız, sadece terminalin açılıp kapanma anında aktif olan çizelge üzerinde çalışacaktır. İkinci, etkin olmayan grafikte çalışmıyor. Ancak bu bence oldukça anlaşılabilir, verilerin gelmesine rağmen grafiğin çizimi yok ve grafiğin kendisi yok.

İki tabloya koydum. Ne yazık ki, her ikisi de aynı şekilde çalışır - yeniden başlattığınızda en son fiyatlar görüntülenir.

Nasıl bir yapıya sahipsin?

 
Her şey düşündüğümden daha eğlenceli çıktı. Kodu OnCalculate'e taşıdım ( her tikte çağrılmaması için tek bir işlem yaptım), ancak resim değişmedi. Yani, terminalin başlangıcında OnCalculate'de bile ChartNavigate çalışmıyor...
 
Alexey Viktorov :

... Sadece bu özellik fark edildi: Göstergeyi iki çizelgeye koyup terminali yeniden başlatırsanız, sadece terminalin açılıp kapanması sırasında aktif olan çizelge üzerinde çalışacaktır. İkinci, etkin olmayan grafikte çalışmıyor. Ancak bu bence oldukça anlaşılabilir, verilerin gelmesine rağmen grafiğin çizimi yok ve grafiğin kendisi yok.

Öyleyse dene - kendimi tahmin etmedim. Şimdi böyle deneyler yaptım (ayrıca Igor'un kodunu kullanarak).

Aynı zamanda, sonunda, tarif ettiği sorunu yeniden üretmeyi başardı.

 
Ihor Herasko :

...

Saati kontrol etmenizi öneririm. Bunların hepsini yapı 1861'de test ediyorum. Sizde hangisi var?

Ve bende 1861 var. Ama Alexey Viktorov sayesinde OnInit () üzerinden kurulum yaparken anlattığınız sorunu yeniden oluşturmayı başardım. /*yazılarını görmeden önce*/

Prosedür: Burada açıklandığı gibi.

I. Ama terminali boşaltmadan önce tabloları son fiyatlara kaydırdı.

Aynı zamanda, gösterge, aynı çiftin zaman dilimlerinde farklılık gösteren (GBPUSD M5 ve GBPUSD H1) iki tablosuna ayarlandı.

Bu deneylerden elde ettiğim sonuçlar:

1. Göstergeyi önce GBPUSD M5 tablosuna, ardından GBPUSD H1 tablosuna yükleyin. Grafikleri yeni çubuklara kaydırdıktan sonra GBPUSD H1 grafiği aktifken (yani eski zaman dilimi aktifken) terminali kapattım. Bu durumda terminali tekrar açarsanız, açılıştaki tablo kodunuz tarafından belirtilen çubuklar üzerinde kaydırılır .

2. Ancak, terminali aktif bir GBPUSD M5 grafiği ile kapatırsanız (yani, daha düşük zaman dilimi aktiftir) ve ardından terminali tekrar açarsanız, terminali yükledikten sonra, bu iki çizelgeden hiçbirinde kayma olmaz. Grafikler taze çubuklarda açılır. Bu durumda, biri başarı, diğeri - bir hata verir:

test 2018 06 26 (GBPUSD,M5)     Alert : Успешно
test 2018 06 26 (GBPUSD,H1)     Alert : Ошибка № 4111

Deneyler s.1 ve s.2 , terminali yeniden başlattıktan ve sonuçlarla tanıştıktan sonra bu göstergeyi çizelgelerden kaldırdım ve ardından tekrar kurdum.


3. Aynı deneyleri yaptığımda, ancak her seferinde yeni bir gösterge ile yeniden yüklemeden, terminali yeniden başlattıktan sonra grafik kayması olmuyor. Daha yüksek veya daha düşük bir zaman diliminde neyin aktif olduğuna bakılmaksızın. Grafikler taze çubuklarda açılır. Mesajlar - 2. paragraftakiyle aynı (başarılı ve hata 4111)

II. Ek olarak, aynı iki çizelgede göstergenin eşzamanlı kurulumuyla, ancak terminali boşaltmadan önce bu çizelgeleri yeni çubuklara döndürmeden deneyler yaptım.

Aşağıdaki sonuçlara sahibim: Daha yüksek bir zaman diliminde kapatır/açarsanız, daha yüksek zaman diliminin grafiği kapanmadan önceki yerdir. Junior (aktif değil) - en sonuncusunda.

Alttakini açar/kapatırsanız, alttaki grafik yeni çubuklarda açılır. Bu durumda mesajlar - 2. paragraftaki gibi (başarılı ve hata 4111)


III. Sorun şimdi aşağıdakilerle ortaya çıktı:

  • Göstergeyi kurmadan önce grafik otomatik kaydırmayı devre dışı bırakmayı unuttum;
  • Bunu fark ettiğimde göstergeyi çıkardım ve hemen yenisine taktım.

Bu nedenle, göstergenin bu şekilde yeniden yüklenmesinden sonra herhangi bir değişiklik olmadı, ancak uyarı başarılı oldu:

test 2018 06 26 (GBPUSD,M5)     Alert : Успешно

Bununla birlikte, göstergenin böyle bir yeniden yüklenmesinden önce, otomatik kaydırma yalnızca bu değil, bir süre sonra da kapatıldıysa, sorun ortaya çıkmadı.


Bunun gibi bir şey.

Servis Masasına yazmalısın gibi görünüyor.

 
Dina Paches :

Bu durumda, biri başarı, diğeri - bir hata verir:

Ama bu bir sürpriz! Henüz ChartNavigate'ten bir hata alamadım. Ama bu zaten bir şey.

Görünüşe göre sorunun özünde, neler olduğunu anlamaya başlıyorum.

OnInit() veya OnCalculate() içinde ChartNavigate() ilk kez çağrıldığında, tüm grafik verilerinin henüz yüklenmemiş olma olasılığı yüksektir. Bununla birlikte, ChartNavigate() zaten çalıştı ve başarılı bir şekilde çalıştı (o sırada). Bunu takiben, veriler grafikte yüklenir ve görüntülenir, bu da tam bir yeniden çizime ve grafiğin başlangıcına kaymasına yol açar. Sonuç olarak, grafiği ChartNavigate() tarafından hiç kaydırılmamış gibi görüyoruz.

Bu nedenle, grafiği başarılı bir şekilde kaydırmak için, bir şekilde grafik verilerinin görüntülenmesinin (geçmiş sayfalama nedeniyle) artık beklenmediğini belirlemek gerekir. Ancak böyle bir gerçek belirlendikten sonra ChartNavigate() çağrılabilir.

 
Ihor Herasko :

...

Bu nedenle, grafiği başarılı bir şekilde kaydırmak için, bir şekilde grafik verilerinin görüntülenmesinin (geçmiş sayfalama nedeniyle) artık beklenmediğini belirlemek gerekir. Ancak böyle bir gerçek belirlendikten sonra ChartNavigate() çağrılabilir.

Muhtemelen haklısın. Terminalin aynı şekilde yeniden başlatılmasıyla bu alakalı hale gelebilir. Ayrıca, deneyler sırasında, göstergeyi yeniden yüklemekle birlikte (veya olmadan) otomatik kaydırmayı etkinleştirme / devre dışı bırakmayla ilgilendim. Bu yazının sonundaki III . blokta anlattığım şeyin bir sonucu. Ama daha detaylı incelemedim. Acil sorunlarımızı çözmemiz gerekiyor. Bu nedenle, daha öteye geçerken.

 
Ihor Herasko :

İki tabloya koydum. Ne yazık ki, her ikisi de aynı şekilde çalışır - yeniden başlattığınızda en son fiyatlar görüntülenir.

Nasıl bir yapıya sahipsin?

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Başlatmada ChartNavigate

Alexey Viktorov , 2018.06.25 15:10

Bende de 1861 var. Sadece bir kez çoğaltıldığı ortaya çıktı. Diğer tüm girişimler iyi çalıştı.


Neden: