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

 
Replikant_mih # :

Neden olmasın?) En iyi teklif 10.1, 11'de satın alma limiti atıyorum, bardağın hacmi 11'e kadar tüm siparişi doldurmaya yetmiyorsa tüm bardağı 11'e kadar topluyorum veya ortada bir yerde duruyorum . Tam olarak yerine getirilmesi gerekiyorsa, daha fazla örtüşme yapın ve bu kadar. İdeal olarak, izin verilen maksimum fiyata bakın ve tüm hacmi kesin olarak gerçekleştirmek için doğrudan yanıyorsa fiyatı önünde bir yere ayarlayın. Genel olarak, tüm camı büyük bir derinliğe süpürürsem, benim için yanlış bir şey yaptığımın bir işaretidir))).


IOC - peki, yolda her şeyi yaparsın, sonra gerisini kendin çıkarırsın. İşte sizin için IOC). Arbitraj ticareti yapmıyorum, belki bazı dar ayrıntıları anlamıyorum. Tüm uygulamaları belirli bir seviyeye kadar yemek istiyorsanız - peki, ne kadar hacim olduğuna bakabilir ve kalanını çekme seçeneğinden memnun değilseniz istediğiniz kadar atabilirsiniz. Kısacası, görev benim için net değil).

Bunu Quick'te yaptığımı zaten söylemiştim.

procedure TExpert.SellBuySpot;
var
  outStr, id: string ;
  res: long ;
  ErrCode: long ;
  ErrSize: Dword;
  ErrStr: LPSTR;
  Dt: TDateTime;
begin
  FOrder:= 0 ;
  FTransID:= GetTransID();
  id:= IntToStr(TransID);
   case BuySell of
     1 : outStr:= 'ACCOUNT=' + ExpData.SpotAccaunt + '; CLIENT_CODE=' +
               ExpData.Client + '; TYPE=L; TRANS_ID=' + id + '; CLASSCODE=' +
               ExpData.SpotData.ClassCode + '; SECCODE=' + ExpData.SpotData.SecCode +
               '; ACTION=NEW_ORDER; OPERATION=B' + '; PRICE=' +
               FloatToStr(ExpData.SpotData.SellPrice + 10 * ExpData.SpotData.Step) +
               '; QUANTITY=' + FloatToStr(aVol) + ';' ;
     2 : outStr:= 'ACCOUNT=' + ExpData.SpotAccaunt + '; CLIENT_CODE=' +
               ExpData.Client + '; TYPE=L; TRANS_ID=' + id + '; CLASSCODE=' +
               ExpData.SpotData.ClassCode + '; SECCODE=' + ExpData.SpotData.SecCode +
               '; ACTION=NEW_ORDER; OPERATION=S' + '; PRICE=' +
               FloatToStr(ExpData.SpotData.BuyPrice - 10 * ExpData.SpotData.Step) +
               '; QUANTITY=' + FloatToStr(aVol) + ';' ;
  end;
  ErrCode:= 0 ;
  ErrSize:= 0 ;
  ErrStr:= nil;
  res:= T2QSendASyncTrans(LPSTR(AnsiString(outStr)), ErrCode, ErrStr, ErrSize);
   if (res <> TRANS2QUIK_SUCCESS) then
  begin
    FTransID:= 0 ;
    FTransBusy:= false ;
  end else
  begin
    Dt:= now();
    FMemo.Lines.Add(DateToStr(Dt) + ' ' + FormatDateTime( 'hh:mm:ss.zzz' , Now()) +
                               ' --> Ордер ' + ExpData.SpotData.SecCode + ' отправлен.' );
  end;
end;

Fiyatı değiştiririm, ancak bazen (nadiren olur) sipariş, sipariş defterinde kalır, bu nedenle

kaldırılması ve yenisinin takılması ve tekrar izlenmesi gerekiyor - tüm bunlar fazladan zaman.

Ayrıca, siz onu çekmek üzereyken gerçekleşebilir!

Bu nedenle, IOC en güvenilir olanıdır, ancak yerinde değildir

Tahkimde her şey çok basit, eğer bir bacaktan 100 adet aldıysanız, o zaman diğer bacağından 100 adet hemen satmalısınız (anahtar kelime BURADA)

Bu nedenle görev, mümkün olan en kısa sürede , doğru fiyatta ve doğru hacimde bir yanıt işlemi yapmaktır.

Katma

MT-5'te her şey çok daha basit, daha hızlı ve seçenekler var

Örneğin, seçilen fiyatın toplam hacmini + önceki (en iyi fiyatlar) hesapladıktan sonra, SPOT camından geçip en iyi fiyatı hemen almamakta sorun yoktur.

Bu nedenle, MT-5'te Hisse Senedi üzerinde işlem emirlerinin yürütme hızı konusunda endişeliydim.

Ama yine de, sipariş defterinin çarpıcı biçimde değişeceğinin garantisi yok ve fiyatı çok derine alırsanız arbitraj durumunun ötesine geçebilirsiniz!

Quick'ta, SPOT'ta işlem hızı 3-4 ms'lik bir ping ile 240 ila 490 ms arasındaydı!

FORTS'ta, aynı ping ile işlem 4,5 ila 12 ms sürer.

Ne yazık ki, kalelerdeki düşük likidite nedeniyle, önce vadeli işlemleri satmak gerekiyor.

 
prostotrader # :

Bunu Quick'te yaptığımı zaten söylemiştim.

Fiyatı değiştiririm, ancak bazen (nadiren, ancak olur) sipariş, sipariş defterinde kalır, bu nedenle

kaldırılması ve yenisinin takılması ve tekrar izlenmesi gerekiyor - tüm bunlar fazladan zaman.

Ayrıca, siz onu çekmek üzereyken gerçekleşebilir!

Bu nedenle, IOC en güvenilir olanıdır, ancak yerinde değildir

Tahkimde her şey çok basit, eğer bir bacaktan 100 adet aldıysanız, o zaman diğer bacağından 100 adet hemen satmalısınız (anahtar kelime BURADA)

Bu nedenle görev, mümkün olan en kısa sürede , doğru fiyatta ve doğru hacimde bir yanıt işlemi yapmaktır.

Katma

MT-5'te her şey çok daha basit, daha hızlı ve seçenekler var

Örneğin, seçilen fiyatın toplam hacmini + önceki (en iyi fiyatlar) hesapladıktan sonra, SPOT camından geçip en iyi fiyatı hemen almamakta sorun yoktur.

Bu nedenle, MT-5'te Hisse Senedi üzerinde işlem emirlerinin yürütme hızı konusunda endişeliydim.

Ama yine de, sipariş defterinin çarpıcı biçimde değişeceğinin garantisi yok ve fiyatı çok derine alırsanız arbitraj durumunun ötesine geçebilirsiniz!

Quick'ta, SPOT'ta işlem hızı 3-4 ms'lik bir ping ile 240 ile 490 ms arasındaydı!

FORTS'ta aynı ping ile işlem 4,5 ila 12 ms sürer.

Ne yazık ki, kalelerdeki düşük likidite nedeniyle, önce vadeli işlemleri satmak gerekiyor.


Anladım.
Ve ne, bir hisse senedini geleceğe karşı mt5-Quik hızlarında arbitraj yapmak gerçekten mümkün mü? Yoksa yüksek hızlı yoldaşlarla bir şekilde rekabet edebilmek için bir tür "entelektüel" bileşene mi ihtiyacınız var?

 
Replikant_mih # :


Anladım.
Ve ne, bir hisse senedini geleceğe karşı mt5-Quik hızlarında arbitraj yapmak gerçekten mümkün mü? Yoksa yüksek hızlı yoldaşlarla bir şekilde rekabet edebilmek için bir tür "entelektüel" bileşene mi ihtiyacınız var?

Sadece Klasik ise, o zaman Hızlı başa çıkabilir ve denemek istediğim gibi, scalping, o zaman en az MT-5'e (2 terminal) ihtiyacınız var.

 
prostotrader # :

Sadece Klasik ise, o zaman Hızlı başa çıkabilir ve denemek istediğim gibi, scalping, o zaman en az MT-5'e (2 terminal) ihtiyacınız var.

2 Brok'un hem hisse senetlerinin hem de vadeli işlemlerin tek bir terminalde (Açılış gibi) işlem görmesine izin vermemesi veya terminallerin bağlantısı yoluyla her şeyin sizin için çalıştığı ve dolayısıyla hiçbir şeyi yeniden yapmanız gerekmeyecek olması nedeniyle mi? Sadece mt5-Quik yerine mt5-mt5 olacak.

 
Replikant_mih # :

2 Brok'un hem hisse senetlerinin hem de vadeli işlemlerin tek bir terminalde (Açılış gibi) ticaret yapmasına izin vermemesi veya terminallerin bağlantısı yoluyla her şeyin sizin için çalıştığı ve dolayısıyla hiçbir şeyi yeniden yapmanız gerekmeyecek olması nedeniyle mi? Sadece mt5-Quik yerine mt5-mt5 olacak.

Hayır, şimdi sadece Hızlı, MT5 - MT5 yazmaya başladım

Katma

İşte, yazdım.

Şimdi, test etmenin ne zaman mümkün olacağı belli değil ...


 
prostotrader # :

Hayır, şimdi sadece Hızlı, MT5 - MT5 yazmaya başladım

Katma

İşte, yazdım.

Şimdi, test etmenin ne zaman mümkün olacağı belli değil ...


Tebrikler!

Nasıl planlarsınız - Uzman Danışmanınızın her bir vadeli işlem çifti için mi yoksa tüm çiftler için bir Uzman Danışman mı?

 
Andrey Miguzov # :

Tebrikler!

Nasıl planlarsınız - Uzman Danışmanınızın her bir vadeli işlem çifti için mi yoksa tüm çiftler için bir Uzman Danışman mı?

Her çift için kendi istemci-sunucu seti

Tüm vadeli işlemleri ve SPOT'ları tek bir Uzman Danışmandan takip etmek neden bir baş ağrısıdır?

Esasen sadece bir Uzman Danışman (müşteri) vardır, sunucu sadece bir oyuncudur - bir SPOT satın almak için bir koltuk değneği :)

Katma

Uzman Danışman - istemci, gerekli tüm verileri sunucuya otomatik olarak gönderir (alır).

Hangi çift olduğu önemli değil, EA kendini gelecekteki spot çiftine otomatik olarak ayarlar.

 
prostotrader # :

Tüm gelecekleri ve SPOT'ları tek bir Uzman Danışmandan takip etmek neden bir baş ağrısıdır?

Dürüst olmak gerekirse, Açılış'ın kişisel hesabından ve vadeli işlem hissesi ticareti için bir danışmanın hatalarını ayıklarken (scalping değil, alnında bir klasik) ekran görüntülerinizden büyük ölçüde ilham aldım.

Mantıksal olarak, sona ermeden önceki kârın daha yüksek olduğu çifte girmeniz gerekir (komisyon ve gerçek sözleşme sayısı dikkate alınarak).

Buna göre, ilgili tüm çiftleri analiz etmek gerekir. Her çifte bir danışman koyarsanız, birbirlerinden bağımsız olarak çalışacaklardır.

Özellikle bir çiftte pozisyonları kapatırken ve diğerine geçerken gerçekten bir baş ağrısı var. Ayrıca, çok sayıda çift ile yavaşlayacağını düşünüyorum.


Not: Oranın mevcut değeri göz önüne alındığında, yakın gelecekte böyle bir stratejinin karlılığı, borsa açılırsa daha da büyük olacaktır :)

Gördüğüm videodan + Scalping için yazdığınızı kendiniz yazmışsınız. Ortalama giriş ve çıkış ortalama bir EMA (bağlantı) mı yoksa bir şekilde ortalamasını mı alıyorsunuz (gizli değilse)?

 
Andrey Miguzov # :

Ortalama giriş ve çıkış ortalama bir EMA (bağlantı) mı yoksa bir şekilde ortalamasını mı alıyorsunuz (gizli değilse)?

Sır yok, fonksiyon her çağrıldığında aptalca ortalama değeri hesaplıyorum

exp_data.midle_enter = exp_data.midle_enter * exp_data.m_ent_cnt;
  exp_data.m_ent_cnt++;
  exp_data.midle_enter = (exp_data.midle_enter + result)/exp_data.m_ent_cnt; 

exp_data.midle_exit = exp_data.midle_exit * exp_data.m_exit_cnt;
  exp_data.m_exit_cnt++;
  exp_data.midle_exit = (exp_data.midle_exit + result)/exp_data.m_exit_cnt;

Bu veriler, bu çiftin fiyat seviyesini anlamak için gereklidir.

 
prostotrader # :

Sır yok, fonksiyon her çağrıldığında aptalca ortalama değeri hesaplıyorum

Bu veriler, bu çiftin fiyat seviyesini anlamak için gereklidir.

Anlaşıldı, eğer arabaların terminolojisinde ise, bu SMA'dır. Ancak sonuçta, hesaplamanın başlangıcından ne kadar uzak olursa, ortalama değer mevcut değerden o kadar güçlü sapacaktır.

Kabaca, bu ortalama alma yöntemi eski değerleri "unutmaz", çünkü exp_data.m_ent_cnt her çağrıda daha da büyür ve her yeni değerin nihai sonuç üzerinde etkisi giderek azalır.

Gözlemlerime göre gün içinde ortalama değer değişiyor ve oldukça hassas.

Teorik olarak, scalping için EMA daha uygun olmalıdır, kod şöyle olacaktır:

 double EMA_period = 100.0 ; //Период ЕМА для усреднения, тиков
double SmoothFactor = 2.0 /( 1.0 +EMA_period);
 
if (EMA_ask< 0 ) EMA_ask=ask; //первый тик
   else
  EMA_ask=ask*SmoothFactor+EMA_ask*( 1.0 -SmoothFactor);