Hatalar, hatalar, sorular - sayfa 2222

 
Alexander :

Stabil oynuyor mu? Ne inşası?

Evet, sorun tekrarlanabilir. Sürüm 1870.
 

Soru.

Diyelim ki bir Uzman Danışman veya göstergedeki birkaç sembol üzerinde, daha doğrusu "Piyasa İzleme" penceresinde görüntülenen tüm semboller üzerinde çalışıyorum.

Görev, herhangi bir sembol için yeni bir onay anını yakalamaktır.

Şimdiye kadar sadece birkaç seçenek görüyorum:
  1. tüm karakterlerin bir anketi olan bir zamanlayıcı aracılığıyla. (Tabii ki, TimeCurrent() fonksiyonunun sadece yeni değerini sorgulayabilirsiniz, ancak bu durumda hata 1 saniye olacaktır, çünkü bu fonksiyon saniye cinsinden bir değer döndürür)
  2. OnTick'teki (veya OnCalculate) her bir sembolde EventChartCustom aracılığıyla özel bir olay oluşturun

İlk seçeneğin dezavantajı, kaynaklar ve veri uygunluğu açısından optimal olmamasıdır. OnTimer temelde boşta olacak ve yeni bir fiyat teklifi yakaladığında varış zamanı hatası, zamanlayıcı frekansına eşit olacaktır.

İkinci seçeneğin dezavantajı, özellikle birkaç düzine karakter varsa, hacimliliktir.

Başka seçenek olmadığını doğru anladım (daha basit ve daha zarif)? Ya da (umarım) yanılıyor muyum?

 
Nikolai Semko :

Soru.

Diyelim ki bir Uzman Danışman veya göstergedeki birkaç sembol üzerinde, daha doğrusu "Piyasa İzleme" penceresinde görüntülenen tüm semboller üzerinde çalışıyorum.

Görev, herhangi bir sembol için yeni bir onay anını yakalamaktır.

Şimdiye kadar sadece birkaç seçenek görüyorum:
  1. tüm karakterlerin bir anketi olan bir zamanlayıcı aracılığıyla. (elbette, TimeCurrent() işlevinin yalnızca yeni değerini yoklayabilirsiniz, ancak bu durumda hata 1 saniye olacaktır, çünkü bu işlev saniye cinsinden bir değer döndürür)
  2. OnTick'teki (veya OnCalculate) her bir sembolde EventChartCustom aracılığıyla özel bir olay oluşturun

İlk seçeneğin dezavantajı, kaynaklar ve veri uygunluğu açısından optimal olmamasıdır. OnTimer temelde boşta olacak ve yeni bir fiyat teklifi yakaladığında varış zamanı hatası, zamanlayıcı frekansına eşit olacaktır.

İkinci seçeneğin dezavantajı, özellikle birkaç düzine karakter varsa, hacimliliktir.

Başka seçenek olmadığını doğru anladım (daha basit ve daha zarif)? Ya da (umarım) yanılıyor muyum?

Belki bu yardımcı olur? https://www.metatrader5.com/ru/terminal/help/trading_advanced/custom_instruments

Gerçek zamanlı alıntılara sahip sentetik enstrümanlar

Ticaret platformu, sentetik finansal araçlar - bir veya daha fazla mevcut olana dayalı araçlar - oluşturmanıza olanak tanır. Teklifleri hesaplamak için bir formül belirlemeniz yeterlidir ve platform, gerçek zamanlı olarak sentetik bir enstrümanın tiklerini oluşturacak ve aynı zamanda dakika geçmişini oluşturacaktır.
bu nasıl olur

Sentetik bir enstrüman yaratır ve onun için bir formül belirlersiniz.
Platform, kenelerini saniyede 10 kez sıklıkta hesaplayacaktır (ve yalnızca formüle dahil edilen en az bir enstrümanın fiyatı değiştiyse).
 
SEM :

Belki bu yardımcı olur? https://www.metatrader5.com/ru/terminal/help/trading_advanced/custom_instruments

Gerçek zamanlı alıntılara sahip sentetik enstrümanlar

Ticaret platformu, sentetik finansal araçlar - bir veya daha fazla mevcut olana dayalı araçlar - oluşturmanıza olanak tanır. Teklifleri hesaplamak için bir formül belirlemeniz yeterlidir ve platform, gerçek zamanlı olarak sentetik bir enstrümanın tiklerini oluşturacak ve aynı zamanda dakika geçmişini oluşturacaktır.
bu nasıl olur

Sentetik bir enstrüman yaratır ve onun için bir formül belirlersiniz.
Platform, kenelerini saniyede 10 kez sıklıkta hesaplayacaktır (ve yalnızca formüle dahil edilen en az bir enstrümanın fiyatı değiştiyse).

Evet, tabii ki bu seçeneğin de yaşam hakkı var. Teşekkür ederim!
Ama aslında bu, 100 ms'lik bir zamanlayıcı frekansıyla ve aynı dezavantajlarla 1 numaralı seçeneğimle aynı.

Yine de 2. seçenek bana daha mantıklı geliyor.

Bu arada, ikinci seçeneğin burada tartışıldığını hatırladım.


 
Nikolai Semko :

Evet, tabii ki bu seçeneğin de yaşam hakkı var. Teşekkür ederim!
Ama aslında bu, 100 ms'lik bir zamanlayıcı frekansı ile 1 numara altındaki seçeneğimle aynı.

Ve üzerinde çalıştığı sembole bakarak bir Uzman Danışman yapmak daha kolay değil. Ardından tüm sembolleri açın ve bu Uzman Danışman ile her grafiğe bir şablon uygulayın .

 for ( int i= PositionsTotal ()- 1 ;i>= 0 ;i--)
     {
       if ( PositionGetSymbol (i)== Symbol ())
        {
         //Код
        };

     }
 
SEM :
Ve üzerinde çalıştığı sembole bakarak bir Uzman Danışman yapmak daha kolay değil. Ardından tüm sembolleri açın ve bu Uzman Danışman ile her grafiğe bir şablon uygulayın .

Evet, bunun yapılabileceği açık. Soru şu ki, bir şey bilmiyorum ve sadece bir çok para birimli Uzman Danışman kodunu kullanarak başka bir sembolün alıntısının tam varış anını yakalamak mümkün.
Ancak, kullanıcı kesintileri yoluyla 2. seçenek tek mantıklı çözüm gibi görünüyor.

 
Nikolai Semko :

Evet, bunun yapılabileceği açıktır. Soru şu ki, bir şey bilmiyorum ve sadece bir çok para birimli Uzman Danışman kodunu kullanarak başka bir sembolün alıntısının tam varış anını yakalamak mümkün.
Ancak, kullanıcı kesintileri yoluyla 2. seçenek tek mantıklı çözüm gibi görünüyor.

uygulama.

Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • 2018.01.28
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 
Nikolai Semko :
  1. tüm karakterlerin bir anketi olan bir zamanlayıcı aracılığıyla. (elbette, TimeCurrent() işlevinin yalnızca yeni değerini yoklayabilirsiniz, ancak bu durumda hata 1 saniye olacaktır, çünkü bu işlev saniye cinsinden bir değer döndürür)

Başka seçenek olmadığını doğru anladım (daha basit ve daha zarif)? Ya da (umarım) yanılıyor muyum?

Milisaniye zamanlayıcı + SymbolInfoTick() zamanı milisaniye cinsinden alır.

 
fxsaber :

uygulama.

Evet, uygulamanıza bu bağlantıyı 22214 mesajında zaten vermiştim. Tekrar ediyorum - bu seçeneğin şimdiye kadarki en makul seçenek olduğunu düşünüyorum. Ve işlemci üzerindeki minimum yük ve alınan yeni bir onay anının alaka düzeyi açısından daha iyi bir uygulama olmadığı anlaşılıyor.
 
Nikolai Semko :
  1. через таймер c опросом всех символов. (можно, конечно, только опрашивать новое значение функции  TimeCurrent() , но в этом случае погрешность будет равна 1 секунде, т.к. эта функция возвращает значение в секундах)

Я правильно понимаю, что других вариантов (более простых и изящных) не существует? Или (надеюсь) я не прав?

Milisaniye zamanlayıcı + SymbolInfoTick() zamanı milisaniye cinsinden alır.

Alexey Kozitsyn :

Milisaniye zamanlayıcı + SymbolInfoTick() zamanı milisaniye cinsinden alır.

Bunların hepsi seçenek 1. Böyle bir yapıyı kastettim (Milisaniye zamanlayıcı + SymbolInfoTick() döngüsü). İşlev   TimeCurrent () dokundum çünkü. sadece mevcut sembol için değil, ne yazık ki sadece keneler için çok zor olan saniyeleri döndürür .
Nesnel olarak, kullanıcı kesintili seçenek hala çok daha mantıklı çünkü. pahalı SymbolInfoTick işleviyle bir döngü düzenlemeyi gerektirmez ve tırnaklar uyurken bile sürekli olarak işlemciyi boşta yükler. Ayrıca, yeni bir tıklamanın gelişini hesaplamadaki hata zamanlayıcı frekansına eşit olabileceğinden ve 1'den fazla tıklama olması durumunda OnTimer yürütmeleri arasındaki tüm tıklamalar kaybolacaktır.
ZY Yaklaşık mql5. mql4'te kullanıcı kesintileri düzgün çalışmıyor. Bu nedenle, mql4 için seçenek yalnızca bir zamanlayıcı aracılığıyladır.
Neden: