Bir piyasa emri nasıl doğru bir şekilde açılır? - sayfa 4

 
Gennady Mazur :
evet güzel tavsiye...

tekrarlıyorum

Sonuçları kontrol etmeniz gerekir. sipariş.

Bir sipariş verilmişse, bu bir anlaşmanın yapılmış olduğu anlamına gelmez.

Ayrıca , siparişin durumunu ve tarihte görünüp görünmediğini de kontrol etmeniz gerekir.

Borsa pozisyonlarla çalışmaz, sadece emirlerle çalışır.

 
Gennady Mazur :

Geçenlerde siparişlerin yeniden açılması konusunu gündeme getirdim. Çünkü sorunu çözdüğümü sanıyordum. Bir hafta boyunca her şey çok iyi çalıştı. Ancak bugün sadece açarken benzer bir sorunla karşılaştım.
Finam'da, Açılış 9'da birçok emir açıldı... gerçi her durumda sadece bir emir açılmış olmalıydı.

İşte EA'dan bir kod parçası

    

onlar. Başarılı bir işlemden sonra , başlangıçta 0'a eşit olan OpenOrders değişkeninin arttığı koddan görülebilir.

ve 0'dan büyükse, o zaman siparişin başka açılması olmamalıdır, ancak sipariş yığınının tamamı Sipariş1 yorumuyla açıktır.

Bir sipariş açma işlevinde, olumlu bir yanıt olup olmadığını ve bir sipariş biletinin alınıp alınmadığını kontrol ediyorum , ancak bir nedenden dolayı bu işlev, siparişin gerçekten ayarlanmış olmasına rağmen false döndürüyor.

Neyin yanlış olduğunu açıklayın, bu problem nasıl çözülür?

Söyle bana, bu kodu hangi pazar için yazıyorsun?
 
prostotrader :
Söyle bana, bu kodu hangi pazar için yazıyorsun?
Degis tokus icin
 
Gennady Mazur :
Degis tokus icin
Tamam, bir bakacağım...
 
Sergey Chalyshev :

tekrarlıyorum

Ayrıca , siparişin durumunu ve tarihte görünüp görünmediğini de kontrol etmeniz gerekir.

Borsa pozisyonlarla çalışmaz, sadece emirlerle çalışır.

Pekala, Sergey, bak .... bu, isteğin sonucuyla ilgili belgelerden

anlaştık mı

Tamamlanmışsa, anlaşma bileti. Bir ticaret işlemi sırasında rapor edildi TRADE_ACTION_DEAL

sipariş

Yerleştirildiyse bilet sipariş edin. TRADE_ACTION_PENDING ticaret operasyonu sırasında rapor edildi


Bekleyen bir siparişim yok, TRADE_ACTION_DEAL kullanıyorum

Muhtemelen limit tüccarları olarak çalışıyorsunuz, o zaman her şey doğru .... ve işte mevcut fiyattan piyasadan giriş.
 
Gennady Mazur :

Pekala, Sergey, bak .... bu, isteğin sonucuyla ilgili belgelerden

anlaştık mı

Tamamlanmışsa, anlaşma bileti. Bir ticaret işlemi sırasında rapor edildi TRADE_ACTION_DEAL

sipariş

Yerleştirildiyse bilet sipariş edin. TRADE_ACTION_PENDING ticaret operasyonu sırasında rapor edildi


Bekleyen bir siparişim yok, TRADE_ACTION_DEAL kullanıyorum

Muhtemelen limit tüccarları olarak çalışıyorsunuz, o zaman her şey doğru .... ve işte mevcut fiyattan piyasadan giriş.
Cevabımı tekrar okuyun veya servis masasına yazın.
 
Vladimir Karputov :

SetTypeDoldurma

SetTypeDoldurma

Yürütme için sipariş türünü ayarlar


İhtiyacınız olanı yükleyin.

Bu arada, siparişi baskı ile göndermenin sonuçlarını kontrol ettim.

yani bilet her durumda 0'a eşit çıkıyor

   bool res= false ;
  res= OrderSend (Request,Results);
   if (res)
  {
     Print ( _Symbol +" Test True order "+( string )Results.deal);
     if (Results.deal> 0 ) return ( true );
     else return ( false );
  }
     Print ( _Symbol +" Test False order "+( string )Results.deal);
   return ( false );
 
Gennady Mazur :

Bu arada, siparişi baskı ile göndermenin sonuçlarını kontrol ettim .

yani bilet her durumda 0'a eşit çıkıyor

İlerleme devam ediyor...



 
Gennady Mazur :

Bu arada, siparişin baskı ile gönderilmesinin sonuçlarını kontrol ettim.

yani bilet her durumda 0'a eşit çıkıyor

   bool res= false ;
  res= OrderSend (Request,Results);
   if (res)
  {
     Print ( _Symbol +" Test True order "+( string )Results.deal);
     if (Results.deal> 0 ) return ( true );
     else return ( false );
  }
     Print ( _Symbol +" Test False order "+( string )Results.deal);
   return ( false );

Dönüş kodları nerede? Nasıl anlaşılır - bir hata var mıydı, yok muydu?

Bir örnek verdim: çift koruma ve bir biletin çıktısı ve bir dönüş kodu.

 

Örnek bulamadım. Bunu açıklayayım.

Piyasada emir verirken emrin gerçekleşmesi veya reddedilmesi gerekir (çünkü FOK dolumunuz vardır)

Bu nedenle, bir anlaşma için beklemenize gerek yok, ancak bir BİLET almanız gerekiyor.

Bir bilet aldıktan sonra, bu biletle OnTradeTransaction() 'a "gidin"

TRADE_TRANSACTION_HISTORY_ADD'yi dinleyin çünkü piyasa emirleri yine de tarihe karışıyor

ve siparişe ne olduğunu görmek için bilete bakın.

Neden: