|
68 | 68 | "outputs": [], |
69 | 69 | "source": [ |
70 | 70 | "# you can use two separate config files for QUOTE and TRADE\n", |
71 | | - "with open(\"config-trade.json\") as configFile:\n", |
| 71 | + "with open(\"config-quote.json\") as configFile:\n", |
72 | 72 | " config = json.load(configFile)" |
73 | 73 | ] |
74 | 74 | }, |
|
115 | 115 | "id": "9e722b92", |
116 | 116 | "metadata": {}, |
117 | 117 | "source": [ |
118 | | - "Now let's set and client call backs that will be used by client after it got message received/connected/disconnected:" |
| 118 | + "We are going to:\n", |
| 119 | + "\n", |
| 120 | + "1. Send a log on requst\n", |
| 121 | + "2. After receiving log on response we send security list request\n", |
| 122 | + "3. Then if host is Trade we create a new market order for second symbol otherwise we send a mrket data request for the second symbol\n", |
| 123 | + "\n", |
| 124 | + "Let's set the client call backs that will be used by client after it got message received/connected/disconnected:" |
119 | 125 | ] |
120 | 126 | }, |
121 | 127 | { |
|
137 | 143 | " send(securityListRequest)\n", |
138 | 144 | " # After receiving the security list we send a market order request by using the security list first symbol\n", |
139 | 145 | " elif messageType == \"y\":\n", |
140 | | - " newOrderSingle = NewOrderSingle(config)\n", |
141 | | - " newOrderSingle.ClOrdID = \"B\"\n", |
142 | 146 | " # We use getFieldValue to get all symbol IDs, it will return a list in this case\n", |
143 | 147 | " # because the symbol ID field is repetitive\n", |
144 | 148 | " symboldIds = responseMessage.getFieldValue(55)\n", |
145 | | - " newOrderSingle.Symbol = symboldIds[0]\n", |
146 | | - " newOrderSingle.Side = 1\n", |
147 | | - " newOrderSingle.OrderQty = 1000\n", |
148 | | - " newOrderSingle.OrdType = 1\n", |
149 | | - " newOrderSingle.Designation = \"From Jupyter\"\n", |
150 | | - " send(newOrderSingle)\n", |
| 149 | + " if config[\"TargetSubID\"] == \"TRADE\":\n", |
| 150 | + " newOrderSingle = NewOrderSingle(config)\n", |
| 151 | + " newOrderSingle.ClOrdID = \"B\"\n", |
| 152 | + " newOrderSingle.Symbol = symboldIds[1]\n", |
| 153 | + " newOrderSingle.Side = 1\n", |
| 154 | + " newOrderSingle.OrderQty = 1000\n", |
| 155 | + " newOrderSingle.OrdType = 1\n", |
| 156 | + " newOrderSingle.Designation = \"From Jupyter\"\n", |
| 157 | + " send(newOrderSingle)\n", |
| 158 | + " else:\n", |
| 159 | + " marketDataRequest = MarketDataRequest(config)\n", |
| 160 | + " marketDataRequest.MDReqID = \"a\"\n", |
| 161 | + " marketDataRequest.SubscriptionRequestType = 1\n", |
| 162 | + " marketDataRequest.MarketDepth = 1\n", |
| 163 | + " marketDataRequest.NoMDEntryTypes = 1\n", |
| 164 | + " marketDataRequest.MDEntryType = 0\n", |
| 165 | + " marketDataRequest.NoRelatedSym = 1\n", |
| 166 | + " marketDataRequest.Symbol = symboldIds[1]\n", |
| 167 | + " send(marketDataRequest)\n", |
151 | 168 | " # after receiving the new order request response we stop the reactor\n", |
152 | 169 | " # And we will be disconnected from API\n", |
153 | 170 | " elif messageType == \"8\" or messageType == \"j\":\n", |
|
0 commit comments