OrderSendAsync() işlevi - sayfa 8

 
TheXpert :
Çünkü bozuk paketler, iletişim kesintileri vb. saçmalık. Güvenilmez. Güvenilmez - kurtulmak zorundasın.

Her ihtimale karşı, alım satım işlemleri kuyruğunu tutacağımızı ve Uzman Danışmanlara ihraç edilmek üzere dağıtacağımızı size bildireceğim.

Yürütme sırasında iletişim kesintileri bir sorundur, bunların en iyi nasıl çözüleceği henüz net değildir. Her durumda, yeniden bağlantıdan sonra tüm açık pozisyonlar düzenli olarak kontrol edilebilir.

 
TheXpert :
Çünkü bozuk paketler, iletişim kesintileri vb. saçmalık. Güvenilmez. Güvenilmez - kurtulmak zorundasın.

Ayrı ayrı uçalım, pirzola ayrı.

bağlantı kesintileri, terminal için anormal bir durumdur ve geçmiş analizi de dahil olmak üzere istisnalarla ele alınmalıdır.

Ancak her bir Ticarette geçmişi ayrıştırmak çok pahalı. Ticaretin gelişi düzenli bir durumdur ve düşük maliyetle ele alınmalıdır.

 
Urain :
Bildiğin gibi yap, hiçbir yerde kimseyi kışkırtmıyorum.
 
TheXpert :
Merhaba. Vkurse genel olarak eşzamansızlık nedir?

Anladığım kadarıyla, çok para birimli Uzman Danışmanlar için böyle bir işlev getirerek (tek para birimi Uzman Danışmanlar için girişim anlamını yitiriyor), tek amaç, siparişin yürütülmesinde gecikme olmaması nedeniyle zamandan tasarruf etmektir. sunucu tarafı . Doğru değilse beni düzeltin.

Ek olarak, yalnızca bir kritik zaman aralığı kalır - bir veri paketinin iletişim kanalları üzerinden iletilmesi. "Belirsizlik sınırını" "attı (paket) ve koştu" düzeyine taşımaya çalışırken, faydadan çok sorununuz var. Sorunu bir bütün olarak değerlendirmek önemlidir. Olası bir zaman aşımı, eğer varsa, büyük olasılıkla yalnızca belirli bir enstrüman üzerinde işlem yapma yeteneğini değil, aynı zamanda ilke olarak sunucuyla iletişim eksikliğini de etkileyecektir.

Ayrıca, EA'dan nasıl değerlendirileceği belli değil: ticaret emri veri aktarımı sırasında mı kayboldu yoksa bu kadar uzun süre sunucuda sırasını mı bekliyor? Bu, alım satım emirlerinin çoğaltılmasıyla ilgili hataların olacağı ve bu da MM'nin ihlaline ve sonuç olarak risklerde artışa yol açacağı anlamına gelir. Benim düşünceme göre, herhangi bir profesyonel tüccar (danışman), ticaret emrinin sunucu tarafından yerine getirilmek üzere kabul edildiğinden emin olmalıdır. Ayrıca, belirli bir ticaret talebinin durumunu sonradan açık bir şekilde tanımlamak için ( OnTrade() işlevinde ), daha sonraki işlemlerin buna dayanması için sunucudan alınan bazı benzersiz değerler gerekir (işlemin gerçekleştiği ana kadar). yapılmış (bir pozisyon açma/kapama)).

OSI ağ modeline benzer. Bir ticaret emrinin yerine getirilmesinin kanalına veya fiziksel düzeyine girmeye gerek yoktur. İstemcinin (MT5) bu taşıma işlevini gerçekleştirmesine izin verin. Uygulama katmanında çalışın.

 
voix_kas :

sunucu tarafında sipariş yürütmede gecikme olmaması nedeniyle zaman tasarrufu. Doğru değilse beni düzeltin.

Sorgu sonuçları için bekleme eksikliği nedeniyle. Genel olarak, evet. Onlar. mevduat ve piyasa performansı için çok yararlı olabilir.

Ek olarak, yalnızca bir kritik zaman aralığı kalır - bir veri paketinin iletişim kanalları üzerinden iletilmesi. "Bilinmeyenlerin hududu"nu, "fırlatıp (paket) koşturmak" düzeyine taşımaya çalışmak, yarardan çok sorununuz olur.

Hayır. Sadece faydaları sorunlardan daha ağır bastığında kullanın.

Benim düşünceme göre, herhangi bir profesyonel tüccar (danışman), ticaret emrinin sunucu tarafından yerine getirilmek üzere kabul edildiğinden emin olmalıdır.

O zaman asenkron seçenek sizin için uygun değil. Her şey çözüldü.

 

TheXpert

Tekrar yapalım, parmaklarda. Kabaca yapı gecikmeleri:

1. Ticaret talebinin terminal tarafından ön kontrol edilmesi, gönderilecek pakete "paketlenmesi" ve "ağ kuyruğuna" yerleştirilmesi.

2. İstemciden sunucuya bir ticaret talebi içeren bir veri paketinin iletilme zamanı.

3. Sunucu tarafından bir ticaret talebinin alındığı ve bu biletin benzersiz tanımlayıcısının işlem havuzuna eklendiği ve istemciye gönderildiği zaman.

4. Bir ticaret emrinin doğruluğunu ve ticaret katına yerleştirmenin ön işleme zamanı.

Yanlış bir şey varsa, lütfen beni düzeltin. Anladığım kadarıyla ilk adım tamamlandıktan sonra beklemek istemiyorsunuz? İlk üçünün zorunlu mevcudiyetini savunuyorum.

Daha fazla tartışma için iki sorunun yanıtlanması gerekir:

1. Gecikmelerin orantılı oranı. Onlar. Ortalama olarak, yukarıdaki dört öğenin her birinin yüzde cinsinden ne kadar sürdüğünü. Dağılım, örneğin, "%0.5 -%1.0 -%1.0 -%97.5" ise, oyun muma değmez.

2. Zaman aşımı ve ticaret stratejisi üzerindeki etkisi. Dürüst olmak gerekirse, net bir anlayış gerektirmeyen tek bir TS söyleyemem: sipariş sunucuya gönderildi veya gönderilmedi. Bu hem uzun vadeli hem de çoklu para birimi arbitrajı için geçerlidir. Onlar. bir ticaret emrinin yerine getirilme garantisi sorgulanamaz. Katılmıyorsanız lütfen bir karşı örnek verin.

 
papaklass :
Bence, kesintide yürütme sorununu çözmenin en kolay yolu, bir yürütme kuyruğu oluşturmak (yürütmeyi iptal etmek) ve yeniden bağlanırken kullanıcıyı iptal hakkında bilgilendirmek değildir. Bu durumda, daha az ikili durum olacaktır.

Bir sunucu bileti iade etmeniz gerekiyor. Bu, siparişin sunucuya ulaşmasını ve işlenmek üzere kabul edilmesini sağlayacaktır.

Zor istemci tarafı bekleme havuzlarını yığmak tam olarak uygunsuz bir çözüm değil, ben buna MT5 istemci-sunucu mimarisinin tasarımında bir gaf diyebilirim.

 
voix_kas :

Zor istemci tarafı bekleme havuzlarını yığmak o kadar da uygunsuz değil.

Bu istendi. Mecbur değilsen kimse seni kullanmaya zorlamıyor.

voix_kas :

TheXpert

Tekrar yapalım, parmaklarda. Kabaca yapı gecikmeleri:

1. Ticaret talebinin terminal tarafından ön kontrol edilmesi, gönderilecek pakete "paketlenmesi" ve "ağ kuyruğuna" yerleştirilmesi.

2. İstemciden sunucuya bir ticaret talebi içeren bir veri paketinin iletilme zamanı.

3. Sunucu tarafından bir ticaret talebinin alındığı ve bu biletin benzersiz tanımlayıcısının işlem havuzuna eklendiği ve istemciye gönderildiği zaman.

4. Bir ticaret emrinin doğruluğunu ve ticaret katına yerleştirmenin ön işleme zamanı.

3 daha iyi bölünmüş

3.1 evreleme

3.2 kullanıcı kimliği gönderme

Yanlış bir şey varsa, lütfen beni düzeltin. Anladığım kadarıyla ilk adım tamamlandıktan sonra beklemek istemiyorsunuz?

Evet.

İlk üçünün zorunlu mevcudiyetini savunuyorum.

Peki ya ping yarım saniyeyse? Eşzamansızlığa tekme atın. Bu modu kullanmanın amacı ne?

 
TheXpert :
Bu istendi. Mecbur değilsen kimse seni kullanmaya zorlamıyor.

Hala soruma cevap vermedin. Farklı semboller için gönderilme hızları uğruna işlem emirlerinin yerine getirilme garantisinin ihmal edilebileceği durumlarda lütfen belirli bir örnek verebilir misiniz?

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 
voix_kas :

Hala soruma cevap vermedin. Farklı semboller için gönderilme hızları uğruna işlem emirlerinin yerine getirilme garantisinin ihmal edilebileceği durumlarda lütfen belirli bir örnek verebilir misiniz?

Soru değil - portföy ticareti + piyasa yürütme.