MG4 komut dosyalarını ve Uzman Danışmanları destekleyen test cihazı - sayfa 10

 
Renat :

Öyle demedim.

Bu konuya hiç dokunmadım ve katılmayı da düşünmüyorum.

Görünüşe göre düşündüm:

Renat :

Ancak entegre zararı durdur ve kârı al aslında sanaldır ve zamanı geldiğinde piyasa tarafından uygulanmak üzere atılır. Bu çözümün iyi bir yanı var - GO'dan tasarruf sağlıyor (garanti sağlama, marj).

Soru yukarıya eklendi.
 
Renat :

Yeni veri erişim özelliklerinin ne yaptığını ve nedenini düşünün.

MetaTrader 4 sınırlı bir geçmiş derinliğine, ayrı zaman dilimlerine ve Açık/Yüksek/Düşük/Kapalı/Zaman[xxx] aracılığıyla sembolünüzün çubuklarına doğrudan erişime sahiptir. Bu tür doğrudan erişimin uygulanması, kaynaklar ve CPU yükü açısından çok pahalıdır. Diğer Uzman Danışmanlar ve terminalin kendisiyle çelişmemek için her bir Uzman Danışmanın bu verilerin kendi yerel kopyasına sahip olduğunu düşünün.

Sembol sayısındaki artışla (örneğin, MT5'te 5.000-10.000 enstrümana sahip olabilirsiniz) ve tüm zaman dilimlerinin temeli olarak derin bir dakika geçmişi kullanıldığında, MT4'ün yöntemlerini kullanmak temelde imkansızdır. Yeterli RAM yok ve büyük parçaları kopyalamak bile performansı düşürür. Bu nedenle, MT5'te artık her uzman için grafiğin gizli ve pahalı bir kopyasının otomatik bakımı yoktur.

Bunun yerine, geliştiricinin mevcut grafiğin tamamını değil, yerel diziye ihtiyaç duyduğu kadar veriyi doğru bir şekilde talep ettiği çok ekonomik CopyXXX işlevlerine geçtik. Ardından yerel verilerle mümkün olan en hızlı çalışma gelir (eskisinin yerine, Açık/Yüksek/Düşük/Kapalı/Zaman[xxx] oldukça pahalıdır), ayrıca yazar bu verileri önbelleğe alabilir ve bir dahaki sefere çağrıldığında idareli kullanabilir . Bellek ve CPU'daki tasarruflar çok büyük. Ek olarak, platformun kendisi büyük veritabanlarını yönetme işini serbest bırakır - bunlara erişim her zaman istek üzerinedir (kontrolsüz doğrudan yerine) ve bu, önbellekleri esnek bir şekilde yönetmenize olanak tanır.

MQL4'te Açık/Yüksek/Düşük/Kapalı/Zamana[xxx] erişim kolaylığının yalnızca geçerli simge ve zaman çerçevesiyle ilgili olduğunu ve diğer tüm simgeler ve zaman çerçevelerinin diğer tüm verilerinin iClose/iLow( ...) ciddi frenler veren fonksiyonlar. MQL5'te CopyXXX işlevlerinin birleşik modeline geçiş, durumu kökten iyileştirdi ve geliştiricilerin gerekli veri parçalarını tek bir istekle almalarını ve birden fazla engelleme çağrısı yapmamasını sağladı (her bir iClose çağrısında engellemeyi düşünün).

...

CopyXXX'in performansı nasıl?

Bellek tasarrufu açısından - soru yok. Ancak CopyXXX'i her tikte çağırmak, bir dizi alıntıyı arabelleğe bir kez kopyalamaktan ve buna Rates[X] türünün doğrudan bir dizini ile erişmekten çok daha pahalıdır. Klasik programlama ikilemi ortaya çıkıyor: "Bellek tasarrufu ve CPU zaman tasarrufu".

 
lob32371 :

MT5'ten daha az değil. Ve şimdi aynı soruyu kendinize yöneltin, sadece dördü beşle değiştirin.

Git bir PAZAR'ın ne olduğunu öğren! Tüccar, bilirsin...

Onlar. Örneğin, MT4'ün yayılma geçmişini saklayabileceğini veya gerçek hacimler hakkında (herhangi bir koltuk değneği ve diğer tamamen yetersiz çözümler olmadan) "bildiğini" mi söylüyorsunuz?

Farkın gerçek piyasada sabit olmadığı konusunda hemfikir misiniz? Gidip Expert Advisor'ı MT4 test cihazında değişen bir dağılıma sahip teklifler üzerinde test edin, sonra konuşalım.

 
RickD :

Karmaşık mantığa sahip uzmanların gelişimi için tüm dünya müşterilerin çıkarları kadar beni rahatsız etmiyor. ;)

Bir uzlaşma çözümü, sanal siparişleri MT5 düzeyinde düzenlemek olabilir. O zaman birileri için gerekli olan ağ ve emirlerle çalışmanın eski mantığı olurdu.

Böyle bir "görselleştirme"nin risklerini üstlenecek misiniz?

MT5'te, yüksek derecede korelasyona sahip farklı enstrümanlar üzerinde işlemler kullanarak riskten korunma nedeniyle çözümü uzun süre kullanmak isteyen herkes.

Evet, bu marj MT4'ten çok daha fazlasını gerektirebilir, ancak sağduyu açısından bu doğrudur.

Tabii ki, bu durumda kimse "sanal" planı iptal etmedi.

 
Interesting :

Onlar. Örneğin, MT4'ün yayılma geçmişini saklayabileceğini veya gerçek hacimler hakkında (herhangi bir koltuk değneği ve diğer tamamen yetersiz çözümler olmadan) "bildiğini" mi söylüyorsunuz?

Farkın gerçek piyasada sabit olmadığı konusunda hemfikir misiniz? Gidip Expert Advisor'ı MT4 test cihazında değişen bir dağılıma sahip teklifler üzerinde test edin, sonra konuşalım.

Seninle benim aramda aşılmaz bir uçurum var. Sadece zaman kaybı, iyi şanslar!
 
Interesting :

Böyle bir "görselleştirme"nin risklerini üstlenecek misiniz?

MT5'te, yüksek derecede korelasyona sahip farklı enstrümanlar üzerinde işlemler kullanarak riskten korunma nedeniyle çözümü uzun süre kullanmak isteyen herkes.

Tanrıya şükür, hala MT4 var. :) Onu istiyorsun - tek bir enstrümanda. İstediğiniz - farklı.

Riskleri nerede görüyorsunuz?

 
C-4 :

CopyXXX'in performansı nasıl?

Bellek tasarrufu açısından - soru yok. Ancak CopyXXX'i her tikte çağırmak, bir dizi alıntıyı arabelleğe bir kez kopyalamaktan ve buna Rates[X] türünün doğrudan bir dizini ile erişmekten çok daha pahalıdır. Klasik programlama ikilemi ortaya çıkıyor: "Bellek tasarrufu ve CPU zaman tasarrufu".

CopyXXX, iClose/iOpen/iXXXX işlevleriyle aynı hıza sahiptir. CopyXXX bir küme döndürür ve bu nedenle daha verimli ve performanslıdır .

Muhtemelen MT4'te yerel grafiğin _all_ geçmişinin , tick işleyicisinin her başlatılmasından önce EA'nın yerel (önbellek) pazar ortamına zorla kopyalandığını dikkate almıyorsunuz. Bu bilgiyi ekonomik olarak güncelleme yöntemimiz olmasına rağmen bu çok pahalı. MQL4'ten gelen RefreshRates özel işlevi, yerel grafiğin önbelleklerinin ve geçmişinin zorunlu olarak güncellenmesine neden olur.

CopyXXX'i çağırmak çok daha verimlidir ve geliştiriciler, önceden istenen verileri önbelleğe almak için çok doğru ve doğru bir mekanizmaya sahiptir. Örneğin, derin geçmişi her tıklamada yeniden talep etmeniz gerekmez, ancak yerel olarak depolayın/ekleyin ve ona en hızlı erişimi elde edin.

Eski "doğrudan" (aslında, doğrudan erişim yoktur) erişim Açık/Yüksek/Düşük/Kapalı yöntemlerini karşılaştırırsak ve double local[xxxx] yerel dizisiyle çalışırsak, ikincisi çok daha hızlıdır. Bu nedenle, yerel olarak kendinize kopyalamak ve ardından tekrar tekrar istenen verilere hızlı yerel erişime sahip olmak daha iyidir.

 
RickD :

Tanrıya şükür, hala MT4 var. :) Onu istiyorsun - tek bir enstrümanda. İstediğiniz - farklı.

Riskleri nerede görüyorsunuz?

"Ticaret platformları" geliştirirken/kullanırken, nihayetinde birinin üstlendiği belirli maliyetler ve riskler vardır.

Diğer geliştiricilerin yazılımlarında "sanallaştırma" konusuna gelince

Her şey kendisi için kullanılıyorsa ve çözümü uygulayan insanlar ne yaptıklarını anlıyorsa bu iyi bir şeydir.

Ana maliyetler şunlar olacaktır: sistemin geliştirilmesine harcanan fonlar, sistemin performansını sürdürmek için harcanan fonlar ve proje için harcanan zaman.

Ana riskler: Uygulanabilir bir projenin uygulanması için çok fazla zaman veya para harcanacak (proje karşılığını almayacak), proje diğer çözümlere kıyasla etkili olmayacak, kodda veya algoritmalarda gizli hatalar yapılacak. projenin uygulanması.

Evet, bankalar ve diğer piyasa oyuncuları, gerekli işlevselliğe sahip yazılımlarını geliştirmeye başvururlar, ancak aynı zamanda çok fazla zaman ve kaynak harcarlar. Bunu yaparken tüm riskleri alıyorlar.

MT5'te çalışmaya gelince (MT5 kullanan çeşitli seçenekler)

Burada elbette işin çoğunu MQ yaptı, ancak aynı zamanda işlevsellik üzerinde belirli kısıtlamalar getirdi.

Ana maliyetler şunlar olacaktır: sistemin performansını sürdürmek için harcanan fonlar ve proje için harcanan zaman.

Ana riskler: proje diğer çözümlere kıyasla etkili olmayacak, projenin uygulanması sırasında kodda veya algoritmalarda gizli hatalar yapılacak, tüm sistemin performansını sürekli olarak izlemeniz gerekecek (sorunlardan koruyun) yazılım ve donanım; iletişim kalitesini, güç kaynağını, veri güvenliğini vb. izleyin).

Burada elbette belirli kısıtlamalar ve çekinceler ile ticari kullanım (başkalarına kullanım imkanı sağlayarak) düşünebilirsiniz.
 
Vinin :
bir göz atmak isterim
Basit programlar yazarken OOP kullanmanın basitliği ve rahatlığının özellikle görünür olduğu bir örnek .
 
lob32371 :
Basit programlar yazarken OOP kullanmanın basitliği ve rahatlığının özellikle görünür olduğu bir örnek .
Bu bir gösterge değil