Bilgisayarın yerel saati ile yeni kene time_msc (az önce alınan) arasındaki maksimum farkı gösteren küçük bir Uzman Danışman yazdı.
Yani, kabaca konuşursak, TimeLocal()'ı yalnızca son Tick.teme_msc tikinin zamanına göre milisaniye cinsinden ölçmeye başladım. Onay, SymbolInfoTick kullanılarak alındı.
Özellikle rahatsız etmedi. Piyasaya genel bakışta 24 sembol. 1 milisaniyelik bir arama periyodu ile OnTimer() aracılığıyla. Tüm sembolleri SymbolInfoTick aracılığıyla sorgularım. Kene yeniyse ölçü alırım.
Danışman akşam başladı. Sonuçlar burada:
Yeni keneler yakalandı 46800
Yerel bilgisayar saati ile onay süresi arasındaki minimum süre -7048 milisaniye (eksi)
Yerel bilgisayar saati ile onay süresi arasındaki ortalama süre -6819 milisaniye (eksi)
Yerel bilgisayar saati ile onay süresi arasındaki maksimum süre 97082 milisaniye (artı)
Nasıl başa çıkılır bununla?
kodunuza baktım...
Her şeyi doğru yapmıyorsun.
Piyasa İzleme'ye en likit enstrümanları eklemeniz gerekir.
Ardından bu aletlerin bardaklarını ekleyin.
Ve OnBookEvent() tetiklendiğinde, 1 tik (son) kopyalayın, zaman olacak ve hemen yerel saati alıp karşılaştırın.
Genel olarak, neden yerel saati tik saati ile karşılaştırmanız gerekiyor?
Ticaret yapmanın mümkün olup olmadığını bilmeniz gerekiyorsa, işte size bir fonksiyon
//+------------------------------------------------------------------+ //| Expert Check Market Time function | //+------------------------------------------------------------------+ bool CheckMarketTime() { MqlDateTime cur_time, sv_time; cur_time.year = 0 ; TimeTradeServer (cur_time); //Возвращает расчетное текущее время торгового сервера. if (cur_time.year > 0 ) { sv_time.year = 0 ; TimeCurrent (sv_time); //Возвращает последнее известное время сервера if (sv_time.year > 0 ) { // if((cur_time.day_of_week == int(FirstDay)) || // (cur_time.day_of_week == int(SecondDay))) return(false); //Проверка на выходные if (cur_time.day_of_week == sv_time.day_of_week) { ulong tr_time = sv_time.hour * 3600 + sv_time.min * 60 + sv_time.sec; if (((tr_time >= time_st_mon) && (tr_time < 50370 )) || //10:00:01 - 13:59:30 ((tr_time >= time_st_day) && (tr_time < 67470 )) || //14:05:01 - 19:44:30 ((tr_time >= time_st_evn) && (tr_time < 85770 ))) //19:05:01 - 23:49:30 { return ( true ); } } } } return ( false ); }
Kene alaka düzeyi konusunda, yorumlarla birlikte bu göstergeye bakın.
- www.mql5.com
kodunuza baktım...
Her şeyi doğru yapmıyorsun.
Piyasa İzleme'ye en likit enstrümanları eklemeniz gerekir.
Ardından bu aletlerin bardaklarını ekleyin.
Ve OnBookEvent() tetiklendiğinde, 1 tik (son) kopyalayın, zaman olacak ve hemen yerel saati alıp karşılaştırın.
Genel olarak, neden yerel saati tik saati ile karşılaştırmanız gerekiyor?
Neden her şeyi camdan yapıyoruz? Sadece kodun daha iyi görünmesi için mi? Piyasa saatinde bir sembolüm varsa, bu, sürekli senkronizasyon olduğu ve sembol için son 4096 kene doğrudan önbellekten (yani anında) bana ulaşabileceği anlamına gelmez mi? Her durumda, fikrinizin test edilmesi gerekiyor. Anlamadığım tek şey, sipariş defterini değiştirerek bir tik hesaplamak için "1 tik (son) kopyala" ne anlama geliyor?
Genel olarak, neden yerel saati tik saati ile karşılaştırmanız gerekiyor?
Dünkü fiyatlarla alım satım kararları vermek iyi bir fikir değil. Dün 100'de SBER, algoritma açısından satın almak iyi bir fikir olabilir, ancak bugün 80'de satılmalıdır.
Neden her şeyi camdan yapıyoruz? Sadece kodun daha iyi görünmesi için mi? Piyasa saatinde bir sembolüm varsa, bu sürekli senkronizasyon olduğu ve sembol için son 4096 kene doğrudan önbellekten (yani anında) bana ulaşabileceği anlamına gelmez mi? Her durumda, fikrinizin test edilmesi gerekiyor. Anlamadığım tek şey, sipariş defterini değiştirerek bir tik hesaplamak için "1 tik (son) kopyala" ne anlama geliyor?
Genel olarak, neden yerel saati tik saati ile karşılaştırmanız gerekiyor?
Dünkü fiyatlarla alım satım kararları vermek iyi bir fikir değil. Dün 100'de SBER, algoritma açısından satın almak iyi bir fikir olabilir, ancak bugün 80'de satılmalıdır.
Her şeyi kendin biliyorsan neden soru soruyorsun?
Uygun gördüğünüz gibi yapın.
Her şeyi kendin biliyorsan neden soru soruyorsun?
Uygun gördüğünüz gibi yapın.
Tüm ciddiyetimle soruyorum. MQL'de programlama yaparken, terminalin verdiği bilgiye değil, yardıma güvenmenin imkansız olduğunu anladım. Bütün bunlar düşünce için yiyecekten başka bir şey değil. Sipariş defterinin SymbolInfoTick'ten daha erken (daha kararlı) bilgi vermesi mümkündür.
Bu arada, işte bir buçuk dakikalık gecikmeyle gelen kene:
Yeni MAX farkı 97082 SBPR-3.19 Yerel saat 2019.03.15 21:05:31.842 Kene saati 2019.03.15 21:03:54.760
O anda kene tarihinde suç olan hiçbir şey yoktu. Dakikada iki kene.
Tüm ciddiyetimle soruyorum. MQL'de programlama yaparken, terminalin verdiği bilgiye değil, yardıma güvenmenin imkansız olduğunu anladım. Bütün bunlar düşünce için yiyecekten başka bir şey değil. Sipariş defterinin SymbolInfoTick'ten daha erken (daha kararlı) bilgi vermesi mümkündür.
Bu arada, işte bir buçuk dakikalık gecikmeyle gelen kene:
Yeni MAX farkı 97082 SBPR-3.19 Yerel saat 2019.03.15 21:05:31.842 Kene saati 2019.03.15 21:03:54.760
O anda kene tarihinde suç olan hiçbir şey yoktu. Dakikada iki kene.
İşin özünü kesinlikle anlamıyorsunuz!
Yerel saatinizi önemsemeyin.
TİCARET sunucusunun saatini anlamak önemlidir!
İşlem seansları vardır, bu süre zarfında işlem yapabilirsiniz.
Ticaret zamanı yerel saatinize göre belirlenir,
ve ticaret sunucusu zamanı.
İşin özünü kesinlikle anlamıyorsunuz!
Yerel saatinizi önemsemeyin.
TİCARET sunucusunun saatini anlamak önemlidir!
İşlem seansları vardır, bu süre zarfında işlem yapabilirsiniz.
Ticaret zamanı yerel saatinize göre belirlenir,
ve ticaret sunucusu zamanı.
Muhtemelen sorunun özünü yetersiz açıkladım. fxsaber , anladım çünkü gecikmeden yeni keneler almanın önemini anlıyor ve koduma benzer bir şey yapan ancak grafik biçiminde göstergesine bir bağlantı verdi. Temanın değişim zamanı ile ilgisi yoktur.
Parmaklarda açıklamaya çalışacağım.
Yerel saatle 16:39.59.999'da Uzman Danışman, Piyasa İzleme'deki her bir sembol için ilk kez son işareti alır ve hatırlar.
16:40.00.000'de, her bir sembol için son tik tekrar sorgulanır. Bazıları için yeni keneler alıyoruz.
En yeni keneler zamanla ( time_msc ) 16:39.59.000 civarındadır. Ama biri 16:38.30.335 ile geldi.
Yani, 16:39.59.999'da (yerel saat) bu kene orada değildi ve bir milisaniyeden sonra aniden ortaya çıktı ve hatta modern 16:38:30, ancak genellikle keneler zamanla sadece bir farkla farklılık gösterir. ikinci.
Bu tür kenelerden sonra iyi düşünceler ortaya çıkmaz. Gerçek ticarette düşük likit bir sembolden son onay işaretini istediğimizi varsayalım. Kene zamanını alın (time_msc)
yerel olandan iki dakika farklıdır. Birinin 90, 60 veya 30 saniye önce meydana gelen keneyi zaten bildiği, ancak danışmanımızın bunu bilmediği ve bunun için örneğin bir limit emri vurarak cezalandırılabileceği varsayımları hemen ortaya çıkıyor.
Bu sorunla mücadele edilmesi gerekiyor.
Muhtemelen sorunun özünü yetersiz açıkladım. fxsaber , anladım çünkü gecikmeden yeni keneler almanın önemini anlıyor ve koduma benzer bir şey yapan ancak grafik biçiminde göstergesine bir bağlantı verdi. Temanın değişim zamanı ile ilgisi yoktur.
Parmaklarda açıklamaya çalışacağım.
Yerel saatle 16:39.59.999'da Uzman Danışman, Piyasa İzleme'deki her bir sembol için ilk kez son işareti alır ve hatırlar.
16:40.00.000'de, her bir sembol için son tik tekrar sorgulanır. Bazıları için yeni keneler alıyoruz.
Çoğu yeni keneler zamanla ( time_msc ) 16:39.59.000 civarındadır. Ama biri 16:38.30.335 ile geldi.
Yani, 16:39.59.999'da (yerel saat) bu kene orada değildi ve bir milisaniyeden sonra aniden ortaya çıktı ve hatta modern 16:38:30, ancak genellikle keneler zamanla sadece bir farkla farklılık gösterir. ikinci.
Bu tür kenelerden sonra iyi düşünceler ortaya çıkmaz. Diyelim ki gerçek ticarette düşük likit bir sembolden son onay işareti istiyoruz. Kene zamanını alın (time_msc)
yerel olandan iki dakika farklıdır. Birinin 90, 60 veya 30 saniye önce meydana gelen keneyi zaten bildiği, ancak danışmanımızın bunu bilmediği ve bunun için örneğin bir limit emri vurarak cezalandırılabileceği varsayımları hemen ortaya çıkıyor.
Bu sorunla mücadele edilmesi gerekiyor.
Hiçbir şeyle "kavga etmenize" gerek yok, ancak kenelerin terminale nasıl geldiğini ve doğru bir şekilde anlamanız gerekiyor.
onları işleyin!
- www.mql5.com
Hiçbir şeyle "kavga etmenize" gerek yok, ancak kenelerin terminale nasıl geldiğini ve doğru bir şekilde anlamanız gerekiyor.
onları işleyin!
Sonunda bu bilgiyi paylaşabilir misin? Yönteminiz sayesinde yeni kene olayını daha erken alsanız bile, bana olta değil balık verdiğiniz ortaya çıkıyor, yani bunun neden olduğunu açıklamıyorsunuz.
Yönteminizin benimkinden daha hızlı olduğuna dair güveni nereden aldınız? Belgelerde bir şey mi eksik? Belki de, cama abone olarak, terminalin yeni keneleri daha isteyerek verdiğini deneysel olarak belirlediniz mi?
Bu Expert Advisor'da benim yenilerini yakalama yöntemimden sizinkine geçiş yapıyorum.
Sonunda bu bilgiyi paylaşabilir misin? Yönteminiz sayesinde yeni kene olayını daha erken alsanız bile, bana olta değil balık verdiğiniz ortaya çıkıyor, yani bunun neden olduğunu açıklamıyorsunuz.
Yönteminizin benimkinden daha hızlı olduğuna dair güveni nereden aldınız? Belgelerde bir şey mi eksik? Belki de, cama abone olarak, terminalin yeni keneleri daha isteyerek verdiğini deneysel olarak belirlediniz mi?
Bu Expert Advisor'da benim yenilerini yakalama yöntemimden sizinkine geçiş yapıyorum.
Yorumları olan bir kaynak kodu var.
Bakmak için çok tembel misin? Ya da bir şey net değil mi?
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Bilgisayarın yerel saati ile yeni kene time_msc (az önce alınan) arasındaki maksimum farkı gösteren küçük bir Uzman Danışman yazdı.
Yani, kabaca konuşursak, TimeLocal()'ı yalnızca son Tick.teme_msc tikinin zamanına göre milisaniye cinsinden ölçmeye başladım. Onay, SymbolInfoTick kullanılarak alındı.
Özellikle rahatsız etmedi. Piyasaya genel bakışta 24 sembol. 1 milisaniyelik bir arama periyodu ile OnTimer() aracılığıyla. Tüm sembolleri SymbolInfoTick aracılığıyla sorgularım. Kene yeniyse ölçü alırım.
Danışman akşam başladı. Sonuçlar burada:
Yeni keneler yakalandı 46800
Yerel bilgisayar saati ile onay süresi arasındaki minimum süre -7048 milisaniye (eksi)
Yerel bilgisayar saati ile onay süresi arasındaki ortalama süre -6819 milisaniye (eksi)
Yerel bilgisayar saati ile onay süresi arasındaki maksimum süre 97082 milisaniye (artı)
Nasıl başa çıkılır bununla?