MQL5 için dilekler - sayfa 99

 
Henry_White >> :

Sonraki sürümlerde görmek istediklerim:

  1. Onay işleyici içeriğinin dışında kendi prosedürlerinizi yürütme yeteneği (MT4 için start()'tır) (örneğin, istatistiklerin hesaplanması, optimizasyon vb. için ayrı bir iş parçacığında),
  2. fareyi kullanmak için en basit işlevler. Örneğin, "OnClick" olayında, işaretçinin koordinatlarını MT boyutlarında almak mümkündür (X ile çubuk dizini, Y ile - geçerli pencerenin Y koordinatı.

1. Şimdi sizi ne durduruyor?

2. MQL5'te Expert Advisors, pencere olaylarını (EMNIP) işleyebilecektir.

 
TheXpert >> :

1. Şimdi sizi ne durduruyor?

Peki, nasıl olduğunu biliyorsanız, bu beceriyi/bilgiyi paylaşırsanız çok minnettar olacağım.

 
TheXpert >> :

2. MQL5'te Expert Advisors, pencere olaylarını (EMNIP) işleyebilecektir.

Bu arada ChartEvent olay işleyicisi yalnızca Uzman Danışmanlarda mevcut olacak... Oldukça garip ayrımcılık )) IMHO, bu ihtiyaç göstergelerde daha az değil (Uzman Danışmanlarda, bence bu gerekli değil).

 
Henry_White >> :

Peki, nasıl olduğunu biliyorsanız, bu beceriyi/bilgiyi paylaşırsanız çok minnettar olacağım.

Asfaltta iki parmak gibi değil ama yapabilirsin. Dll'yi bağlayın, hesaplamaları yeni bir iş parçacığında arayın - WinAPI burada yardımcı olacak, zamanlayıcı veya geri arama ile sona erecek.

Henry_White >> :

Bu arada ChartEvent olay işleyicisi yalnızca Uzman Danışmanlarda mevcut olacak... Oldukça garip bir ayrımcılık ))

Ben de sevmiyorum. Ama şimdi hindiler programa bağlı değil.

 
TheXpert >> :

Asfaltta iki parmak gibi değil ama yapabilirsin. Dll'yi bağlayın, hesaplamaları yeni bir iş parçacığında arayın - WinAPI burada yardımcı olacak, zamanlayıcı veya geri arama ile sona erecek.

C DLL seçeneğini düşündüm, ancak dll'den zaman serilerine DOĞRU erişim, ayrıca 10'dan fazla farklı göstergenin değerleri ve tüm bunlar tarihte iyi bir derinliğe nasıl ulaşacağımı tam olarak net değil. Ve hesaplama süresinin bir dakikadan fazla sürdüğünü hesaba katarsak (dakikalar içinde çalışıyorum), o zaman DLL işaretçilerinin terminale yeni bir çubuk ekledikten sonra nereye başvuracağı tamamen belirsizdir. Ve yine de, birkaç düzine hesaplanmış parametre döndürmeniz ve başka bir yerde fiyat aralığına herhangi bir grafik atmanız gerekiyor. Önemsiz değil, genel olarak, ortaya çıkıyor ...

Tüm bunlara baktıktan ve deneyler, çeşitli kontroller ve hata ayıklama için ne kadar zamanımı alacağını tahmin ettikten sonra, MQL'de zaman kümesi işleme yazdım... Çalışıyor, ama... Çirkin. Ve ruh sorar! ))) Evet, bahçede zaten 21. yüzyıl ... Ama çağa tekabül etmek istiyorum))

 

"Nokta" kavramını netleştirmeyi (tanımlamayı) öneriyorum.

Bir pip, 5. anlamlı basamaktır: 1.234 5 .

Alıntı bir basamak daha (1.23456) ile temsil ediliyorsa ve yayılma = 0.00018 ise, puan cinsinden yayılma 1'dir . 8 puan, 18 puan değil .

Bu, terminolojide tekdüzeliğe izin verecek ve karışıklığı önleyecektir.

 
SK. >> :

"Nokta" kavramını netleştirmeyi (tanımlamayı) öneriyorum.

Bir pip, 5. anlamlı basamaktır: 1.234 5 .

Alıntı bir basamak daha (1.23456) ile temsil ediliyorsa ve yayılma = 0.00018 ise, puan cinsinden yayılma 1'dir . 8 puan, 18 puan değil .

Bu, terminolojide tekdüzeliğe izin verecek ve karışıklığı önleyecektir.

Bu doğru - brokerler web sitelerinde 18 değil "spread 1.8" yazıyorlar - tam olarak ne yaptıklarını biliyorlar :)

 

Функция OnCalculate() вызывается только в пользовательских индикаторах
при необходимости произвести расчет значений индикатора по событию Calculate.

Hala nesnelerle ve hatta değişen çubukların sayısını bilmeden nasıl bir gösterge yapacağımı bilmiyorum.

 

Bir printf işlevi olduğunu görüyorum

ve başka bir sprintf almak ne kadar güzel olurdu



 
Roffild >> :

Hala nesnelerle ve hatta değişen çubukların sayısını bilmeden nasıl bir gösterge yapacağımı bilmiyorum.

MQL5 yardımı şunları belirtir:

int OnCalculate( const int Rates_total, // giriş zaman serisinin boyutu
const int prev_calculated, // önceki çağrıda işlenen çubuklar
const tarihsaat ve saat[], // Saat
const çift ve aç[], // Aç
const çift ve yüksek[], // Yüksek
const çift ve düşük[], // Düşük
const çift ve kapat[], // Kapat
const long & tick_volume[], // Tick Volume
const uzun ve hacim[], // Gerçek Hacim
const int & yayılma[] // Yayılma
);

OnCalculate() işlevi tarafından döndürülen değer ile ikinci giriş parametresi prev_calculated arasındaki ilişkiye dikkat edin. İşlev çağrılırken prev_calculated parametresi , önceki çağrıda OnCalculate() işlevi tarafından döndürülen değeri içerir . Bu, bu işlevin önceki başlatılmasından bu yana değişmeyen çubuklar için yeniden hesaplamalardan kaçınmak için özel bir göstergeyi hesaplamak için ekonomik algoritmalar uygulamanıza olanak tanır.

Bunu yapmak için, geçerli işlev çağrısındaki çubuk sayısını içeren Rate_total parametresinin değerini döndürmek genellikle yeterlidir. OnCalculate() işlevine yapılan son çağrıdan bu yana fiyat verileri değiştiyse (daha derin geçmiş yüklendi veya geçmiş boşlukları dolduruldu), prev_calculated girdi parametresinin değeri terminalin kendisi tarafından sıfıra ayarlanacaktır.

Neden: