FORTS. Yürütme soruları - sayfa 15

 

İyi günler Renat!

FORTS (gerçek) ile ilgili aşağıdaki durum hakkında yorum yapabilir misiniz?

Camın içinde 8 hacimli bir fiyat vardır. Bu cilt iki muhabir tarafından yapılmıştır (4'ü aynı fiyattan)

Bu cildi (8) limit emir ile alıyorum (satıyorum).

Aşağıdakiler olur:

1. Sipariş tamamen doldurulmuşsa, OnTradeTransaction'da şunu alıyorum:

OntradeTransaction --> TRADE_TRANSACTION_HISTORY_ADD --> ORDER_STATE_FILLED

2. Sipariş, 2. muhabirin hacmiyle doldurulursa, OnTradeTransaction'da şunu elde ederim:

OntradeTransaction --> TRADE_TRANSACTION_HISTORY_ADD --> ORDER_STATE_PARTIAL

3. Sipariş, 1. muhabirin hacmiyle doldurulursa, OnTradeTransaction'da şunu elde ederim:

OntradeTransaction --> TRADE_TRANSACTION_HISTORY_ADD --> ORDER_STATE_CANCELED

Niye ya? Nitekim, ikinci ve üçüncü durumlarda, emir kısmen yerine getirildi.

2015.03.02 17:10:26.204 Trades  'xxxxx': sell limit 8.00 GOLD-6.15 at 1222.1
2015.03.02 17:10:26.234 Trades  'xxxxx': sell limit 8.00 GOLD-6.15 at 1222.1 placed for execution in 23 ms
2015.03.02 17:10:26.254 Trades  'xxxxx': deal #9801184 sell 4.00 GOLD-6.15 at 1222.1 done (based on order #11413991)

2015.03.02 17:10:26.254 Forts_trader (GOLD-6.15,H1)     OnTradeTransaction: ордер удалён. Билет = 11413991


 

Bu siparişe bir çek yazdım, işte sonuç:

Bu, terminalin 1060 yapısında ve sunucunun 1035 yapısında oldu.

Akşam (ana) takastan sonra terminal 1085'e güncellendi, ancak ben

nedeni netleşene kadar ticareti durdurdu.

Demoda (1085 - 1085) hata yeniden oluşturulamıyor (sipariş defterinde hızlı değişiklik yok)

 

Tüm emirlerinin tarihini "yükseltti".

1035, 1060 ve 1085 yapılarında hata var

 

İlk durumda, emir bir anlaşma ile tamamen doldurulur ve doldurulmayan bakiye geri çekilmez, çünkü. sipariş tam olarak dolduruldu. Günlükte, sağladığınız bir giriş görüyoruz:

OntradeTransaction --> TRADE_TRANSACTION_HISTORY_ADD --> ORDER_STATE_FILLED


İkinci durumda, emir kısmen gerçekleştirilir ve gerçekleşmeyen bakiye geri çekilir. Bunun nedeni, sipariş doldurma politikasını - ORDER_FILLING_IOC - ayarlamış olmanızdır:

Piyasada bulunan maksimum hacim üzerinden, siparişte belirtilen limitler dahilinde işlem yapma anlaşması anlamına gelir. Tam olarak gerçekleştirilememesi durumunda, mevcut miktar için emir gerçekleştirilir ve gerçekleşmeyen emir hacmi iptal edilir .


Sizin durumunuzda, sipariş 1222.1 fiyatında 8 lot içindi. Borsada emir verildiği sırada, 1222.1'den daha kötü olmayan bir fiyattan karşı emir hacmi 4 lottu. Sonuç olarak, 4 lot tek işlem şeklinde uygulandı (çünkü 4 lot bir karşı emir ile temsil edildi). Siparişin geri kalanı geri çekildi, yani. sipariş iptal edildi.

Sağladığınız günlüklere göre:

sipariş kısmen doldurulmuş:

OntradeTransaction --> TRADE_TRANSACTION_HISTORY_ADD --> ORDER_STATE_PARTIAL

sonra kalan kaldırıldı, yani. sipariş iptal edildi:

OntradeTransaction --> TRADE_TRANSACTION_HISTORY_ADD --> ORDER_STATE_CANCELED
 
Renat :

İlk durumda, emir bir anlaşma ile tamamen doldurulur ve doldurulmayan bakiye geri çekilmez, çünkü. sipariş tam olarak dolduruldu. Günlükte, sağladığınız bir giriş görüyoruz:



İkinci durumda, emir kısmen gerçekleştirilir ve gerçekleşmeyen bakiye geri çekilir. Bunun nedeni, sipariş doldurma politikasını - ORDER_FILLING_IOC - ayarlamış olmanızdır:

Piyasada bulunan maksimum hacim üzerinden, siparişte belirtilen limitler dahilinde işlem yapma anlaşması anlamına gelir. Tam olarak gerçekleştirilememesi durumunda, mevcut miktar için emir gerçekleştirilir ve gerçekleşmeyen emir hacmi iptal edilir .


Sizin durumunuzda, sipariş 1222.1 fiyatında 8 lot içindi. Borsada emir verildiği sırada, 1222.1'den daha kötü olmayan bir fiyattan karşı emir hacmi 4 lottu. Sonuç olarak, 4 lot tek işlem şeklinde uygulandı (çünkü 4 lot bir karşı emir ile temsil edildi). Siparişin geri kalanı geri çekildi, yani. sipariş iptal edildi.

Sağladığınız günlüklere göre:

sipariş kısmen doldurulmuş:

sonra kalan kaldırıldı, yani. sipariş iptal edildi:

O halde BELGELER nasıl yorumlanır?

Buradaki nokta, ORDER_STATE_CANCELED olduğunda OnTradeTransaction'ın bir anlaşma ( TRADE_TRANSACTION_DEAL_ADD ) hakkında bir mesaj almamasıdır!

Ama bir anlaşma vardı!

 
Mikalas :

O halde BELGELER nasıl yorumlanır?

Sipariş geri çekildi . Müşteri eve gönderilebilir.
 
Renat :
Sipariş geri çekildi . Müşteri eve gönderilebilir.

Buradaki nokta, ORDER_STATE_CANCELED olduğunda OnTradeTransaction'ın bir anlaşma ( TRADE_TRANSACTION_DEAL_ADD ) hakkında bir mesaj almamasıdır!

Ama bir anlaşma vardı!

Ve KISMİ'yi nerede gördünüz (bu, etkinliğin geliştirilmesi için seçeneklerden biridir)? sadece İPTAL

Ve tarihte İPTAL EDİLDİ olarak saklanır (resme bakın)

 

İyi günler Renat!

Kısmen doldurulmuş bir siparişin tarihte ORDER_STATE_CANCELED olarak saklanması sizce doğru mu?

ve   OnTradeTransaction, kısmen yürütülen bir siparişin işleminin onayını almamalı mı?

Söyleyin bana, platformun mevcut mantığı böyle mi kalacak yoksa yakın gelecekte değişiklik yapmaya hazır mısınız?

 
kond777 :

İyi günler Renat!

Kısmen doldurulmuş bir siparişin tarihte ORDER_STATE_CANCELED olarak saklanması sizce doğru mu?

ve   OnTradeTransaction, kısmen yürütülen bir siparişin işleminin onayını almamalı mı?

Söyleyin bana, platformun mevcut mantığı böyle mi kalacak yoksa yakın gelecekte değişiklik yapmaya hazır mısınız?

Kendiniz mi kontrol ettiniz yoksa Mikalas'ın eksik açıklamalarına tepki mi verdiniz? Sonuçta sipariş IOC'ydi .

Bizim tarafımızdaki davranışı tekrar kontrol ettik:

1. "MQL5 Tarifleri - Ticari İşlem Olayını Yönetme" makalesinden Uzman Danışmanı kurdu.

2. Düşük sıvı enstrümanı SILV-3.15'e bir IOC siparişi verdi. Bu fiyattan sadece 1 lot olmasına rağmen sipariş 11 lot 16,48 fiyattan satışa sunuldu.

Aşağıdakileri aldım:

Terminalde:


Siparişin "iptal edildi" durumunda olmasının yanı sıra, talep edilen 11 lottan 1'inin dolduğunu görüyoruz, bu doğru davranış.

Uzman günlüğünde:

2015.03.03 16:32:56.022 tradeprocessor (SILV-3.15, H1 )   Тип торговой транзакции: TRADE_TRANSACTION_ORDER_ADD
2015.03.03 16:32:56.173 tradeprocessor (SILV-3.15, H1 )   Тип торговой транзакции: TRADE_TRANSACTION_ORDER_UPDATE
2015.03.03 16:32:56.325 tradeprocessor (SILV-3.15, H1 )   Тип торговой транзакции: TRADE_TRANSACTION_REQUEST
2015.03.03 16:32:56.477 tradeprocessor (SILV-3.15, H1 )   Тип торговой транзакции: TRADE_TRANSACTION_ORDER_UPDATE
2015.03.03 16:32:56.628 tradeprocessor (SILV-3.15, H1 )   Тип торговой транзакции: TRADE_TRANSACTION_DEAL_ADD   <====== транзакция о сделке пришла
2015.03.03 16:32:56.779 tradeprocessor (SILV-3.15, H1 )   Тип торговой транзакции: TRADE_TRANSACTION_ORDER_UPDATE
2015.03.03 16:32:56.930 tradeprocessor (SILV-3.15, H1 )   Тип торговой транзакции: TRADE_TRANSACTION_ORDER_DELETE
2015.03.03 16:32:57.082 tradeprocessor (SILV-3.15, H1 )   Тип торговой транзакции: TRADE_TRANSACTION_HISTORY_ADD

Onlar. anlaşma işlemi OnTradeTransaction()'a geldi. İşlem gelmemiş olsaydı, terminalde hiç görmezdiniz. Lütfen TRADE_TRANSACTION_DEAL_ADD işleminin gerçekten gelmediğinden emin olun. Uzman Danışmanınızın davranışını, yukarıda Uzman Danışman tarafından önerilen davranışla karşılaştırın.

 

Günaydın Renat!

OnTradeTransaction olayının gelişini garanti etmiyorsunuz, bu yüzden gelmedi (TRADE_TRANSACTION_DEAL_ADD)

Ve TRADE_TRANSACTION_HISTORY_ADD olayı geldiğinde sipariş durumu şuydu:   ORDER_STATE_CANCELED

İşte "bacaklar büyüdü".

Benim düşünceme göre, bir emir (hangi icrada olursa olsun) kısmen yerine getirilirse, durumu

ORDER_STATE_PARTIAL olarak tarihe geçmeli

Neden: