تعلم التداول في البورصة. الجزء الأول: إعداد بيئة اختبار


في هذه السلسلة من المقالات ، سننشئ بيئة للعمل مع تبادل اختبار ومراسلة معها ، وسوف نفهم شروط التبادل الأساسية ودمج المعرفة في الممارسة.


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.


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.

الآن يمكنك اختبار إرسال أنواع مختلفة من الرسائل باستخدام MiniFIX. بالطبع ، للعمل مباشرة مع تبادل حقيقي ، من الأفضل كتابة تنفيذ العميل الخاص بك (على سبيل المثال ، في Java أو Go) أو استخدام منصة تداول. ولكن من أجل فهم مواصفات الرسائل وفهم كيفية تأليفها بشكل صحيح ، فإن بيئة العمل هذه كافية تمامًا. في الجزء التالي ، سأخبرك عن الأدوات المالية التي يتم تداولها في البورصة وكيفية تحديد المعلمات لهذه الأدوات بشكل صحيح عند وضع أمر التداول. بالنسبة لأولئك المهتمين بالتفاصيل الفنية وكتابة عميلهم الخاص ، أخطط لكتابة مقال منفصل.


All Articles