İşlem işleme OnTradeTransaction - sayfa 6

 

Tünaydın.

Kimse kimseyi korkutmadı.

prostotrader :

anahtarınız yok(trans.type)

Tabii ki, verilen durum switch(trans.type) içindedir. Daha fazla vaka olduğu için, gereksiz bilgilerle yüklenmemek için tüm kodu yerleştirmedim.

fxsaber örnek için teşekkürler!

Alexey , aynen öyle. Netleştirme modunda, aynı enstrümanda 2 farklı robot takas ediyorum. Alıntıladığınız bu 2 gönderi birbirini tamamlıyor.

Sorunu, birincil değişiklik tetikleyicisi olan onTradeTransaction'dan başlayarak çözmek ilginçtir.

Karşılanan toplam mevcut sorunlar:

1. Deal_add çalışıyor ama poz yok. Düşünceler yokken

2. Deal_add tetiklenir, ancak sipariş üçüncü boyuttadır. Bir fiş koydum, son birkaç gün yardımcı oluyor gibi görünüyor. 1 saniyede sipariş tarihe geçmeyi başarır. Yüksek frekanslı robotlarım yok ve piyasa siparişleri üzerinde çalışmıyorum, bu yüzden bu çözüm uygun.

3. Deal_add 2 kez çalışır. yani aynı Deal_add 2 kez çalışır. Son anlaşmanın biletini kontrol ederek ve mevcut olanla karşılaştırarak çözülür.

1. nokta kaldı.Bununla ilgili küçük bir açıklama.

Dün sell_limit belirledim, işe yaradı, Deal_add geldi ama pozisyon gelmedi ve stop emirlerini aynen böyle açtık. İşlemin açıklamasına bakmaya başladım ve işlem tipinin DEAL_TYPE_SELL, içindeki emir tipinin ORDER_TYPE_BUY olduğunu gördüm. Aynı zamanda bilet bizim. Nedense mantıklı değil. Deal_add işlemi için OnTradeTransaction'da emir tipi ile işlem tipinin aynı yönde eşleşmesi gerektiğini kontrol etmeye karar verdim.

Robotu demoya koydum, yine benzer bir işlem geldi ama bu sefer pozisyon değişti. Ancak bizim kontrolümüz nedeniyle stop emri verilmedi. Ne oluyor?!

 2019.02 . 08 16 : 05 : 14 [INFO]: ( FrTrend_2_Si- 3.19 _33) TRADE_TRANSACTION_DEAL_ADD
TRADE_TRANSACTION_DEAL_ADD
Symbol : Si- 3.19
Deal ticket: 12677775
Deal type: DEAL_TYPE_SELL
Order ticket: 82675535
Order type: ORDER_TYPE_BUY
Order state: ORDER_STATE_STARTED
Order time type: ORDER_TIME_GTC
Order expiration: 1970.01 . 01 00 : 00
Price: 66287
Price trigger: 0
Stop Loss: 0
Take Profit: 0
Volume : 1
Position: 82675534
Position by: 0

prostotrader, hemen terminale gelenin bu olduğunu söyleyeceğim. Hayal gücüm olmadan.

 
Илья Ребенок :

Dün sell_limit belirledim, işe yaradı, Deal_add geldi ama pozisyon gelmedi ve stop emirlerini aynen böyle açtık. İşlemin açıklamasına bakmaya başladım ve işlem tipinin DEAL_TYPE_SELL, içindeki emir tipinin ORDER_TYPE_BUY olduğunu gördüm. Aynı zamanda bilet bizim. Nedense mantıklı değil. Deal_add işlemi için OnTradeTransaction'da emir tipi ile işlem tipinin aynı yönde eşleşmesi gerektiğini kontrol etmeye karar verdim.

Ve burada, Deal_add türü için hangi alanların doldurulduğuna ilişkin olarak " Bir ticari işlemin yapısı " referansını yeniden okumaya değer.

Ve sipariş özelliklerini işlemden değil (doldurulmadıkları yerde, ancak sıfırlar da numaralandırma türündeki bazı değerlere karşılık gelir), ancak şu anda mevcutsa (ve taşınma sürecinde değilse) siparişin kendisinden alın. tarihe emirler).

 

Bu, işlerin nasıl gittiğini analiz etmeyi kolaylaştırır.


İşlemler ile birlikte pozisyonların durumu, mevcut emirler ve işlem geçmişinin loglanması için eklenebilir. O zaman bütün resim olacak.

 
JRandomTrader :

Ve burada, Deal_add türü için hangi alanların doldurulduğuna ilişkin olarak " Bir ticari işlemin yapısı " referansını yeniden okumaya değer.

Ve sipariş özelliklerini işlemden değil (doldurulmadıkları yerde, ancak sıfırlar da numaralandırma türündeki bazı değerlere karşılık gelir), ancak şu anda mevcutsa (ve taşınma sürecinde değilse) siparişin kendisinden alın. tarihe emirler).

Katılıyorum, biliyordum ama dikkat etmedim. Hatırlatma için teşekkürler.

Bununla birlikte, pozisyonun bir durumda ortaya çıkmadığı, ancak başka bir durumda ortaya çıktığı gerçeğiyle ilgili sorun anlaşılmaz kalmaktadır.

 

Илья Ребенок :

Bununla birlikte, pozisyonun bir durumda ortaya çıkmadığı, ancak başka bir durumda ortaya çıktığı gerçeğiyle ilgili sorun anlaşılmaz kalmaktadır.

Deal_add işleminde bir pozisyon bileti vardı ama pozisyon daha önce yoktu ve aynı anda görünmüyor muydu? Burada anlamak gereklidir.

 
JRandomTrader :

Deal_add işleminde bir pozisyon bileti vardı ama pozisyon daha önce yoktu ve aynı anda görünmüyor muydu? Burada anlamak gereklidir.

daha önce pozisyon yok

 
Илья Ребенок :

daha önce pozisyon yok

İşlemde pozisyon bileti var mıydı?

 
JRandomTrader :

İşlemde pozisyon bileti var mıydı?

Yukarıdaki mesajı yanlış anlamış olabilirim. Pozisyon oldu, daha sonra stop emirleri ile kapatıldı. Yani pozisyon sayısı 0 oldu. Sonra anlaşma işe yaradı ama pozisyon görünmedi.

bu konuda seni anlıyorum. İşlem, pozisyon bileti hakkında bilgi içeriyordu, ancak bu bilet = önceki siparişin bileti. Genel olarak olduğu gibi, doğru anladıysam ağ modunda olmalı.

Position: 82675534
 
Илья Ребенок :

Yukarıdaki mesajı yanlış anlamış olabilirim. Pozisyon oldu, daha sonra stop emirleri ile kapatıldı. Yani pozisyon sayısı 0 oldu. Sonra anlaşma işe yaradı ama pozisyon görünmedi.

bu konuda seni anlıyorum. İşlem, pozisyon bileti hakkında bilgi içeriyordu, ancak bu bilet = önceki siparişin bileti. Genel olarak olduğu gibi, doğru anladıysam ağ modunda olmalı.

Sembol pozisyonu (tüm robotların ve manuel işlemlerin birlikte toplamı) 0.0 olursa, bir sonraki işlem yeni bir biletle (==sipariş bileti) yeni bir pozisyon açar (DEAL_ENTRY_IN).

Aslında bana öyle geliyor ki, netleştirme yaparken pozisyona hiç bakmanıza gerek yok - her robot "kendini" hesaba katmalı - siparişlerindeki işlemlerin sonuçları olarak.

 

Pozisyonların ve DEAL_ENTRY bayraklarının varlığı hiçbir şekilde mantığa katılmamalıdır.

Yeni anlaşmaların ve mevcut siparişlerin büyüsüne ve yorumlarına, kendinizin / başkasının tanımlayıcıları olarak bakmanız yeterlidir.


Gösterilen çalışma kodu. Tam orada.

Sorunu OnTradeTransaction aracılığıyla çözme girişimi, tuzakların sayısı hakkında zayıf bir fikirdir. Belirli bir görevde hangisini atlamak hala mümkündür. Ancak görev biraz değiştirilir değiştirilmez, OnTradeTransaction uygulaması sırasında tüm mantık ihlal edilir.

Geliştiriciler bir olay ticaret modeli yaptı, ancak tek bir ticaret çalışma örneği sağlamadı. Tam bir eşek olduğu için, kodun neye döküldüğü ve her bir örneğe ne kadar bağlı olduğu.

Bu nedenle, senkronize ticaret işlemlerine ve OnTrade işlevine bakmanızı tavsiye ederim. Orada her şey çok daha basit ve mantık değişiklikler için çok esnek. Üstelik daha güvenilir.


Async+Transactions'a geçmek, yüksek seviyeli bir dilden montaj diline geçmek gibidir. Onlar. TS oluşturmanın en son aşamasında, TAMAMEN araştırıldığında, GERÇEK için hazır olduğunda yapılmalıdır ve geriye kalan son şey, ticaret mantığını DEĞİŞTİRMEDEN ticaret işlemlerini hızlandırmaktır.