
في هذه السلسلة من المقالات ، سننشئ بيئة للعمل مع تبادل اختبار ومراسلة معها ، وسوف نفهم شروط التبادل الأساسية ودمج المعرفة في الممارسة.
UPD : الهدف الرئيسي من هذه السلسلة من المقالات هو النظر بشكل شامل في هيكل التبادل والمفاهيم الأساسية (المعاملات ، العقود الآجلة ، وما إلى ذلك) كجزء من بروتوكول FIX . لن يكون هناك ربط بأي تبادل محدد ، وسوف نستخدم مثال خادم جاهز (محاكي التبادل) وسنقوم في المستقبل بتنفيذ عميل يمكن تعديله للتفاعل مع تبادل حقيقي مثير للاهتمام بالنسبة لك.
لتهيئة كل ما تحتاجه ، ستحتاج فقط إلى معرفة البرمجة الأساسية والقدرة على استخدام Git.
لاختبار الرسائل نحتاج:
- تطبيق بروتوكول FIX: على سبيل المثال ، QuickFix هو تطبيق مفتوح في C ++ (هناك أيضًا QuickFix في Java (QuickFix / J) و C # (QuickFix / N) و Go (QuickFix / Go)) ؛
- , ( Open Source Java – QuikFIX/J);
- ( , , MiniFIX).
FIX, . FIX 4.2.
FIXFIX , . , . 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_CLIENT – EXEC. (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.
الآن يمكنك اختبار إرسال أنواع مختلفة من الرسائل باستخدام MiniFIX. بالطبع ، للعمل مباشرة مع تبادل حقيقي ، من الأفضل كتابة تنفيذ العميل الخاص بك (على سبيل المثال ، في Java أو Go) أو استخدام منصة تداول. ولكن من أجل فهم مواصفات الرسائل وفهم كيفية تأليفها بشكل صحيح ، فإن بيئة العمل هذه كافية تمامًا. في الجزء التالي ، سأخبرك عن الأدوات المالية التي يتم تداولها في البورصة وكيفية تحديد المعلمات لهذه الأدوات بشكل صحيح عند وضع أمر التداول. بالنسبة لأولئك المهتمين بالتفاصيل الفنية وكتابة عميلهم الخاص ، أخطط لكتابة مقال منفصل.