Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Forum üyelerinin desteği olmadan bu MQ duvarının yıkılamayacağını hissediyorum. Kod kısa, profesyoneller hızlı hareket etmeli. Orada kusur yok. Pozisyonlar aracılığıyla fiyatların Piyasa İzleme'den çok daha hızlı elde edildiği açıkça gösterilmektedir. MQ bariz olanı nasıl görmüyor - anlamıyorum.
1. Testiniz, duruma bağlı olarak yinelemelerin yüzdesinin mikro kısmını gerçekten hesaba katar.
Aslında, yalnızca işlemci görevlerle aşırı yüklendiğinde ve bu görevin yürütülmesini uzak rafa ertelediğinde anormallikleri sayarsınız, çünkü. yinelemelerin %99'undan fazlası 1 mikrosaniyeden daha kısa sürede gerçekleştirilir.
Ve koşulu> 0 olarak ayarlasanız bile, yine de nesnellik yoktur.
2. Bu tür hızlı işlemlerin zamanının ölçümü, bir yinelemenin değil, yalnızca tam bir döngünün zamanı olarak yapılmalıdır.
3. Ama örneğinizdeki döngü 10 saniye ile sınırlı olduğu için (Neden! Tikler için 0.1 saniye yeterli bence. Sonuçta bir saniyede 3 tıklama gelmesi ve üç tıklamanın da işlenmesi oldukça olasıdır. 10 saniye boyunca ve paralel olarak), sonra zamanlamaya gerek yoktur. Ve belirli bir zamanda kaç yinelemenin gerçekleştirileceğini hesaplamak daha kolaydır. Daha fazla, daha fazla performans.
Kodunuzu "biraz" değiştirdim. Benim versiyonumun gerçeği daha çok yansıttığını düşünüyorum.
Hesaplama, iki seçeneği karıştırmamak için sırayla yapılır. SYMBOL_BID için çift keneler, GetBid() için tek keneler.
Toplamlar ve bunların türetilmesi, her ihtimale karşı derleyiciyi optimizasyona karşı kandırma girişimi olarak eklendi.
Çıktı kümülatiftir.
benim sonucum:
Görüldüğü gibi performans farkı standart versiyondan üç kat daha fazla.
Görüldüğü gibi performans farkı standart versiyondan üç kat daha fazla.fxsaber'ın orijinal sürümü GetBid'in avantajını mı gösteriyor yoksa daha güçlü/daha az yüklü bir bilgisayar mı?
fxsaber'ın orijinal sürümü GetBid'in avantajını mı gösteriyor yoksa daha güçlü/daha az yüklü bir bilgisayar mı?
Onun versiyonu ayrıca GetBid'in tam CPU yükünde avantajını gösterdi. Ama aynı zamanda, benim versiyonum aynı yükle standart fonksiyonun üç kat avantajını gösteriyor.
Bunun nedeni, sürümümün Teklif fiyatını elde etmek için yapılan tüm yinelemelerin ortalama süresini hesaba katması ve bu, anormal bir takılmaya sahip yalnızca küçük bir kısım olmasıdır.
İşlemcinin hangi nedenle onun için zor bir "dakikada" olduğunu kim bilebilir, standart fonksiyona tam olarak puan verir (gecikme 100 µ'den fazla olduğunda). Ama yine de, normal işlev için ortalama süre üç kat daha azdır.
Örneğin, if (Interval##A > 100) ile aşağıdaki resme sahibim:
(Aralık##A > 0) ise, Teklif fiyatını elde etmek için standart ve alternatif seçenekler arasındaki anormal gecikmelerin rastgele dağılımını gösteren, zaten tamamen farklıdır.
aynı CPU yükündeki testim şunları gösterirken:
Bu nedenle fxsaber test versiyonunun objektif olmaktan uzak olduğunu düşünüyorum.
İşlemci aracılarla değil, bu komut dosyasıyla yüklendi. Daha verimli çalıştı.
hesaplamalara dahil edilen yinelemelerin yüzdesini görsel olarak göstermek için fxsaber testini biraz değiştirdikten sonra:
onlar. yaklaşık %0.01
yine de olurdu.
SymbolInfoDouble(_Symbol, SYMBOL_BID ) öğesinin ortalama yürütme süresi yaklaşık 50 nanosaniye ise, yalnızca yürütme süresi 100.000 nanosaniyeden fazla olanlar sayılır.
hesaplamalara dahil edilen yinelemelerin yüzdesini görsel olarak göstermek için fxsaber testini biraz değiştirdikten sonra:
onlar. yaklaşık %0.01
yine de olurdu.
SymbolInfoDouble(_Symbol, SYMBOL_BID ) öğesinin ortalama yürütme süresi yaklaşık 50 nanosaniye ise, yalnızca yürütme süresi 100.000 nanosaniyeden fazla olanlar sayılır.
Koşul 100 μs'den fazla değil, 3 μs'den fazla yapılabilir. Sonuç görünüşe göre aynıydı. Buradaki fikir, segmental bir çalışmanın ve farklı yürütme koşullarında, farklı segmentlerde ve farklı alanlarda tam tersi bir fark olabileceğiydi. Yürütme öncelikleri genellikle bir şeye bağlı olarak yapılır. Hafif bir yükle, bazı öncelikler, ağır bir yük ile diğerleri, kritik olanlarla, bilgisayarın donmasına ve çökmesine izin vermeyenler ve performans arka planda kaybolur.
Genel olarak, demirin %70'inden fazlasını yüklerken ticaret yapmak doğru değildir. Neredeyse kritik bir infaz. Savaş danışmanlarına demir yüklemesi% 60'tan fazla olmamalıdır.
HFT brokerleriniz var mı?)
Piyasa saatinde bir sembol olduğunda ve onlarca sembol olduğunda SymbolInfoTick'i test etmeyi deneyin, ancak bir enstrüman talep edin - örneğiniz gibi
sunucudan sıkıştırılmış trafiğin gelme olasılığı yüksektir ve veriler paketten çıkarıldığında bu periyodik SymbolInfoTick frenleri görünür
onlar. çok sayıda karakter olduğunda, test süresinde daha sık veya derin düşüşler olacaktır.
Son sürümlerde, bir kene akışı almanın teorik olarak bile bir etkisi yoktur. Pratikte, SymbolInfoTick zaten önbellekle çalışıyor , ancak bireysel vatandaşlar kara kedi aramaya devam ediyor.
Ve testte %80 bile yok. 4 çekirdek üzerinde 6 ajan var, yani. %100 garantilidir.
Tek soru, sisteminin görev zamanlayıcısının bu durumla nasıl başa çıktığıdır. Aynı zamanda, suçlanacak olanın terminalin uygulanması olduğu yönünde açıklamalar yapılıyor.
Onlar. bilgisayar ölçüsüzce yüklendiğinde, kelimenin tam anlamıyla her şey yavaşladığında yapay olarak bir durum yaratılır ve ardından "ah, bak, neden terminalin bazen orada geciktiği" tarzında ifadeler yapılır.
Gözlerimizi kapatalım, bu koşullarda bile "yaklaşık %0,01" - ayrıntıların canı cehenneme! "Hastanedeki ortalama sıcaklık kimseyi rahatsız etmiyor", "gecikmeler ticaret sırasında sorun yaratıyor" ve "HFT istiyoruz" demeniz yeterli.
Ayrıca, elbette, HFT'nin eski bir ofis masaüstünde veya ölü bir sanal makinede 20 uzmanın içinde olmasını istiyoruz.
Uygulamasında PS PositionSelectByTicket(), erişim senkronizasyonu ile koşulsuz olarak paylaşılan bir kaynağa erişime sahiptir. Ve her aramada pozisyonu seçmezseniz, eski fiyatı okuyorsunuz. SymbolInfoDouble aracılığıyla bir "anlık görüntü" yapmak daha kolaydı.