![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
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
"Her tik" ile ilgili satır, artık olmamasının nedeni olabilir.
İşlev yalnızca yeni bir çubuk göründüğünde yürütülür. Bu nedenle, büyük olasılıkla, bir çubuğun yalnızca ilk işareti bir ticaret gerçekleştirebilir. İlk çubuktan sonra, kod yeni çubuk görünene kadar bir 'dönüş' olur. Belki bu benim için çözdü.
Sanırım bu kod parçası makalelerden:
Elbette. Demek istediğim "neden görebiliyordu...". Buradaki nokta, kodunuzda bu 2 işlemi neden aldığınızı açıklayabilecek hiçbir şey olmamasıdır.
Bu sorunun arkasındaki nedeni bulmanın çok önemli olduğunu düşünüyorum, tabii ki biz neler olduğunu tam olarak anlayana kadar bir geçici çözüme (Uyku?) sahip olmak da önemlidir. Bu yüzden durumu devam ettirmeye çalışıyorum:
* CTrade sınıfından PositionOpen yöntemini kullanırken, aynı anda en az 3 kullanıcı, 1 yerine aynı yönde 2 işlem aldı ve beklenenden iki kat daha fazla hacme sahip bir pozisyona neden oldu.
Her iki yöntemi de kullanıyorum, yeni pozisyon = "eski moda yol" açmak, stoploss = "CTrade sınıfını" değiştirmek.
* Bu sorun, Depth of Market'in etkinleştirildiği bir sembolle aynı broker üzerinde ortaya çıkıyor gibi görünüyor (ilgili kişiler bunu onaylayabilir mi lütfen).
Evet, X komisyoncusunun sunucusu, Pazar Derinliği etkinleştirildi.
* Bu sorun senkron sıralamada oluşuyor, asenkron sıralama kullanılmadı (lütfen onaylayın).
Evet, asenkron sipariş kullanılmadı.
* Sorun rastgele oluşur.
Evet, ancak yalnızca yoğun piyasa saatlerinde ( makro ekonomik olaylar).
Bana göre bu sorun kolayca çözülebilir.
EA, "PositionSelect(Symbol())" işlevi kullanılıyorsa ve terminal, kodun yürütülmesine devam etmeden önce işlevin verilerini güncellediyse, her zaman bir yanıt/cevap beklemelidir.
"OrderSend(mrequest,mresult)" işlevi kullanılıyorsa ve terminal, kodun yürütülmesine devam etmeden önce işlevin verilerini güncellediyse, EA her zaman bir yanıt/yanıt beklemelidir.
Terminalin kendisinden de bahsediyorum çünkü fonksiyonun verileri terminale kopyalanacak ve bu da biraz zaman alacak.
Bu şekilde, mevcut konum boyutu her zaman doğru bir şekilde hesaplanacak, böylece çift sıra artık gerçekleşmeyecek .
Ne düşünüyorsun?
Bana göre bu sorun kolayca çözülebilir.
EA, "PositionSelect(Symbol())" işlevi kullanılıyorsa ve terminal, kodun yürütülmesine devam etmeden önce işlevin verilerini güncellediyse, her zaman bir yanıt/cevap beklemelidir.
"OrderSend(mrequest,mresult)" işlevi kullanılıyorsa ve terminal, kodun yürütülmesine devam etmeden önce işlevin verilerini güncellediyse, EA her zaman bir yanıt/yanıt beklemelidir.
Terminalin kendisinden de bahsediyorum çünkü fonksiyonun verileri terminale kopyalanacak ve bu da biraz zaman alacak.
Bu şekilde, mevcut konum boyutu her zaman doğru bir şekilde hesaplanacak, böylece çift sıra artık gerçekleşmeyecek .
Ne düşünüyorsun?
"Her zaman bir yanıt bekle..." ile ne demek istediğinizden emin değil misiniz?
Her neyse, tavsiye istemek için ServiceDesk'e bir talepte bulundum. Göreceğiz.
"Her zaman bir yanıt bekle..." ile ne demek istediğinizden emin değil misiniz?
Her neyse, tavsiye istemek için ServiceDesk'e bir talepte bulundum. Göreceğiz.
"Her zaman bir yanıt bekle..." derken ne demek istediğinden emin değil misin?
EA, PositionSelect(Symbol()) işlevi bir konumla ilgili verileri program ortamına kopyalamayı tamamlayana kadar beklemeli/durmalıdır.
Bunu zorunlu bir uyku() işlevi olarak görün.
"Her zaman bir yanıt bekle..." derken ne demek istediğinden emin değil misin?
EA, PositionSelect(Symbol()) işlevi bir konumla ilgili verileri program ortamına kopyalamayı tamamlayana kadar beklemeli/durmalıdır.
Bunu zorunlu bir uyku() işlevi olarak görün.