Borsa. Stoklamak. Ticaret emirlerinin yürütme hızı. - sayfa 14

 
Dmitriy Skub # :
Bu genel gider açısından. Ve tahkim açısından?

tabiki maliyet açısından

kısa hisseler için ödeme yapacaksın

 
Dmitriy Skub # :
Bu genel gider açısından. Ve tahkim açısından?

Klasik arbitraj:

Hisse satın almak ( hiçbir şekilde satmamak ) ve aynı anda hisse miktarında vadeli satış yapmak.

exp_data.fut_equity = long (exp_data.fut_contr * exp_data.fut_contr_size);

=

exp_data.spot_equity = long (exp_data.spot_lot * exp_data.spot_lot_size);
exp_data.fut_equity = exp_data.spot_equity


Stokları kısa tutarsanız, Açıcı yılda %23 oranında sayacı açar.
 

Ama ilginçtir, eğer yapıdaki Stokta ise request.action = TRADE_ACTION_PENDING ; request.action ile değiştirin = TRADE_ACTION_DEAL;


 ulong SpotSetOrder( const long vol, const double price, const ulong magic, const int dir)
{
   MqlTradeRequest request = {}; 
   MqlTradeResult   result = {};
//--- Fill structure
  request.magic = magic;
  request.symbol = Symbol ();
  request.volume = double (vol); 
  request.type_filling = ORDER_FILLING_RETURN ;
  request.type_time = ORDER_TIME_DAY ;
   request.action = TRADE_ACTION_PENDING ;
  request.price = price;
  request.comment = "Отложенный ордер" ;
   if (dir == BUY) request.type = ORDER_TYPE_BUY_LIMIT ;
   else
   if (dir == SELL) request.type = ORDER_TYPE_SELL_LIMIT ;
   else return ( 0 );
   if ( OrderSend (request, result) == true )
  {
     if ((result.retcode == TRADE_RETCODE_PLACED ) || (result.retcode == TRADE_RETCODE_DONE ))
    {
       return (result.order);
    }
     else Print ( "Ордер не размешен на Бирже!" );
  }
   else Print ( "Ордер не отправлен!" );
   return ( 0 );
}


Emir daha hızlı yerine getirilecek mi, uygulanmayacak ?

 
prostotrader TRADE_ACTION_PENDING ; request.action ile değiştirin = TRADE_ACTION_DEAL;



Emir daha hızlı yerine getirilecek mi, uygulanmayacak ?

Sipariş defterinden güncel fiyatı belirtirseniz daha hızlı olmayacağını düşünüyorum. Ama kayma olabilir. Her durumda, bunu açıcının demosunda gördüm.

 
Alexey Viktorov TRADE_ACTION_ BEKLEMEDE - Belirtilen koşullar altında işlem yapmak için bir işlem emri ayarlayın (bekleyen emir)

TRADE_ACTION_DEAL - Belirtilen parametrelerle anında işlem için bir ticaret emri verin (piyasa emri verin)

Görünüşe göre TRADE_ACTION_DEAL siparişinin daha hızlı yürütülmesi gerekiyor.

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Типы торговых операций - Торговые константы - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
prostotrader TRADE_ACTION_ BEKLEMEDE - Belirtilen koşullar altında işlem yapmak için bir işlem emri ayarlayın (bekleyen emir)

TRADE_ACTION_DEAL - Belirtilen parametrelerle anında işlem için bir ticaret emri verin (piyasa emri verin)

Görünüşe göre TRADE_ACTION_DEAL siparişinin daha hızlı yürütülmesi gerekiyor.

Arama emri olmadan bundan kurtulmanın yolu yok. Anında yürütme, yalnızca mevcut fiyattan anlamına gelir.   Ardından, pozisyon kimliğine göre siparişlerin bir listesini alabilirsiniz, ancak tüm mülkler mevcut olmayacaktır. Şimdi başka neyin eksik olduğunu hatırlamıyorum ama siparişin fiyatı kesinlikle orada değil.

İşte demoda sıkışmış bir pozisyon. bu kod

 /********************Script program start function*******************/
void OnStart ()
 {
   int posTotal = PositionsTotal ();
   ulong posTicket = PositionGetTicket ( 0 );
   long posID = PositionGetInteger ( POSITION_IDENTIFIER );
   HistorySelectByPosition (posID);
   int ordTotal = HistoryOrdersTotal ();
   for ( int i = 0 ; i < ordTotal; i++)
   {
     ulong ordTicket = HistoryOrderGetTicket (i);
     Print ( "тикет ордера " , ordTicket,
           " время " , ( datetime ) HistoryOrderGetInteger (ordTicket, ORDER_TIME_SETUP ), 
           " цена " , HistoryOrderGetDouble (ordTicket, ORDER_PRICE_OPEN ),
           " установлен " , EnumToString (( ENUM_ORDER_REASON ) HistoryOrderGetInteger (ordTicket, ORDER_REASON )));
   }
 } /*******************************************************************/

sonuç

 2022.04 . 08 09 : 30 : 28.996 ! 00 (EURUSD,M1) тикет ордера 178273170 время 2022.03 . 21 18 : 28 : 09 цена 0.0 установлен ORDER_REASON_EXPERT

forex değil...


Katma:

Eh, evet ... Görünüşe göre hemen her şeyi doğru anlamadım ...

Bu durumda, bekleyen bir emirde emir defterindeki en iyi fiyata eşit bir fiyat verirseniz, bunun piyasa emri vermekle eşdeğer olduğunu anlamanız gerekir.

 
Alexey Viktorov # :

Bu durumda, bekleyen bir emirde emir defterindeki en iyi fiyata eşit bir fiyat verirseniz, bunun piyasa emri vermekle eşdeğer olduğunu anlamanız gerekir.

Bu, bardakta yeterli hacim varsa geçerlidir.

 
JRandomTrader # :

Bu, bardakta yeterli hacim varsa geçerlidir.

Bütün bunların gerçek hayatta test edilmesi gerekiyor. Muhtemelen belirtilen, en iyi fiyatta hacim eksikliği olması durumunda, bir sonrakinden eklenecektir.

Ancak, bir danışmanın çalışmasından bahsediyorsak, o zaman hiçbir şey, en iyi fiyata yeterli hacim yoksa, mevcut hacmi açın ve ardından açılışı yeni en iyi fiyattan tekrarlayın, gerisi koşulunu koymamızı hiçbir şey engelleyemez. hacminin. Evet, en azından do while döngüsünde kaç kez.

 
Alexey Viktorov # :

Bütün bunların gerçek hayatta test edilmesi gerekiyor. Muhtemelen belirtilen, en iyi fiyatta hacim eksikliği olması durumunda, bir sonrakinden eklenecektir.

Ancak, bir danışmanın çalışmasından bahsediyorsak, o zaman hiçbir şey, en iyi fiyata yeterli hacim yoksa, mevcut hacmi açın ve ardından açılışı yeni en iyi fiyattan tekrarlayın, gerisi koşulunu koymamızı hiçbir şey engelleyemez. hacminin. Evet, en azından do while döngüsünde kaç kez.

Hacim eksikliği durumunda, doldurma tipine bağlıdır - DÖNÜŞ için, geri kalanıyla birlikte limit potu bardağa yerleştirilecektir.

Bu arada, RETURN, TRADE_ACTION_DEAL ve sıfır fiyat içeren bir piyasa emri verirseniz, TRADE_ACTION_PENDING ve çubuk fiyat ile başka bir TRADE_TRANSACTION_REQUEST işlemi görebilirsiniz.

DOM döngüsü ile ilgili olarak, bu sadece düşük likit olanlarda çalışacaktır, aksi takdirde hız yeterli olmayacaktır. Burada sıkma hızına sahip, asenkron gönderen, ağır işlemleri mümkün olduğunca reddeden, string ile çalışan ve geçmişe erişmeden çalışan bir scalper yazdım. Ama yine de, ping'imle 10-12 ms'nin bir bardak için zamanı yok.

 

Göründüğü kadar garip, ancak TRADE_ACTION_DEAL ile birçok kez daha hızlı çalışıyor, sadece fiyat her zaman en iyisi olacak gibi görünüyor ,

bardakta maksimum (minimum) olarak ayarlanmış olmasına rağmen


Neden: