Created
March 18, 2019 06:37
-
-
Save filip-seedcx/aca7315f1e35b5bebe306740f47c24e1 to your computer and use it in GitHub Desktop.
Test demonstrating FIX Gateway's routing based on target comp id
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Using Environment cert | |
Using FIX market data config: /home/filipf/src/gw/robocop/tests/config/certfixmd.ini | |
Using default FIX file: defaults.ini | |
Loading defaults from: /home/filipf/src/gw/robocop/tests/defaults.ini | |
onCreate FIX.4.4:T-ROBO5A->SEEDCX | |
onCreate FIX.4.4:T-ROBO5B->SEEDCX | |
FIX.4.4:T-ROBO5A->SEEDCX : SENT ADMIN-LEVEL FIX | |
(begin_string)8=FIX.4.4 | (body_length)9=75 | (msg_type)35=A(logon) | (msg_seq_num)34=1 | (sender_comp_id)49=T-ROBO5A | (sending_time)52=20190318-06:34:57.953 | (target_comp_id)56=SEEDCX | (encrypt_method)98=0(unencrypted) | (heart_bt_int)108=30 | (reset_seq_num_flag)141=Y | (check_sum)10=038 | | |
FIX.4.4:T-ROBO5B->SEEDCX : SENT ADMIN-LEVEL FIX | |
(begin_string)8=FIX.4.4 | (body_length)9=75 | (msg_type)35=A(logon) | (msg_seq_num)34=1 | (sender_comp_id)49=T-ROBO5B | (sending_time)52=20190318-06:34:57.954 | (target_comp_id)56=SEEDCX | (encrypt_method)98=0(unencrypted) | (heart_bt_int)108=30 | (reset_seq_num_flag)141=Y | (check_sum)10=040 | | |
FIX.4.4:T-ROBO5A->SEEDCX : LOGON | |
FIX.4.4:T-ROBO5B->SEEDCX : LOGON | |
FIX.4.4:T-ROBO5A->SEEDCX : SENT APP-LEVEL FIX | |
(begin_string)8=FIX.4.4 | (body_length)9=216 | (msg_type)35=D(new_order_single) | (msg_seq_num)34=2 | (sender_comp_id)49=T-ROBO5A | (sending_time)52=20190318-06:34:59.958 | (target_comp_id)56=SEEDCX | (target_sub_id)57=SCXM | (sender_location_id)142=US,IL | (account)1=T-ROBO5AMA1 | (cl_ord_id)11=AAm1Z7GER8AutgWNNgriXi | (order_qty)38=1.0 | (ord_type)40=2(limit) | (price)44=6990.0 | (sender_sub_id)50=T-ROBO5AMA1TA1 | (side)54=1(buy) | (symbol)55=COSP:BTC/TST | (transact_time)60=20190318-06:34:59 | (order_capacity)528=A(agency) | (cust_order_capacity)582=1(member_own_account) | (manual_order_indicator)1028=Y | (check_sum)10=081 | | |
FIX.4.4:T-ROBO5A->SEEDCX : Received APP message: | |
8=FIX.4.4|9=319|35=8|34=2|49=SEEDCX|50=SCXM|52=20190318-06:34:59.964842906|56=T-ROBO5A|57=T-ROBO5AMA1TA1|142=US,IL|369=2|1=T-ROBO5AMA1|6=0.0|11=AAm1Z7GER8AutgWNNgriXi|14=0.0|17=336300000000007279|37=336300000000000188|38=1.0|39=0|40=2|44=6990.0|54=1|55=COSP:BTC/TST|59=0|60=20190318-06:34:59.963000000|150=0|151=1.0|528=A|582=1|1028=Y|10=044| | |
FIX.4.4:T-ROBO5A->SEEDCX RECEIVED | |
(begin_string)8=FIX.4.4 | (body_length)9=319 | (msg_type)35=8(execution_report) | (msg_seq_num)34=2 | (sender_comp_id)49=SEEDCX | (sender_sub_id)50=SCXM | (sending_time)52=20190318-06:34:59.964842906 | (target_comp_id)56=T-ROBO5A | (target_sub_id)57=T-ROBO5AMA1TA1 | (sender_location_id)142=US,IL | (last_msg_seq_num_processed)369=2 | (account)1=T-ROBO5AMA1 | (avg_px)6=0.0 | (cl_ord_id)11=AAm1Z7GER8AutgWNNgriXi | (cum_qty)14=0.0 | (exec_id)17=336300000000007279 | (order_id)37=336300000000000188 | (order_qty)38=1.0 | (ord_status)39=0(new) | (ord_type)40=2(limit) | (price)44=6990.0 | (side)54=1(buy) | (symbol)55=COSP:BTC/TST | (time_in_force)59=0(day) | (transact_time)60=20190318-06:34:59.963000000 | (exec_type)150=0(new) | (leaves_qty)151=1.0 | (order_capacity)528=A(agency) | (cust_order_capacity)582=1(member_own_account) | (manual_order_indicator)1028=Y | (check_sum)10=044 | | |
--> passed validation | |
=================== MD expect add order. order_id: 336300000000000188 side: Side.buy price: 6990 size: 1 | |
---> MD validation passed | |
FIX.4.4:T-ROBO5A->SEEDCX : SENT APP-LEVEL FIX | |
(begin_string)8=FIX.4.4 | (body_length)9=208 | (msg_type)35=F(order_cancel_request) | (msg_seq_num)34=3 | (sender_comp_id)49=T-ROBO5A | (sending_time)52=20190318-06:34:59.965 | (target_comp_id)56=SEEDCX | (target_sub_id)57=SCXM | (sender_location_id)142=US,IL | (account)1=T-ROBO5AMA1 | (cl_ord_id)11=BVJQ8G5cwvAMUcSXHBGJeB | (orig_cl_ord_id)41=AAm1Z7GER8AutgWNNgriXi | (sender_sub_id)50=T-ROBO5AMA1TA1 | (side)54=1(buy) | (symbol)55=COSP:BTC/TST | (transact_time)60=20190318-06:34:59 | (manual_order_indicator)1028=Y | (check_sum)10=204 | | |
FIX.4.4:T-ROBO5A->SEEDCX : Received APP message: | |
8=FIX.4.4|9=345|35=8|34=3|49=SEEDCX|50=SCXM|52=20190318-06:34:59.968788235|56=T-ROBO5A|57=T-ROBO5AMA1TA1|142=US,IL|369=3|1=T-ROBO5AMA1|6=0.0|11=BVJQ8G5cwvAMUcSXHBGJeB|14=0.0|17=336300000000007281|37=336300000000000188|38=1.0|39=4|40=2|41=AAm1Z7GER8AutgWNNgriXi|44=6990.0|54=1|55=COSP:BTC/TST|59=0|60=20190318-06:34:59.968000000|150=4|151=0.0|528=A|582=1|1028=Y|10=199| | |
FIX.4.4:T-ROBO5A->SEEDCX RECEIVED | |
(begin_string)8=FIX.4.4 | (body_length)9=345 | (msg_type)35=8(execution_report) | (msg_seq_num)34=3 | (sender_comp_id)49=SEEDCX | (sender_sub_id)50=SCXM | (sending_time)52=20190318-06:34:59.968788235 | (target_comp_id)56=T-ROBO5A | (target_sub_id)57=T-ROBO5AMA1TA1 | (sender_location_id)142=US,IL | (last_msg_seq_num_processed)369=3 | (account)1=T-ROBO5AMA1 | (avg_px)6=0.0 | (cl_ord_id)11=BVJQ8G5cwvAMUcSXHBGJeB | (cum_qty)14=0.0 | (exec_id)17=336300000000007281 | (order_id)37=336300000000000188 | (order_qty)38=1.0 | (ord_status)39=4(canceled) | (ord_type)40=2(limit) | (orig_cl_ord_id)41=AAm1Z7GER8AutgWNNgriXi | (price)44=6990.0 | (side)54=1(buy) | (symbol)55=COSP:BTC/TST | (time_in_force)59=0(day) | (transact_time)60=20190318-06:34:59.968000000 | (exec_type)150=4(canceled) | (leaves_qty)151=0.0 | (order_capacity)528=A(agency) | (cust_order_capacity)582=1(member_own_account) | (manual_order_indicator)1028=Y | (check_sum)10=199 | | |
--> passed validation | |
=================== MD expect delete. order_id: 336300000000000188 | |
---> MD validation passed | |
FIX.4.4:T-ROBO5A->SEEDCX : SENT APP-LEVEL FIX | |
(begin_string)8=FIX.4.4 | (body_length)9=224 | (msg_type)35=D(new_order_single) | (msg_seq_num)34=4 | (sender_comp_id)49=T-ROBO5A | (sending_time)52=20190318-06:34:59.968 | (target_comp_id)56=SEEDCX | (target_sub_id)57=SCXS | (sender_location_id)142=US,IL | (account)1=T-ROBO5AMA1 | (cl_ord_id)11=5w1fJ7TixsshxaVj4HrDJ5 | (order_qty)38=1.0 | (ord_type)40=2(limit) | (price)44=6990.0 | (sender_sub_id)50=T-ROBO5AMA1TA1 | (side)54=1(buy) | (symbol)55=COF:BTC/TST:20230424 | (transact_time)60=20190318-06:34:59 | (order_capacity)528=A(agency) | (cust_order_capacity)582=1(member_own_account) | (manual_order_indicator)1028=Y | (check_sum)10=010 | | |
FIX.4.4:T-ROBO5A->SEEDCX : Received APP message: | |
8=FIX.4.4|9=327|35=8|34=4|49=SEEDCX|50=SCXS|52=20190318-06:34:59.985432981|56=T-ROBO5A|57=T-ROBO5AMA1TA1|142=US,IL|369=4|1=T-ROBO5AMA1|6=0.0|11=5w1fJ7TixsshxaVj4HrDJ5|14=0.0|17=336300000000000123|37=336300000000000003|38=1.0|39=0|40=2|44=6990.0|54=1|55=COF:BTC/TST:20230424|59=0|60=20190318-06:34:59.978000000|150=0|151=1.0|528=A|582=1|1028=Y|10=204| | |
FIX.4.4:T-ROBO5A->SEEDCX RECEIVED | |
(begin_string)8=FIX.4.4 | (body_length)9=327 | (msg_type)35=8(execution_report) | (msg_seq_num)34=4 | (sender_comp_id)49=SEEDCX | (sender_sub_id)50=SCXS | (sending_time)52=20190318-06:34:59.985432981 | (target_comp_id)56=T-ROBO5A | (target_sub_id)57=T-ROBO5AMA1TA1 | (sender_location_id)142=US,IL | (last_msg_seq_num_processed)369=4 | (account)1=T-ROBO5AMA1 | (avg_px)6=0.0 | (cl_ord_id)11=5w1fJ7TixsshxaVj4HrDJ5 | (cum_qty)14=0.0 | (exec_id)17=336300000000000123 | (order_id)37=336300000000000003 | (order_qty)38=1.0 | (ord_status)39=0(new) | (ord_type)40=2(limit) | (price)44=6990.0 | (side)54=1(buy) | (symbol)55=COF:BTC/TST:20230424 | (time_in_force)59=0(day) | (transact_time)60=20190318-06:34:59.978000000 | (exec_type)150=0(new) | (leaves_qty)151=1.0 | (order_capacity)528=A(agency) | (cust_order_capacity)582=1(member_own_account) | (manual_order_indicator)1028=Y | (check_sum)10=204 | | |
--> passed validation | |
=================== MD expect add order. order_id: 336300000000000003 side: Side.buy price: 6990 size: 1 | |
---> MD validation passed | |
FIX.4.4:T-ROBO5A->SEEDCX : SENT APP-LEVEL FIX | |
(begin_string)8=FIX.4.4 | (body_length)9=216 | (msg_type)35=F(order_cancel_request) | (msg_seq_num)34=5 | (sender_comp_id)49=T-ROBO5A | (sending_time)52=20190318-06:34:59.985 | (target_comp_id)56=SEEDCX | (target_sub_id)57=SCXS | (sender_location_id)142=US,IL | (account)1=T-ROBO5AMA1 | (cl_ord_id)11=3W5ptQHMsfWLxBsc3H5R8D | (orig_cl_ord_id)41=5w1fJ7TixsshxaVj4HrDJ5 | (sender_sub_id)50=T-ROBO5AMA1TA1 | (side)54=1(buy) | (symbol)55=COF:BTC/TST:20230424 | (transact_time)60=20190318-06:34:59 | (manual_order_indicator)1028=Y | (check_sum)10=175 | | |
FIX.4.4:T-ROBO5A->SEEDCX : Received APP message: | |
8=FIX.4.4|9=353|35=8|34=5|49=SEEDCX|50=SCXS|52=20190318-06:35:00.000885410|56=T-ROBO5A|57=T-ROBO5AMA1TA1|142=US,IL|369=5|1=T-ROBO5AMA1|6=0.0|11=3W5ptQHMsfWLxBsc3H5R8D|14=0.0|17=336300000000000125|37=336300000000000003|38=1.0|39=4|40=2|41=5w1fJ7TixsshxaVj4HrDJ5|44=6990.0|54=1|55=COF:BTC/TST:20230424|59=0|60=20190318-06:34:59.994000000|150=4|151=0.0|528=A|582=1|1028=Y|10=102| | |
FIX.4.4:T-ROBO5A->SEEDCX RECEIVED | |
(begin_string)8=FIX.4.4 | (body_length)9=353 | (msg_type)35=8(execution_report) | (msg_seq_num)34=5 | (sender_comp_id)49=SEEDCX | (sender_sub_id)50=SCXS | (sending_time)52=20190318-06:35:00.000885410 | (target_comp_id)56=T-ROBO5A | (target_sub_id)57=T-ROBO5AMA1TA1 | (sender_location_id)142=US,IL | (last_msg_seq_num_processed)369=5 | (account)1=T-ROBO5AMA1 | (avg_px)6=0.0 | (cl_ord_id)11=3W5ptQHMsfWLxBsc3H5R8D | (cum_qty)14=0.0 | (exec_id)17=336300000000000125 | (order_id)37=336300000000000003 | (order_qty)38=1.0 | (ord_status)39=4(canceled) | (ord_type)40=2(limit) | (orig_cl_ord_id)41=5w1fJ7TixsshxaVj4HrDJ5 | (price)44=6990.0 | (side)54=1(buy) | (symbol)55=COF:BTC/TST:20230424 | (time_in_force)59=0(day) | (transact_time)60=20190318-06:34:59.994000000 | (exec_type)150=4(canceled) | (leaves_qty)151=0.0 | (order_capacity)528=A(agency) | (cust_order_capacity)582=1(member_own_account) | (manual_order_indicator)1028=Y | (check_sum)10=102 | | |
--> passed validation | |
=================== MD expect delete. order_id: 336300000000000003 | |
---> MD validation passed | |
FIX.4.4:T-ROBO5A->SEEDCX : SENT APP-LEVEL FIX | |
(begin_string)8=FIX.4.4 | (body_length)9=225 | (msg_type)35=D(new_order_single) | (msg_seq_num)34=6 | (sender_comp_id)49=T-ROBO5A | (sending_time)52=20190318-06:35:00.001 | (target_comp_id)56=SEEDCX | (target_sub_id)57=BAD-TARGET-COMP-ID | (sender_location_id)142=US,IL | (account)1=T-ROBO5AMA1 | (cl_ord_id)11=LeXorJLDQqJwndtLhgA1Vn | (order_qty)38=1.0 | (ord_type)40=2(limit) | (price)44=6990.0 | (sender_sub_id)50=T-ROBO5AMA1TA1 | (side)54=1(buy) | (symbol)55=BTC/TST | (transact_time)60=20190318-06:35:00 | (order_capacity)528=A(agency) | (cust_order_capacity)582=1(member_own_account) | (manual_order_indicator)1028=Y | (check_sum)10=221 | | |
FIX.4.4:T-ROBO5A->SEEDCX RECEIVED | |
(begin_string)8=FIX.4.4 | (body_length)9=189 | (msg_type)35=3(session_reject) | (msg_seq_num)34=6 | (sender_comp_id)49=SEEDCX | (sender_sub_id)50=BAD-TARGET-COMP-ID | (sending_time)52=20190318-06:35:00.003746202 | (target_comp_id)56=T-ROBO5A | (target_sub_id)57=T-ROBO5AMA1TA1 | (sender_location_id)142=US,IL | (last_msg_seq_num_processed)369=6 | (ref_seq_num)45=6 | (text)58=The message contains fields with invalid values. | (ref_tag_id)371=57 | (session_reject_reason)373=5(incorrect_value_for_tag) | (check_sum)10=035 | | |
--> passed validation | |
FIX.4.4:T-ROBO5A->SEEDCX : SENT ADMIN-LEVEL FIX | |
(begin_string)8=FIX.4.4 | (body_length)9=57 | (msg_type)35=5(logout) | (msg_seq_num)34=7 | (sender_comp_id)49=T-ROBO5A | (sending_time)52=20190318-06:35:00.989 | (target_comp_id)56=SEEDCX | (check_sum)10=216 | | |
FIX.4.4:T-ROBO5B->SEEDCX : SENT ADMIN-LEVEL FIX | |
(begin_string)8=FIX.4.4 | (body_length)9=57 | (msg_type)35=5(logout) | (msg_seq_num)34=2 | (sender_comp_id)49=T-ROBO5B | (sending_time)52=20190318-06:35:00.989 | (target_comp_id)56=SEEDCX | (check_sum)10=212 | | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from robocop import Robocop | |
# Scenario: Sending a limit order to multiple target sub ids | |
r = Robocop() | |
def send(target_sub_id, symbol): | |
cl_ord_id = r.gen_id() | |
# New Order | |
r.driver.send("57=" + target_sub_id + "|55=" + symbol + "|35=D|11=" + cl_ord_id + "|40=2|44=6990.0|54=1|38=1.0|528=A|582=1|1028=Y") | |
# Acknowledgement | |
msg1 = r.driver.expect("35=8|11=" + cl_ord_id + "|50=" + target_sub_id + "|55=" + symbol + "|150=0|39=0|54=1|38=1.0|44=6990.0|151=1.0|14=0.0|6=0.0") | |
r.md.expect_buy_order(price=6990, qty=1, order_id=msg1.order_id) | |
cl_ord_id_cancel = r.gen_id() | |
# Cancel Request | |
r.driver.send("35=F|41=" + cl_ord_id + "|57=" + target_sub_id + "|55=" + symbol + "|11=" + cl_ord_id_cancel + "|54=1|1028=Y") | |
# Order Cancelled Acknowledgement | |
r.driver.expect("35=8|11=" + cl_ord_id_cancel + "|50=" + target_sub_id + "|55=" + symbol +"|150=4|39=4|41=" + cl_ord_id + "|44=6990.0|54=1|38=1.0|151=0.0|14=0.0|6=0.0") | |
r.md.expect_delete_order(order_id=msg1.order_id) | |
send('SCXM', 'COSP:BTC/TST') | |
send('SCXS', 'COF:BTC/TST:20230424') | |
# Now let's send to a bad target_comp_id | |
cl_ord_id = r.gen_id() | |
r.driver.send("57=BAD-TARGET-COMP-ID|55=BTC/TST|35=D|11=" + cl_ord_id + "|40=2|44=6990.0|54=1|38=1.0|528=A|582=1|1028=Y") | |
msg1 = r.driver.expect("35=3|50=BAD-TARGET-COMP-ID|58=The message contains fields with invalid values.|371=57|373=5") | |
r.stop() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment