Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1220
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
Bir saniye, gerçek hayatta son anlaşmanın/siparişin sık sık kaybedilmesidir. Örneğin, birçok köprüde, bir emrin yürütülmesi beş saniyeye kadar sürebilen bir TTL süresi alır. Beş saniye içinde yerine getirilmezse - reddedin. Veya yerine getirildi, ancak üç saniye içinde.
Kabulden yürütmeye kadar hiçbir onay işareti olmasaydı , HistorySelect'e yapılan böyle bir çağrı bu konuda bilgi almaz.
Belki de TimeCurrent, MathMax'e (LastOrder_time, MarketWatch_Time) eşit olmalıdır. O zaman HistorySelect doğru olacaktır. Ancak TimeCurrent belki de çok pahalıdır.
ZY Bu arada, HistorySelect'in bu tür çalışma planı, müzayede tarihinin bir bölümünü geçecek.
Her ne kadar ilk bakışta her şey temiz olsa da.
MT5'te ucuz DealsTotal() yazmak kolay değildir. Bu, MT4'teki temel (ve ücretsiz) OrdersHistoryTotal() değildir.
yüksek sesle düşünerek, ilgili ve yetkin olduğumu iddia etmiyorum:
Kabulden yürütmeye kadar hiçbir onay işareti olmasaydı , HistorySelect'e yapılan böyle bir çağrı bu konuda bilgi almaz.
Bu sorunu çözmeyeceksiniz, sunucu-terminal-MQL etkileşim modeli orijinal olarak böyle ortaya çıktı.
MT5'te henüz kontrol anına ulaşmadım, ancak MT4'te, bir sembol üzerinde piyasaya genel bakış penceresinde sembolümüz için fiyatların değiştiği durumlar olduğunu biliyorum, ancak EA onay veya daha az onay alamayabilir
tamam, mesele bu değil, böyle çalışıyor, sadece TS'de bir çözüm seçmeniz gerekiyor, siparişin gönderildiği andan itibaren sunucudan bilgi gelmediğinde siparişe ne oluyor - yani. a priori, sipariş verilecek veya reddedilecek ve bu ön kararı onaylamak veya iptal etmek için bir yanıt aldıktan sonra - yani. onaylanmamış bilgilerle çalışın veya sunucudan yanıt gelmesini bekleyin - bu MQ tarafından sunulur ve büyük olasılıkla memnun kalmazsınız
MT5'te ucuz DealsTotal() yapmak kolay değildir. Bu, MT4'teki temel (ve ücretsiz) OrdersHistoryTotal() değildir.
yazma ;)
ya da daha doğrusu, büyük olasılıkla yaz ve EA kaynaklarını algoritmayı sürdürmek için harcayacaksın, bence SQLite'ın nasıl çalıştığını öğrenmen gerekiyor, belirtilen MQ performans testleri, büyük tablolar ve seçimlerle çalışmak sadece veritabanının amacı - EA kodu minimalist olacak, veritabanının tüm işleri sizin tarafınızdan yapılacak, tüm iş sipariş verirken verileri doldurmak ve sunucu yanıt verdiğinde güncellemek olacak (senkronizasyon, elbette, EA başlatıldığında, veritabanı bellekte)
yazma ;)
ya da daha doğrusu, büyük olasılıkla yaz ve EA kaynaklarını algoritmayı sürdürmek için harcayacaksın, bence SQLite'ın nasıl çalıştığını öğrenmen gerekiyor, belirtilen MQ performans testleri, büyük tablolar ve seçimlerle çalışmak sadece veritabanının amacı - EA kodu minimalist olacak, veritabanının tüm işleri sizin tarafınızdan yapılacak, tüm iş sipariş verirken verileri doldurmak ve sunucu yanıt verdiğinde güncellemek olacak (senkronizasyon, elbette, EA başlatıldığında, veritabanı bellekte)
Orijinal olarak yazılmış ve yayınlanmıştır. Daha hızlı olması pek olası değil.
Orijinal olarak yazılmış ve yayınlanmıştır. Daha hızlı olması pek olası değil.
yani sorunu doğru görmedim
OnTradeTransaction() ve OnTick() olmak üzere iki noktadan sipariş listesini güncellemenin gerekli olduğunu düşündüm, bu yüzden bunu veritabanında yapmayı önerdim
İşte kodum. Başlatmada, tabloda bir giriş oluşturur. OnTick gövdesinde, aynı PRIMARY KEY ile bir kayıt eklemeye çalıştığım için hemen bir hata döndürmesi gerekir ve bundan sonra veritabanı hemen kapatılır. Ama aynı zamanda, açtığımda, en azından ilk girişi görmeliydim, ancak test cihazında çalıştırdığımda orada değil. Ve masa bile oluşturulmadı. Ve sadece terminalde çalıştırırsam, her şey yolunda. İlk giriştir.
Üssün konumuyla, umarım ortalığı karıştırmamışsınızdır?
Üssün konumuyla, umarım ortalığı karıştırmamışsınızdır?
Tabii ki değil. Her şey Dosyalarda yazılmıştır. Tester modunda veri tabanının bellekte oluşturulup testten sonra yok edildiğini düşünüyorum.
yüksek sesle düşünerek, ilgili ve yetkin olduğumu iddia etmiyorum:
...
ya da daha doğrusu, büyük olasılıkla yaz ve EA kaynaklarını algoritmayı sürdürmek için harcayacaksın, bence SQLite'ın nasıl çalıştığını öğrenmen gerekiyor, belirtilen MQ performans testleri, büyük tablolar ve seçimlerle çalışmak sadece veritabanının amacı - EA kodu minimalist olacak, veritabanının tüm işleri sizin tarafınızdan yapılacak, tüm iş sipariş verirken verileri doldurmak ve sunucu yanıt verdiğinde güncellemek olacak (senkronizasyon, elbette, EA başlatıldığında, veritabanı bellekte)
Ve tüm işleri sizin için hangi veritabanı yapacak? Bana söyleyecek misin?
Bir terminalde sadece emir verme, diğerinde (aynı broker ve hesapla) yürütme kontrolü. DB veya PUB/SUB ZMQ aracılığıyla iletişim. DB kesinlikle SQLite değildir. Bu amaçlar için en uygunu Redis'tir, tabii ki kişisel bir görüş.
İyi şanlar