Bu Expert Advisor'ı mevcut pozisyon ve emirlerin olmadığı bir hesapta çalıştırırsanız.
ve ardından Expert Advisor tarafından açılan pozisyonu elinizle kapatın, ardından hedge üzerinde üç açık pozisyon görünecektir (üçlü hacmin netleştirme pozisyonunda).
Bu doğru bir davranış mı? Büyük olasılıkla, Terminal'in nasıl çalıştığını yanlış anlıyorum. O zaman lütfen açıklayın.
Обработчик OnTrade() вызывается после соответствующих вызовов OnTradeTransaction() . В общем случае нет точного соотношения по количеству вызовов OnTrade() и OnTradeTransaction(). Один вызов OnTrade() соответствует одному или нескольким вызовам OnTradeTransaction.
Basitçe söylemek gerekirse, OnTrade() işleyicisi her bir bireysel ticaret işlemi için çağrılabilir. Bir pozisyonu kapatmanın sonucu, birkaç ayrı işlemin gelmesi olabilir.
Bunu kontrol etmek kolaydır - örneğinizin OnTrade() öğesine Print() öğesini eklemeniz yeterlidir.
Ayrıca, daha önceki testinize göre, OrderSendAsync() aracılığıyla sipariş biletini bulmayı boşuna beklediğinize dikkatinizi çekmek istiyorum.
Обработчик OnTrade() вызывается после соответствующих вызовов OnTradeTransaction() . В общем случае нет точного соотношения по количеству вызовов OnTrade() и OnTradeTransaction(). Один вызов OnTrade() соответствует одному или нескольким вызовам OnTradeTransaction.
Basitçe söylemek gerekirse, OnTrade() işleyicisi her bir bireysel ticaret işlemi için çağrılabilir. Bir pozisyonu kapatmanın sonucu, birkaç ayrı işlemin gelmesi olabilir.
Bunu kontrol etmek kolaydır - örneğinizin OnTrade() öğesine Print() öğesini eklemeniz yeterlidir.
Tabii ki çıktılar aldım. Sorun OnTrade'e yapılan çağrıların sayısı değil, açık pozisyonların sayısıydı.
İlk OnTrade'den sonra bir piyasa emri verilir. Bir sonraki OnTrade'de, bu piyasa emri, koşula göre daha fazla emir açılmasına izin vermemelidir. Ancak sonraki OnTrade'lerde bile OrdersTotal() + PositionsTotal() toplamı sıfırdır. Doğru mu?
Tabii ki çıktılar aldım. Sorun OnTrade'e yapılan çağrıların sayısı değil, açık pozisyonların sayısıydı.
İlk OnTrade'den sonra bir piyasa emri verilir. Bir sonraki OnTrade'de, bu piyasa emri, koşula göre daha fazla emir açılmasına izin vermemelidir. Ancak sonraki OnTrade'lerde OrdersTotal() + PositionsTotal() toplamı sıfırdır. Doğru mu?
Успешное выполнение означает только факт отсылки, но не даёт никакой гарантии, что запрос дошел до торгового сервера и был принят для обработки. Торговый сервер при обработке полученного запроса отправляет клиентскому терминалу ответное сообщение об изменении текущего состояния позиций, ордеров и сделок, которое приводит к генерации события Trade .
Böylece OrdersTotal() kesinlikle boş olabilir. Ayrıca PositionsTotal(). Her şey işlemlere, türlerine ve içeriğine bağlıdır.
"и режим вывода сообщений в журнал "Эксперты". По умолчанию выводятся все детали.\r\n" //| Expert initialization function | //| Expert deinitialization function | //| TradeTransaction function |...
Her siparişin durumunu açıklayan bir durumu vardır. Bilgi için işlevi kullanın OrderGetInteger() veya GeçmişSiparişGetInteger() ORDER_STATE değiştiricisi ile. Geçerli değerler ENUM_ORDER_STATE numaralandırmasında saklanır.
ENUM_ORDER_STATE
tanımlayıcı
Tanım
ORDER_STATE_STARTED
Siparişin doğruluğu kontrol edildi, ancak henüz komisyoncu tarafından kabul edilmedi
Başarılı bir OrderSendAsync işleminden sonra Başlatıldı durumu oluşmuyor mu?
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Bu Expert Advisor'ı mevcut pozisyon ve emirlerin olmadığı bir hesapta çalıştırırsanız.
ve ardından Expert Advisor tarafından açılan pozisyonu elinizle kapatın, ardından hedge üzerinde üç açık pozisyon görünecektir (üçlü hacmin netleştirme pozisyonunda).
Bu doğru bir davranış mı? Büyük olasılıkla, Terminal'in nasıl çalıştığını yanlış anlıyorum. O zaman lütfen açıklayın.
İlk önce yardımı okumanız gerekir.
https://www.mql5.com/ru/docs/event_handlers/ontrade
Not:
Basitçe söylemek gerekirse, OnTrade() işleyicisi her bir bireysel ticaret işlemi için çağrılabilir. Bir pozisyonu kapatmanın sonucu, birkaç ayrı işlemin gelmesi olabilir.
Bunu kontrol etmek kolaydır - örneğinizin OnTrade() öğesine Print() öğesini eklemeniz yeterlidir.
Ayrıca, daha önceki testinize göre, OrderSendAsync() aracılığıyla sipariş biletini bulmayı boşuna beklediğinize dikkatinizi çekmek istiyorum.
Ayrıca, daha önceki testinize göre, OrderSendAsync() aracılığıyla sipariş biletini bulmayı boşuna beklediğinize dikkatinizi çekmek istiyorum.
Görünüşe göre hiçbir yerde yok. OnTrade'de yalnızca HistorySelect gecikmeleri gösterilir.
Görünüşe göre hiçbir yerde yok. OnTrade'de yalnızca HistorySelect gecikmeleri gösterilir.
İlk önce yardımı okumanız gerekir.
https://www.mql5.com/ru/docs/event_handlers/ontrade
Not:
Basitçe söylemek gerekirse, OnTrade() işleyicisi her bir bireysel ticaret işlemi için çağrılabilir. Bir pozisyonu kapatmanın sonucu, birkaç ayrı işlemin gelmesi olabilir.
Bunu kontrol etmek kolaydır - örneğinizin OnTrade() öğesine Print() öğesini eklemeniz yeterlidir.
Tabii ki çıktılar aldım. Sorun OnTrade'e yapılan çağrıların sayısı değil, açık pozisyonların sayısıydı.
İlk OnTrade'den sonra bir piyasa emri verilir. Bir sonraki OnTrade'de, bu piyasa emri, koşula göre daha fazla emir açılmasına izin vermemelidir. Ancak sonraki OnTrade'lerde bile OrdersTotal() + PositionsTotal() toplamı sıfırdır. Doğru mu?
Teşekkür ederim kopyala yapıştır kısmını görmemiştim.
Görünüşe göre hiçbir yerde yok. OnTrade'de yalnızca HistorySelect gecikmeleri gösterilir.
Sipariş seçimlerinin önbelleğe alınması bugün iyileştirildi, birkaç saat içinde bir beta olacak.
Sipariş seçimlerinin önbelleğe alınması bugün iyileştirildi, birkaç saat içinde bir beta olacak.
HistorySelect'i mi kastediyorsunuz? Sadece otomatik bağlantı OrderSelect'e yol açmaz.
mt5'in neden 'Komisyonlar' sekmesini içermediğine dair bir fikriniz var mı? Sadece bir ticaret kapandıktan sonra ortaya çıkarlar.
Mt5'te neden "Komisyonlar" sekmesi olmadığı hakkında bir fikriniz var mı? Yalnızca işlem kapatıldıktan sonra görünürler.
Tabii ki çıktılar aldım. Sorun OnTrade'e yapılan çağrıların sayısı değil, açık pozisyonların sayısıydı.
İlk OnTrade'den sonra bir piyasa emri verilir. Bir sonraki OnTrade'de, bu piyasa emri, koşula göre daha fazla emir açılmasına izin vermemelidir. Ancak sonraki OnTrade'lerde OrdersTotal() + PositionsTotal() toplamı sıfırdır. Doğru mu?
Her şey yardımın içinde: https://www.mql5.com/en/docs/trading/ordersendasync
Her şey yardımın içinde: https://www.mql5.com/en/docs/trading/ordersendasync
https://www.mql5.com/ru/docs/constants/tradingconstants/orderproperties#enum_order_state
Her siparişin durumunu açıklayan bir durumu vardır. Bilgi için işlevi kullanın OrderGetInteger() veya GeçmişSiparişGetInteger() ORDER_STATE değiştiricisi ile. Geçerli değerler ENUM_ORDER_STATE numaralandırmasında saklanır.
ENUM_ORDER_STATE
tanımlayıcı
Tanım
ORDER_STATE_STARTED
Siparişin doğruluğu kontrol edildi, ancak henüz komisyoncu tarafından kabul edilmedi
Başarılı bir OrderSendAsync işleminden sonra Başlatıldı durumu oluşmuyor mu?