MQL4 Gerçek Zamanlı Saat (saniye saniye) - sayfa 4

 

Güzel, ancak bu gerçek zamanlı bir çözüm değil, çünkü onaylanmayan olaylar için yanıt süresini kontrol edemiyoruz.
"uyku()" durumunda yapabiliriz.

 

Yani, tık tık ve eski fiyatları uyku ile birleştirirsek, gerçek zamanlı bir saatimiz olabilir :)

 

Dediğim gibi, bu çözüm bir EA'da uygulanırsa, TimeCurrent() için artık ihtiyaç yoktur ve Döngü, Sleep(Interval-Runtime) (ms cinsinden) tarafından kontrol edilir.

Kodun çoğu aynı kalır, artık redraw()'a gerek kalmayacak. Ayrıca, kodun hızını arttırmanız gerekiyorsa, kaydırma döngüsünden kurtulmak için sıfır noktalı bazı (ingilizce kelimeyi kaçırıyorum) dizileri kullanabilirsiniz.

AFAIK bu (veya benzeri), bir göstergede saf MQL'de yapılabilecek en iyi çözümdür. Bir DLL kullandığınızda ve hesaplamaları harici bir programda dışa aktardığınızda kesinlikle daha iyi bir çözüm vardır.

 
spidermagos :

Yani, tık tık ve eski fiyatları uyku ile birleştirirsek, gerçek zamanlı bir saatimiz olabilir :)

Evet, ancak Göstergelerde Uyku mümkün değil, bu konunun başından beri sorununuz bu
 
zzuegg :
Evet, ancak Göstergelerde Uyku mümkün değil, bu konunun başından beri sorununuz bu

Bir EA bir gösterge arayabilir mi?
 
Evet, ancak yalnızca sorununuzu çözmeyecek olan icustom
 
Grafiğe her saniye sahte bir onay işareti gönderen bir komut dosyası ekleyebilirsiniz. Bu, genellikle çok çiftli göstergeleri ve EA'ları düzenli aralıklarla güncellemek için yaptığım şeydir.
 
7bit :
Grafiğe her saniye sahte bir onay işareti gönderen bir komut dosyası ekleyebilirsiniz. Bu, genellikle çok çiftli göstergeleri ve EA'ları düzenli aralıklarla güncellemek için yaptığım şeydir.
Bunun için bir dll'ye mi ihtiyacınız var yoksa bu onsuz mümkün mü?
 
zzuegg :
Bunun için bir dll'ye mi ihtiyacınız var yoksa bu onsuz mümkün mü?

Bu sadece mql4'teki bir avuç satırdır (elbette Windows API'sini çağırmak için izin verilen DLL çağrılarına ihtiyacınız vardır, ancak hiçbir şey yüklemeniz gerekmez):

 /**
* MT4/experts/scripts/ticks.mq4
* send a fake tick every 1000ms to the chart and
* all its indicators and EA until this script is removed.
*/

#property copyright "© Bernd Kreuss"

#import "user32.dll"
   int PostMessageA( int hWnd, int Msg, int wParam, int lParam);
   int RegisterWindowMessageA( string lpString);
#import

int start(){
   int hwnd = WindowHandle( Symbol (), Period ());
   int msg = RegisterWindowMessageA( "MetaTrader4_Internal_Message" );
   while (! IsStopped ()){
      PostMessageA(hwnd, msg, 2 , 1 );
       Sleep ( 1000 );
   }
}

Bu betiği favorilerimde var ve tiklere ihtiyacım olduğunda onu grafiğe sürüklerim.


Ayrıca bunun sadece bir tik gönderen ve sonra çıkan ve bunu (one_tick.mq4) ALT+T kısayol tuşuna bağlayan döngü olmadan bir varyasyonu var ve şimdi sadece ALT-T tuşlarına basarak aktif grafiğe bir onay gönderebilirim. Hafta sonu boyunca, hesaplamalarını tetiklemek ve grafiklerini çizmek için start()'ı zorlamak için deneyler yaparken bazı stat-arb EA'larım için buna ihtiyacım var (aralığı değiştirmek için grafikteki satırları hareket ettirebilirim ve sonra yeni bir onay işaretine ihtiyacım var) hesaplamalarını güncelleyin).

 

güzel. paylaşım için teşekkürler