Belajar berdagang di bursa. Bagian satu: mengatur lingkungan pengujian


Dalam seri artikel ini, kami akan menciptakan lingkungan untuk bekerja dengan pertukaran tes dan berkirim pesan dengannya, kami akan memahami ketentuan pertukaran dasar dan menggabungkan pengetahuan dalam praktiknya.


UPD : Tujuan utama dari rangkaian artikel ini adalah untuk secara komprehensif mempertimbangkan struktur pertukaran dan konsep dasar (transaksi, futures, dll.) Sebagai bagian dari protokol FIX . Tidak akan ada ikatan dengan pertukaran spesifik, kami akan menggunakan contoh server siap pakai (exchange simulator) dan di masa depan kami akan mengimplementasikan klien yang dapat dimodifikasi untuk berinteraksi dengan pertukaran nyata yang menarik bagi Anda.


Untuk mengkonfigurasi semua yang Anda butuhkan, Anda hanya perlu pengetahuan pemrograman dasar dan kemampuan untuk menggunakan Git.


Untuk menguji pesan yang kami butuhkan:


  • Implementasi protokol FIX: misalnya, QuickFix adalah implementasi terbuka di C ++ (ada juga QuickFix di Java (QuickFix / J), C # (QuickFix / N) dan Go (QuickFix / Go));
  • , ( Open Source Java – QuikFIX/J);
  • ( , , MiniFIX).

FIX, . FIX 4.2.


FIX

FIX , . , . FIX 4.2. FIX- / , .


FIX-: ( tag=value) XML.


FIX- , , , ASCII- SOH (0x01). , , Market 10000 Microsoft ( SOH ):


8=FIX.4.2 9=103 35=D 34=3 49=BANZAI 52=20121105-23:24:42 56=EXEC 11=1352157882577 21=1 38=10000 40=1 54=1 55=MSFT 59=0 10=062.


FIX-: (Message Header), (Message Body) (Message Trailer).



– <8>BeginString, FIX- (8=FIX.4.2). <9> BodyLength <35> MsgType. , D (35=D), — V (35=V).


, :


  • <49> SenderCompID – (, );
  • <56> TargetCompID – ;
  • <56> SendingTime – UTC- ( YYYYMMDD-HH:MM:SS YYYYMMDD-HH:MM:SS.sss);
  • <34> MsgSeqNum – ( 1 ).

MsgSeqNum 1, .


, : , , .. , .


FIX-. , .

– (<10> CheckSum), . . , .



FIX initiator executor/acceptor . , QuikFIX/J quickfixj-examples: quickfix.examples.executor .


:



resources/quickfix/examples/executor/executor.cfg, :


[default]
ConnectionType=acceptor // ,    
SenderCompID=EXEC //  
TargetCompID=BANZAI //  

[session]
BeginString=FIX.4.2 //   - FIX4.2
SocketAcceptPort=9878 //   

MINIFIX_CLIENT ( ).


MiniFIX . Session :



ID – MINIFIX_CLIENTEXEC. (FIX 4.2) .


  • : , , ; , , ;
  • : Logon (MsgType = A) ; .

Connect . 4.2 9878, , localhost:9878:



, localhost IP- .

Logon- Logon-:



“ ”, , :


MiniFIX Transactions , ( , New):



( — , — ).


New Order Single (35=D).

, MiniFIX , , , New, Edit, Delete. , 38=1000 . 200:



Send, , :



  • SocketConnectPort;
  • – , SenderCompID TargetCompID ;
  • – ;
  • – ; Reset Sequence MiniFIX, ;
  • (, ); <3> Reject 58:


  • MiniFIX: ” – , “” ;
  • MiniFIX: Logon- – , , Logon.

Sekarang Anda dapat menguji pengiriman berbagai jenis pesan menggunakan MiniFIX. Tentu saja, untuk bekerja secara langsung dengan pertukaran nyata, lebih baik menulis implementasi klien Anda sendiri (misalnya, di Jawa atau Go) atau menggunakan terminal perdagangan. Tetapi untuk memahami spesifikasi pesan dan memahami cara menyusunnya dengan benar, lingkungan kerja seperti itu sudah cukup. Pada bagian selanjutnya saya akan memberi tahu Anda instrumen keuangan apa yang diperdagangkan di bursa saham dan bagaimana menentukan dengan benar parameter untuk instrumen-instrumen ini ketika menempatkan pesanan perdagangan. Bagi mereka yang tertarik pada detail teknis dan menulis klien mereka sendiri, saya berencana untuk menulis artikel terpisah.


All Articles