İşlem işleme OnTradeTransaction - sayfa 2

 
fxsaber :

Aynı anda >=2 alma ve durma olabilir mi?

Evet bu doğru. İlk girişi tamamladık, TP belirledik ve emirleri durdurduk . Ardından, bir süre sonra, yükleme gerçekleşebilir ve başka bir TP ve stop emri verilir.

 

Bir olayın kaybolması durumunda, verilen emirleri, son muhasebeleştirilmiş işlemin biletini, durumun son kayıt (değişim) zamanını hatırlıyorum ve periyodik olarak ve ayrıca init'te sipariş listesini senkronize ediyorum. ve hesaplanmamış işlemleri kontrol edin.

Olayların rastgele bir sırayla gelişi bir normdur, hem siparişlerde hem de tarihte bir düzenin yokluğu (geçici) nadir değildir, bir anlaşmanın ortaya çıkmasından önce ve sonra ortaya çıkabilir.

Netleştirme sırasındaki pozisyon, ilk siparişin biletini alır ve kapanana kadar (yani 0.0 olana kadar) sonraki işlemlerde (değişikliklerde) tutar.

Eh, siparişin hacmine bağlı olarak, birkaç işlem üretebilir.
 
Илья Ребенок :


Lütfen deneyimlerinizi ve fikirlerinizi paylaşın.

En başta yanlış yapıyorsun.

Neden büyüler ve her türlü kontrol?

Sipariş bileti (bilet) - benzersiz bir tanımlayıcı.

Senkron bir emir gönderirseniz, fonksiyonun yürütülmesi sonucunda bir bilet alırsınız.

Sipariş eşzamansız olarak gönderilirse, bilet OnTradeTransaction'da alınır .

Katma

Ve işte https://www.mql5.com/ru/forum/67298/page2#comment_2089220

siparişi kontrol etmek için iyi işlev

ФОРТС: В помощь начинающим
ФОРТС: В помощь начинающим
  • 2015.11.25
  • www.mql5.com
Установка отложенного ордера командой OrderSend().
 
Илья Ребенок :

Evet bu doğru. İlk girişi tamamladık, TP belirledik ve emirleri durdurduk . Ardından, bir süre sonra, yükleme gerçekleşebilir ve başka bir TP ve durdurma emri verilir.

TP/SL gerektiren limitlerin kendileri kısmen uygulanabilir. Aynı zamanda limitler şeklinde TP de benzerdir. Örneğin, TP hacmin üçte biri kadar tamamlandı - SL'yi aynı miktarda azaltmak gerekiyor.

Genel olarak, tüm şakaları yakalamak için oldukça nahoş bir mantık.


ZY Görev, OnTrade'de uygulanacaktır. Zor olmamalıydı.

 
prostotrader :

En başta yanlış yapıyorsun.

Neden sihirler ve her türlü kontrol?

Sipariş bileti (bilet) - benzersiz bir tanımlayıcı.

Senkron bir emir gönderirseniz, fonksiyonun yürütülmesi sonucunda bir bilet alırsınız.

Sipariş eşzamansız olarak gönderilirse, bilet OnTradeTransaction'da alınır .

Katma

Ve işte https://www.mql5.com/ru/forum/67298/page2#comment_2089220

siparişi kontrol etmek için iyi işlev

Teşekkürler, okuyacağım.
JRandomTrader :

Bir olayın kaybolması durumunda, verilen emirleri, son muhasebeleştirilmiş işlemin biletini, durumun son kayıt (değişim) zamanını hatırlıyorum ve periyodik olarak ve ayrıca init'te sipariş listesini senkronize ediyorum. ve hesaplanmamış işlemleri kontrol edin.

Olayların rastgele bir sırayla gelişi bir normdur, hem siparişlerde hem de tarihte bir düzenin yokluğu (geçici) nadir değildir, bir anlaşmanın ortaya çıkmasından önce ve sonra ortaya çıkabilir.

Netleştirme sırasındaki pozisyon, ilk siparişin biletini alır ve kapanana kadar (yani 0.0 olana kadar) sonraki işlemlerde (değişikliklerde) tutar.

Eh, siparişin hacmine bağlı olarak, birkaç işlem üretebilir.

Robotun amaçlarından biri yerel bağımlılıktan kurtulmaktı. Yani, terminalin veya PC'nin değişkenlerine atıfta bulunmadan sadece piyasadan veri almak. Yani, acil bir durumda başka bir bilgisayara geçmeniz gerekiyorsa ve robot her şeyi alır.

Şimdi başka bir ilginç böcek gördüm. 2 özdeş işlem TRADE_TRANSACTION_DEAL_ADD geldi. Ne oluyor, pardon?) Sonuç olarak, robot 1 işlem için 2 durak yerleştirdi.

2019.02.08 10:55:29 [BİLGİ]: (PChBreak_RTS-3.19_22) TRADE_TRANSACTION_DEAL_ADD
TRADE_TRANSACTION_DEAL_ADD
Sembol: RTS-3.19
Anlaşma bileti: 12674810
Anlaşma türü: DEAL_TYPE_BUY
Bilet siparişi: 82646001
Sipariş türü: ORDER_TYPE_BUY
Sipariş durumu: ORDER_STATE_STARTED
Sipariş süresi türü: ORDER_TIME_GTC
Sipariş bitiş tarihi: 1970.01.01 00:00
Fiyat: 119700
Fiyat tetikleyici: 0
Kaybı Durdur: 0
Kâr Al: 0
Ses seviyesi 1
Pozisyon: 82646001
Pozisyona göre: 0

2019.02.08 10:55:32 [BİLGİ]: (PChBreak_RTS-3.19_22) TRADE_TRANSACTION_DEAL_ADD
TRADE_TRANSACTION_DEAL_ADD
Sembol: RTS-3.19
Anlaşma bileti: 12674810
Anlaşma türü: DEAL_TYPE_BUY
Bilet siparişi: 82646001
Sipariş türü: ORDER_TYPE_BUY
Sipariş durumu: ORDER_STATE_STARTED
Sipariş süresi türü: ORDER_TIME_GTC
Sipariş bitiş tarihi: 1970.01.01 00:00
Fiyat: 119700
Fiyat tetikleyici: 0
Kaybı Durdur: 0
Kâr Al: 0
Ses seviyesi 1
Pozisyon: 82646001
Pozisyona göre: 0

 

Anlaşma etkinlikleri ( TRADE_TRANSACTION_DEAL_ADD) düzenli olarak birkaç kez gelir.

Neyse ki, sadece en sonuncusu tekrarlanıyor (en azından eskilerin gelişini yakalamadım).

Filtrelemek için işlem biletinin bir öncekiyle eşleşip eşleşmediğini kontrol etmek yeterlidir.

 
Ilya Baranov :

Anlaşma etkinlikleri ( TRADE_TRANSACTION_DEAL_ADD) düzenli olarak birkaç kez gelir.

Neyse ki, sadece en sonuncusu tekrarlanıyor (en azından eskilerin gelişini yakalamadım).

Filtrelemek için işlem biletinin bir öncekiyle eşleşip eşleşmediğini kontrol etmek yeterlidir.

Birkaç kez değil, şu anda terminalde çalışan Uzman Danışmanların sayısına göre.

Bu nedenle, her danışman kendi siparişini işleme koymalıdır.

 case TRADE_TRANSACTION_DEAL_ADD :
       if ((BuyOrder.ticket > 0 ) && (trans.order == BuyOrder.ticket))   // Buy order
      {
         //Сделка этого советника
      }
break ;
 
prostotrader :

Birkaç kez değil, şu anda terminalde çalışan Uzman Danışmanların sayısına göre.

Bu nedenle, her danışman kendi siparişini işleme koymalıdır.

Kodunuz, bunun bu EA'nın bir ticareti olduğu gerçeğine karşı koruma sağlar.

TS ve ben, TRADE_TRANSACTION_DEAL_ADD türünde OnTradeTransaction'ın bir anlaşma için birkaç kez çağrıldığı durumlardan bahsediyoruz, yani. MqlTradeTransaction alanlarının geri kalanı tamamen aynı verileri içerir.

Yani, sizin durumunuzda işleme kodu birkaç kez çalıştırılabilir.

Bunun tüm brokerlerde olmaması mümkündür. Ama çalıştığım tüm borsalar için bu düzenli olarak oluyor.

 
Ilya Baranov :

Kodunuz, bunun bu EA'nın bir ticareti olduğu gerçeğine karşı koruma sağlar.

TS ve ben, TRADE_TRANSACTION_DEAL_ADD türünde OnTradeTransaction'ın bir anlaşma için birkaç kez çağrıldığı durumlardan bahsediyoruz, yani. MqlTradeTransaction alanlarının geri kalanı tamamen aynı verileri içerir.

Yani, sizin durumunuzda işleme kodu birkaç kez çalıştırılabilir.

Bunun tüm brokerlerde olmaması mümkündür. Ama çalıştığım tüm borsalar için bu düzenli olarak oluyor.

Otkryvashka'da gerçek olarak işlem yapıyorum ve demoda test ediyorum, ancak yeniden kullanılabilir pozitiflerim yok.

TRADE_TRANSACTION_DEAL_ADD için kod parçanızı gönderin

 
Ilya Baranov :

Anlaşma etkinlikleri ( TRADE_TRANSACTION_DEAL_ADD) düzenli olarak birkaç kez gelir.

Neyse ki, sadece en sonuncusu tekrarlanıyor (en azından eskilerin gelişini yakalamadım).

Filtrelemek için işlem biletinin bir öncekiyle eşleşip eşleşmediğini kontrol etmek yeterlidir.

Evet teşekkür ederim! Gördüklerinden sonra aynen böyle yaptı.

İlk probleme göre, sipariş silme ve geçmişe ekleme işlemlerinin pompalanabilmesi için bir slip koydum. İzliyorum.

Platformun bu konudaki kusuru çok üzücü. Bir demet halinde olması gereken şeyler ayrı yapılır.

basit tüccar :

Birkaç kez değil, şu anda terminalde çalışan Uzman Danışmanların sayısına göre.

Bu nedenle, her danışman kendi siparişini işleme koymalıdır.

bu durumda, istekten gelen sipariş biletini yine de bir yerde saklamam gerekiyor, böylece daha sonra anlaşmadan gelen biletle karşılaştırabilirim. Ve sadece yerel değişkenlerdeki tüm depolamadan uzaklaşmak ve yerel altyapı risklerini dengelemek için yalnızca pazardan/terminalden bilgi almak istiyorum.