Sorun şu ki, yalnızca OnTick()'ten kullanılabilir. Diğer olay işleyicilerinden TimeCurrent()'in istediğiniz sembolle ilişkili olup olmadığından asla emin olamazsınız.
Ve aynı hesaplamayı asla iki kez yapmamanızı öneririm:
Alain Verleyen : Konu mql5 için bildiğim kadarıyla. Kodunuz yalnızca mql4'tür.
Bununla ne demek istiyorsun? Bu sadece bir alıntıdır ve istenildiği yere dahil edilebilir, örneğin onun NewBar() işlevi içine. Ve imo, en basit ve en hızlı, güvenilir çözümdür. Bunu, tüm zaman dilimleri için ayrı ayrı CSymbolInfo sınıfının bir türevine dahil ettim ve mükemmel çalışıyor.
Doerk Hilger : Bununla ne demek istiyorsun? Bu sadece bir alıntıdır ve istenildiği yere dahil edilebilir, örneğin NewBar() işlevine. Ve imo, en basit ve en hızlı, güvenilir çözümdür. Bunu, tüm zaman dilimleri için ayrı ayrı CSymbolInfo sınıfının bir türevine dahil ettim ve mükemmel çalışıyor.
MT5, gerçekten mi? Ama MQL5 sadece MT5 değil, en azından ben hep öyle anladım, çünkü MT4 MQL5 derleyicisini kullanıyor. Ama aslında bunu bilmiyordum, ağırlıklı olarak MT4 kullanıyorum. Neyse, kısıtlama hakkında bilgi için teşekkürler.
Doerk Hilger : MT5, gerçekten mi? Ama MQL5 sadece MT5 değil, en azından ben hep öyle anladım, çünkü MT4 MQL5 derleyicisini kullanıyor. Ama aslında bunu bilmiyordum, ağırlıklı olarak MT4 kullanıyorum. Neyse, kısıtlama hakkında bilgi için teşekkürler.
Hayır, mql4, MT4, mql5, MT5 içindir. Ortak bir işlev alt kümeleri vardır, ancak bu 2 farklı dildir.
Alain Verleyen : Hayır, mql4, MT4, mql5, MT5 içindir. Ortak bir işlev alt kümeleri vardır, ancak bu 2 farklı dildir.
Dil aynı ama ortak olmayan küçük bir işlev alt kümesine sahipler ;) Her neyse, muhtemelen bu tanımda haklısın. MQ bu noktada kafa karışıklığı yaratmak için çok şey yaptı.
Doerk Hilger : MT5, gerçekten mi? Ama MQL5 sadece MT5 değil, en azından ben hep öyle anladım, çünkü MT4 MQL5 derleyicisini kullanıyor. Ama aslında bunu bilmiyordum, ağırlıklı olarak MT4 kullanıyorum. Neyse, kısıtlama hakkında bilgi için teşekkürler.
Sadece uyumluluk amacıyla eski iClose, iTime ... işlevlerini uygulayan bir halk kütüphanesi/sınıfı olup olmadığını biliyor musunuz? Adım adım dönüştürme sırasında mantıklı olur.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
En kolay yol:
statik tarihsaat tlastbar=0;
tarihsaat tnewbar=iTime(NULL,PERIOD_CURRENT,0);
bool isnewbar=tnewbar!=tlastbar;
tlastbar=tnewbar;
İşte benim son versiyonum .
Aslında biraz endişeliyim çünkü çok kolay.
Alain: Kutsamayı yayınlarsan iyi olur.
// -----------------------------------------------------------------------
if(MathMod(TimeCurrent(),PeriodSeconds()) < currPeriodProgress) iNewBar = true;bool NewBar(void)
{
bool iNewBar = false;
static double currPeriodProgress = 0;
currPeriodProgress = MathMod(TimeCurrent(),PeriodSeconds());
return(iNewBar);
}
// ------------------------------------------------------------------------
void OnTick()
{
if(NewBar()) PlaySound("tick.wav");
Köln'den selamlar
Willbur
Sorun şu ki, yalnızca OnTick()'ten kullanılabilir. Diğer olay işleyicilerinden TimeCurrent()'in istediğiniz sembolle ilişkili olup olmadığından asla emin olamazsınız.
Ve aynı hesaplamayı asla iki kez yapmamanızı öneririm:
Konu mql5 için bildiğim kadarıyla. Kodunuz yalnızca mql4'tür.
Bunları MQL4'te kullandım
Bununla ne demek istiyorsun? Bu sadece bir alıntıdır ve istenildiği yere dahil edilebilir, örneğin NewBar() işlevine. Ve imo, en basit ve en hızlı, güvenilir çözümdür. Bunu, tüm zaman dilimleri için ayrı ayrı CSymbolInfo sınıfının bir türevine dahil ettim ve mükemmel çalışıyor.
mql5'te iTime() işlevi yoktur.
MT5, gerçekten mi? Ama MQL5 sadece MT5 değil, en azından ben hep öyle anladım, çünkü MT4 MQL5 derleyicisini kullanıyor. Ama aslında bunu bilmiyordum, ağırlıklı olarak MT4 kullanıyorum. Neyse, kısıtlama hakkında bilgi için teşekkürler.
MQL4 iTime(), diğer MQL4 İşlevlerinin çoğunda olduğu gibi, tüccarlar için kolay ve anlaşılırdır.
MQL5 farklıdır, bunu kodlamak için bilgisayar bilimi diplomasına ihtiyacınız vardır ve çoğu insanı hayal kırıklığına uğratan da budur.
İşte geçen hafta MT4 EA'larımı MT5'e başlatmak ve dönüştürmek istediğimde karşılaştığım bir örnek ve bulduğum çözüm.
Hayır, mql4, MT4, mql5, MT5 içindir. Ortak bir işlev alt kümeleri vardır, ancak bu 2 farklı dildir.
Dil aynı ama ortak olmayan küçük bir işlev alt kümesine sahipler ;) Her neyse, muhtemelen bu tanımda haklısın. MQ bu noktada kafa karışıklığı yaratmak için çok şey yaptı.
MT5, gerçekten mi? Ama MQL5 sadece MT5 değil, en azından ben hep öyle anladım, çünkü MT4 MQL5 derleyicisini kullanıyor. Ama aslında bunu bilmiyordum, ağırlıklı olarak MT4 kullanıyorum. Neyse, kısıtlama hakkında bilgi için teşekkürler.