OnTicaretİşlem - sayfa 9

 
Aleksey Mavrin :

evet haklısın çünkü bu durumda, ömrü boyunca sabit olan bir konum tanımlayıcıdan bahsediyoruz. Rollover ve netleştirme sırasında değişen pozisyon bileti ile karıştırdım.

Sadece anlamadım - bir pozisyon kısmen kapatıldığında - bilet chtoli'yi pozisyonu etkileyen son siparişin bilete değiştirmiyor mu?

Fırsatları kullanmak gereksiz o zaman, kodlarımı gözden geçireceğim, teşekkürler. Foruma girmeme şaşmamalı)

Ne güncel listede ne de tarihi listede olmayan "kayıp düzen" sorusuna: Bana öyle geliyor ki bu bir bug değil, işin özelliklerine dikkatlice bakmanız yeterli.

bağlamalar Terminal-Server MT-Market (Anında yürütme durumunda piyasa kaybolur). Bence öyle, bakın - terminal bir piyasa emri gönderir, senkronize bir işlev olması durumunda bekler ve sunucudan bir yanıt alır,

bir hata değilse, o zaman cevap yalnızca TRADE_RETCODE_DONE olabilir (anlık yeniden teklifler durumunda, ancak şimdiye kadar piyasa yürütme türü hakkında), bu da esasen sunucunun siparişi piyasaya ve kendisine daha fazla gönderdiği anlamına gelir.

bir cevap beklemek. Siparişin şu anki durumu yanılmıyorsam ORDER_STATE_STARTED ve bileti biliniyor. Emir gerçekleşirse, sunucu terminale OnTradeTransaction gönderir ve emir durumu ORDER_STATE_FILLED olarak değişir ve işlem bilinir hale gelir.

ve konum. Sadece şu anda terminal, siparişi tarihe kaydeder. Daha önce, bunu yapmaz çünkü. ona ne olduğu kesin değil, sunucunun birincil yanıtını zaten verdi.

Bu, emirlerin ECN ağında veya başka bir yerde yürütüldüğü zamandır ve her iki listede de yoktur. Onlar. bir piyasa emri söz konusu olduğunda, genellikle yalnızca geçmişte görünür (anlık yürütme sırasında yeniden fiyatlama durumundan emin değil),

asla açık listede olmayacak. Ve beklemedeyken, çalıştığında, zaten bir piyasa emri haline geldiği için açık olanlar listesinden çıkarılır ve ayrıca piyasa sunucusunun yanıt vermesini bekler ve ardından tarihe kaydedilir.

doğru mu konuşuyorum

Tam olarak değil.
 
Aleksey Mavrin :

doğru mu konuşuyorum

Andrew iyi yazdı.

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

OnTicaretİşlem

Andrey Khatimliansky , 2019.12.17 08:24

Hayır, işler kötüye gidiyor.

Bekleyen (veya piyasadan) geçmişe (yürütülen veya iptal edilen) dönüşüm anındaki emir, bir süre için terminalden tamamen kaybolur. Ne bekleyen (veya "başlayan" piyasalar arasında) ne de tarihi olanlar arasında.

Yani, yürütme ile ilgili değil, bu iki tabloyu senkronize etmekle ilgili. Sunucudan yanıt geldi ("sipariş verildi, şöyle ve böyle bir işlem oluşturuldu"), bir tablodan silindi ve diğerine girilmedi.


Bu OrderSend ile ilgili değil. Uzun süredir BuyLimit vardı. Ve aniden ne o ne de Buy pozisyonu hiçbir yerde. Burada da benzer bir durum yaşanıyor.

 
fxsaber :

Andrew iyi yazdı.


Bu OrderSend ile ilgili değil. Uzun süredir BuyLimit vardı. Ve aniden ne o ne de Buy pozisyonu hiçbir yerde. Burada da benzer bir durum yaşanıyor.


Artyom Trishkin :
Tam olarak değil.

Anladım. Bir süredir mevcut olanlar listesinde bir piyasa emri bile var (sadece görünüşe göre ticaret sekmesindeki terminalde prensipte görüntülenmiyor mu?)

Ardından, siparişin yürütüldüğü ve ilgili işlemin sunucudan geldiği anda, terminal aşağıdaki eylemleri gerçekleştirir.

1. sırayı mevcut olanlardan kaldırır

2. sırayı tarihe yazar

3. İşlemi listeye yazar

4.Konumu listeye yazar

çünkü bu eylemler küçük de olsa biraz zaman gerektirir. ve EA ve terminalin kendisinin bağımsız paralel iş parçacıklarında çalıştığı göz önüne alındığında, talep ederseniz olan budur

konum, henüz var olmayacak. Daha önce yazdığım gibi, bu DBMS standartlarına göre olsaydı, o zaman bu olmazdı, çünkü oradaki 4 işlemin tümü tek bir işlemde birleştirilecek ve "ara durumlara" girmek mümkün olmayacaktı.

Doğru? Ve aslında ilgileniyorum - eğer güveniyorsanız OnTrade ve OnTradeTransaction , o zaman bu işleyicilerde bir gecikme olmamalı, sonuçta, değişiklikler ilgili tablolara yazıldıktan sonra ortaya çıkıyorlar mı?

Yoksa Terminal, olayları alırken ve tabloları paralel olarak değiştirirken, olayları Uzman Danışmana iletir mi? İkinci durumda, bu elbette yanlıştır ve özellikle güncel bilgilerin elde edilmesinin mümkün olacağı OnTradeTransaction garanti edilmediği takdirde düzeltilmesi gerekir.

 
Aleksey Mavrin :

Anladım. Bir süredir mevcut olanlar listesinde bir piyasa emri bile var (sadece görünüşe göre ticaret sekmesindeki terminalde prensipte görüntülenmiyor mu?)

Bazen onu orada Başlamış durumda bile görebilirsiniz. Ve bir robot yardımıyla takip genellikle kolaydır.


Alexey Mavrin :

çünkü bu eylemler küçük de olsa biraz zaman gerektirir. ve EA ve terminalin kendisinin bağımsız paralel akışlarda çalıştığını düşünürsek, bu şekilde olur, bu kısa süre içinde bir pozisyon talep ederseniz, o zaman henüz orada olmayacaktır.

Pozisyonlar konuşulmuyor, sadece emirler var.

Tabloya bir kayıt eklemek bazen olduğundan çok daha az zaman alır. Ve bu ciddi değil, doğru ticaret ortamını elde etmenin garantisi yok.


Alexey Mavrin :

Ve aslında ilgileniyorum - eğer güveniyorsanız OnTrade ve OnTradeTransaction , o zaman bu işleyicilerde bir gecikme olmamalı, sonuçta, değişiklikler ilgili tablolara yazıldıktan sonra ortaya çıkıyorlar mı?

Yoksa Terminal, olayları alırken ve tabloları paralel olarak değiştirirken, olayları Uzman Danışmana iletir mi? İkinci durumda, bu elbette yanlıştır ve özellikle güncel bilgilerin elde edilmesinin mümkün olacağı OnTradeTransaction garanti edilmediği takdirde düzeltilmesi gerekir.

OnTrade en saf haliyle yardımcı olmaz.

Sipariş tablolarının senkronizasyonunu beklemeyi ve bunun içinde zevk meselesini birleştirebilirsiniz. Ama yine de beklemeniz gerekiyor.

 
Aleksey Mavrin :

Ne mevcut listede ne de tarihi listede olmayan "kayıp sipariş" ile ilgili soruya: Bana öyle geliyor ki bu bir hata değil, sadece Terminal'in işleyişinin özelliklerine dikkatlice bakmanız gerekiyor- Sunucu MT-Market bağlantısı (Anında çalıştırma durumunda market kaybolur). Bence öyle, bak - terminal bir piyasa emri gönderir, senkron bir fonksiyon durumunda bekler ve sunucudan bir cevap alır, bir hata değilse, cevap sadece TRADE_RETCODE_DONE olabilir (anlık yeniden fiyatlama durumunda) , ancak şimdiye kadar piyasa yürütme türü hakkında), bu da esasen sunucunun siparişi piyasaya daha fazla gönderdiği ve bir yanıt beklediği anlamına gelir. Siparişin şu anki durumu yanılmıyorsam ORDER_STATE_STARTED ve bileti biliniyor. Emir gerçekleşirse, sunucu terminale bir OnTradeTransaction gönderir ve emir durumu ORDER_STATE_FILLED olarak değişir ve işlem ve pozisyon bilinir hale gelir. Sadece şu anda terminal, siparişi tarihe kaydeder.

Piyasanın bununla hiçbir ilgisi yok.

MT sunucusu, ECN'ye veya başka bir yere bir sipariş gönderdi, yanıt aldı ve terminale gönderdi. Ve zaten terminalde, senkronizasyon dışı olduğu ortaya çıktı.