tradx 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tradx-0.1.0/.gitignore +15 -0
- tradx-0.1.0/.vscode/settings.json +7 -0
- tradx-0.1.0/PKG-INFO +69 -0
- tradx-0.1.0/README.md +56 -0
- tradx-0.1.0/examples/example1.log +60 -0
- tradx-0.1.0/examples/example1.py +110 -0
- tradx-0.1.0/examples/example2.log +88 -0
- tradx-0.1.0/examples/example2.py +170 -0
- tradx-0.1.0/pyproject.toml +22 -0
- tradx-0.1.0/src/tradx/__init__.py +2 -0
- tradx-0.1.0/src/tradx/algoContainer.py +90 -0
- tradx-0.1.0/src/tradx/baseClass/baseAlgo.py +338 -0
- tradx-0.1.0/src/tradx/baseClass/candleData.py +89 -0
- tradx-0.1.0/src/tradx/baseClass/cmInstrument.py +84 -0
- tradx-0.1.0/src/tradx/baseClass/futureInstrument.py +74 -0
- tradx-0.1.0/src/tradx/baseClass/index.py +24 -0
- tradx-0.1.0/src/tradx/baseClass/instrumentPropertyChangeData.py +14 -0
- tradx-0.1.0/src/tradx/baseClass/ltpData.py +89 -0
- tradx-0.1.0/src/tradx/baseClass/ltpPartialData.py +108 -0
- tradx-0.1.0/src/tradx/baseClass/marketDepthData.py +126 -0
- tradx-0.1.0/src/tradx/baseClass/marketStatusData.py +110 -0
- tradx-0.1.0/src/tradx/baseClass/openInterestData.py +84 -0
- tradx-0.1.0/src/tradx/baseClass/openInterestPartialData.py +47 -0
- tradx-0.1.0/src/tradx/baseClass/optionsInstrument.py +279 -0
- tradx-0.1.0/src/tradx/baseClass/order.py +27 -0
- tradx-0.1.0/src/tradx/baseClass/orderEvent.py +90 -0
- tradx-0.1.0/src/tradx/baseClass/position.py +46 -0
- tradx-0.1.0/src/tradx/baseClass/positionEvent.py +84 -0
- tradx-0.1.0/src/tradx/baseClass/touchLineData.py +201 -0
- tradx-0.1.0/src/tradx/baseClass/touchLinePartialData.py +109 -0
- tradx-0.1.0/src/tradx/baseClass/tradeConversionEvent.py +80 -0
- tradx-0.1.0/src/tradx/baseClass/tradeEvent.py +153 -0
- tradx-0.1.0/src/tradx/constants/holidays.py +32 -0
- tradx-0.1.0/src/tradx/dualHashMap.py +57 -0
- tradx-0.1.0/src/tradx/interactiveEngine.py +764 -0
- tradx-0.1.0/src/tradx/logger/logger.py +83 -0
- tradx-0.1.0/src/tradx/logger/logger2.py +73 -0
- tradx-0.1.0/src/tradx/marketDataEngine.py +781 -0
- tradx-0.1.0/src/tradx/py.typed +0 -0
- tradx-0.1.0/test/test_candleData.py +25 -0
- tradx-0.1.0/test/test_interactiveEngine.log +11 -0
- tradx-0.1.0/test/test_interactiveEngine.py +77 -0
- tradx-0.1.0/test/test_logger.log +3 -0
- tradx-0.1.0/test/test_logger.py +52 -0
- tradx-0.1.0/test/test_ltpData.py +21 -0
- tradx-0.1.0/test/test_ltpPartailData.py +7 -0
- tradx-0.1.0/test/test_marketDataEngine.log +5 -0
- tradx-0.1.0/test/test_marketDataEngine.py +58 -0
- tradx-0.1.0/test/test_marketDepthData.py +114 -0
- tradx-0.1.0/test/test_marketStatusData.py +39 -0
- tradx-0.1.0/test/test_openInterestData.py +19 -0
- tradx-0.1.0/test/test_openInterestPartialData.py +7 -0
- tradx-0.1.0/test/test_option.py +145 -0
- tradx-0.1.0/test/test_orderEvent.py +56 -0
- tradx-0.1.0/test/test_positionEvent.py +41 -0
- tradx-0.1.0/test/test_touchLineData.py +90 -0
- tradx-0.1.0/test/test_tradeConversionEvent.py +36 -0
- tradx-0.1.0/test/test_tradeEvent.py +57 -0
tradx-0.1.0/.gitignore
ADDED
tradx-0.1.0/PKG-INFO
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: tradx
|
3
|
+
Version: 0.1.0
|
4
|
+
Summary: Add your description here
|
5
|
+
Author-email: "jatin.kumawat" <jatin.kumawat@rmoneyindia.com>
|
6
|
+
Requires-Python: >=3.12
|
7
|
+
Requires-Dist: aiohttp==3.11.11
|
8
|
+
Requires-Dist: pydantic==2.10.4
|
9
|
+
Requires-Dist: pytest==8.3.4
|
10
|
+
Requires-Dist: shortuuid==1.0.13
|
11
|
+
Requires-Dist: xts-api-client==0.1.6
|
12
|
+
Description-Content-Type: text/markdown
|
13
|
+
|
14
|
+
# Changelog
|
15
|
+
|
16
|
+
## [v0.1.2] - *Released: 09-Jan-2025*
|
17
|
+
### Changes:
|
18
|
+
- **examples/example1.py**
|
19
|
+
- Refactored code for improved readability and efficiency.
|
20
|
+
- **examples/example2.log** *(New)*
|
21
|
+
- Log file for the second example script.
|
22
|
+
- **examples/example2.py** *(New)*
|
23
|
+
- Added a script demonstrating two example algorithmic trading strategies using the `tradx` library.
|
24
|
+
- **src/tradx/baseClass/baseAlgo.py**
|
25
|
+
- Added functionality to track orders and positions at the strategy level.
|
26
|
+
- Implemented the ability to square off individual strategy positions intraday without disrupting others.
|
27
|
+
- **src/tradx/baseClass/order.py** *(New)*
|
28
|
+
- Introduced a Pydantic class to manage strategy-level orders.
|
29
|
+
- **src/tradx/baseClass/orderEvent.py**
|
30
|
+
- Fixed a bug in attribute types for 'OrderAverageTradedPrice' and 'OrderAverageTradedPriceAPI.'
|
31
|
+
- **src/tradx/baseClass/position.py** *(New)*
|
32
|
+
- Introduced a Pydantic class to manage strategy-level positions.
|
33
|
+
- **src/tradx/interactiveEngine.py**
|
34
|
+
- Refactored code for better maintainability.
|
35
|
+
- Added functionality to cancel individual orders.
|
36
|
+
|
37
|
+
---
|
38
|
+
|
39
|
+
## [example1 Added] - *Released: 08-Jan-2025*
|
40
|
+
### Changes:
|
41
|
+
- **examples/example1.log** *(New)*
|
42
|
+
- Log file for the first example script.
|
43
|
+
- **examples/example1.py** *(New)*
|
44
|
+
- Example script showcasing basic functionality of the `tradx` library.
|
45
|
+
|
46
|
+
---
|
47
|
+
|
48
|
+
## [v0.1.1] - *Released: 08-Jan-2025*
|
49
|
+
### Changes:
|
50
|
+
- **algoContainer.py**
|
51
|
+
- Fixed the broadcast function to work with the new Pydantic class for candle data.
|
52
|
+
- **baseClass/baseAlgo.py**
|
53
|
+
- Added virtual functions for `unsubscribe`, `initialize`, and `deinitialize`.
|
54
|
+
- **baseClass/index.py** *(New)*
|
55
|
+
- Implemented a separate Pydantic class for index data management.
|
56
|
+
- **marketDataEngine.py**
|
57
|
+
- Made the `subscribe` and `unsubscribe` functions functional.
|
58
|
+
- Updated `loadMaster` function to fetch options and futures master data.
|
59
|
+
- Fixed bugs in `on_event_candle_data_full`.
|
60
|
+
|
61
|
+
---
|
62
|
+
|
63
|
+
## Initial Commit - *Released: 07-Jan-2025*
|
64
|
+
### Changes:
|
65
|
+
- Introduced the `tradx` package.
|
66
|
+
|
67
|
+
---
|
68
|
+
|
69
|
+
This changelog provides a clear and organized view of the changes across different versions.
|
tradx-0.1.0/README.md
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## [v0.1.2] - *Released: 09-Jan-2025*
|
4
|
+
### Changes:
|
5
|
+
- **examples/example1.py**
|
6
|
+
- Refactored code for improved readability and efficiency.
|
7
|
+
- **examples/example2.log** *(New)*
|
8
|
+
- Log file for the second example script.
|
9
|
+
- **examples/example2.py** *(New)*
|
10
|
+
- Added a script demonstrating two example algorithmic trading strategies using the `tradx` library.
|
11
|
+
- **src/tradx/baseClass/baseAlgo.py**
|
12
|
+
- Added functionality to track orders and positions at the strategy level.
|
13
|
+
- Implemented the ability to square off individual strategy positions intraday without disrupting others.
|
14
|
+
- **src/tradx/baseClass/order.py** *(New)*
|
15
|
+
- Introduced a Pydantic class to manage strategy-level orders.
|
16
|
+
- **src/tradx/baseClass/orderEvent.py**
|
17
|
+
- Fixed a bug in attribute types for 'OrderAverageTradedPrice' and 'OrderAverageTradedPriceAPI.'
|
18
|
+
- **src/tradx/baseClass/position.py** *(New)*
|
19
|
+
- Introduced a Pydantic class to manage strategy-level positions.
|
20
|
+
- **src/tradx/interactiveEngine.py**
|
21
|
+
- Refactored code for better maintainability.
|
22
|
+
- Added functionality to cancel individual orders.
|
23
|
+
|
24
|
+
---
|
25
|
+
|
26
|
+
## [example1 Added] - *Released: 08-Jan-2025*
|
27
|
+
### Changes:
|
28
|
+
- **examples/example1.log** *(New)*
|
29
|
+
- Log file for the first example script.
|
30
|
+
- **examples/example1.py** *(New)*
|
31
|
+
- Example script showcasing basic functionality of the `tradx` library.
|
32
|
+
|
33
|
+
---
|
34
|
+
|
35
|
+
## [v0.1.1] - *Released: 08-Jan-2025*
|
36
|
+
### Changes:
|
37
|
+
- **algoContainer.py**
|
38
|
+
- Fixed the broadcast function to work with the new Pydantic class for candle data.
|
39
|
+
- **baseClass/baseAlgo.py**
|
40
|
+
- Added virtual functions for `unsubscribe`, `initialize`, and `deinitialize`.
|
41
|
+
- **baseClass/index.py** *(New)*
|
42
|
+
- Implemented a separate Pydantic class for index data management.
|
43
|
+
- **marketDataEngine.py**
|
44
|
+
- Made the `subscribe` and `unsubscribe` functions functional.
|
45
|
+
- Updated `loadMaster` function to fetch options and futures master data.
|
46
|
+
- Fixed bugs in `on_event_candle_data_full`.
|
47
|
+
|
48
|
+
---
|
49
|
+
|
50
|
+
## Initial Commit - *Released: 07-Jan-2025*
|
51
|
+
### Changes:
|
52
|
+
- Introduced the `tradx` package.
|
53
|
+
|
54
|
+
---
|
55
|
+
|
56
|
+
This changelog provides a clear and organized view of the changes across different versions.
|
@@ -0,0 +1,60 @@
|
|
1
|
+
|2025-01-08 11:02:32,891|INFO|marketDataEngine.__init__|Market Data Engine Object initialized.|
|
2
|
+
|2025-01-08 11:02:32,891|INFO|interactiveEngine.__init__|Interactive Engine Object initialized.|
|
3
|
+
|2025-01-08 11:02:33,095|INFO|marketDataEngine.login|Login successful.|
|
4
|
+
|2025-01-08 11:02:33,322|INFO|marketDataEngine.login|Exchange to exchange segments mapping completed.|
|
5
|
+
|2025-01-08 11:02:36,796|INFO|marketDataEngine.login|Index to exchange instrument id mapping completed.|
|
6
|
+
|2025-01-08 11:02:38,130|INFO|marketDataEngine.on_connect|Market Data Socket connected successfully!|
|
7
|
+
|2025-01-08 11:02:40,072|INFO|marketDataEngine.loadMaster|Options Contract Fetched: Sample - ExchangeSegment ExchangeInstrumentID InstrumentType Name Description Series ... StrikePrice OptionType DisplayName PriceNumerator PriceDenominator DetailedDescription
|
8
|
+
0 NSEFO 130764 2 MCX MCX25MAR4800CE OPTSTK ... 4800 3 MCX 27MAR2025 CE 4800 1 1 MCX25MAR4800CE
|
9
|
+
|
10
|
+
[1 rows x 23 columns]|
|
11
|
+
|2025-01-08 11:02:40,082|INFO|marketDataEngine.loadMaster|Futures Contract Fetched: Sample - ExchangeSegment ExchangeInstrumentID InstrumentType Name Description ... ContractExpiration DisplayName PriceNumerator PriceDenominator DetailedDescription
|
12
|
+
0 NSEFO 36700 1 061NSETEST 061NSETEST36DECFUT ... 2036-11-27T14:30:00 061NSETEST 27NOV2036 1 1 061NSETEST36DECFUT
|
13
|
+
|
14
|
+
[1 rows x 21 columns]|
|
15
|
+
|2025-01-08 11:02:40,667|INFO|marketDataEngine.loadMaster|Cash Market Contract Fetched: Sample - ExchangeSegment ExchangeInstrumentID InstrumentType Name Description ... PriceDenominator DetailedDescription ExtendedSurvlndicator Cautionlndicator GSMIndicator
|
16
|
+
0 NSECM 12018 8 SUZLON SUZLON-EQ ... 1 SUZLON ENERGY LIMITED-EQ 0 -1 -1
|
17
|
+
|
18
|
+
[1 rows x 22 columns]|
|
19
|
+
|2025-01-08 11:02:40,668|INFO|test.__init__|Algorithm initialized with ID: ygtw|
|
20
|
+
|2025-01-08 11:02:41,081|INFO|marketDataEngine.subscribe|Subscribed Quantities: [{'exchangeSegment': 1, 'exchangeInstrumentID': 26000}] on request from ygtw|
|
21
|
+
|2025-01-08 11:03:31,268|INFO|marketDataEngine.on_event_candle_data_full|1505:Candle Data full;{
|
22
|
+
"BarTime": "2025-01-08 11:02:59+00:00",
|
23
|
+
"High": "23588.3",
|
24
|
+
"Low": "23577.4",
|
25
|
+
"Open": "23587.45",
|
26
|
+
"Close": "23579.3",
|
27
|
+
"ExchangeInstrumentID": 26000,
|
28
|
+
"BarVolume": "0"
|
29
|
+
}|
|
30
|
+
|2025-01-08 11:03:31,269|INFO|example1.on_data|Received the bar: {
|
31
|
+
"BarTime": "2025-01-08 11:02:59+00:00",
|
32
|
+
"High": "23588.3",
|
33
|
+
"Low": "23577.4",
|
34
|
+
"Open": "23587.45",
|
35
|
+
"Close": "23579.3",
|
36
|
+
"ExchangeInstrumentID": 26000,
|
37
|
+
"BarVolume": "0"
|
38
|
+
}|
|
39
|
+
|2025-01-08 11:04:31,306|INFO|marketDataEngine.on_event_candle_data_full|1505:Candle Data full;{
|
40
|
+
"BarTime": "2025-01-08 11:03:59+00:00",
|
41
|
+
"High": "23580.5",
|
42
|
+
"Low": "23570.65",
|
43
|
+
"Open": "23579.75",
|
44
|
+
"Close": "23573.2",
|
45
|
+
"ExchangeInstrumentID": 26000,
|
46
|
+
"BarVolume": "0"
|
47
|
+
}|
|
48
|
+
|2025-01-08 11:04:31,307|INFO|example1.on_data|Received the bar: {
|
49
|
+
"BarTime": "2025-01-08 11:03:59+00:00",
|
50
|
+
"High": "23580.5",
|
51
|
+
"Low": "23570.65",
|
52
|
+
"Open": "23579.75",
|
53
|
+
"Close": "23573.2",
|
54
|
+
"ExchangeInstrumentID": 26000,
|
55
|
+
"BarVolume": "0"
|
56
|
+
}|
|
57
|
+
|2025-01-08 11:04:35,435|INFO|marketDataEngine.shutdown|Entering shut down mode.|
|
58
|
+
|2025-01-08 11:04:35,620|INFO|marketDataEngine.unsubscribe|Unsubscribed Quantities: [{'exchangeSegment': 1, 'exchangeInstrumentID': 26000}] on request from ygtw|
|
59
|
+
|2025-01-08 11:04:35,705|INFO|marketDataEngine.shutdown|Logged Out.|
|
60
|
+
|2025-01-08 11:04:35,705|INFO|marketDataEngine.shutdown|Trading Ended.|
|
@@ -0,0 +1,110 @@
|
|
1
|
+
from tradx.marketDataEngine import marketDataEngine
|
2
|
+
from tradx.interactiveEngine import interactiveEngine
|
3
|
+
from tradx.baseClass.baseAlgo import BaseAlgo
|
4
|
+
from tradx.baseClass.candleData import CandleData
|
5
|
+
from tradx.logger.logger import setup_user_logger
|
6
|
+
import asyncio
|
7
|
+
import os
|
8
|
+
from dotenv import load_dotenv
|
9
|
+
|
10
|
+
"""
|
11
|
+
This module defines an example trading strategy that subscribes to the 'NIFTY 50' index
|
12
|
+
and processes the received candle data using the tradx library.
|
13
|
+
Classes:
|
14
|
+
Example1(BaseAlgo): A class that handles the subscription to the 'NIFTY 50' index
|
15
|
+
and processes the received candle data.
|
16
|
+
Functions:
|
17
|
+
main(): The main function that initializes the market data engine, interactive engine,
|
18
|
+
and the example strategy, subscribes to the 'NIFTY 50' index, and runs the
|
19
|
+
strategy for 2 minutes before deinitializing and shutting down the engines.
|
20
|
+
Usage:
|
21
|
+
Run this module as a script to execute the example strategy.
|
22
|
+
"""
|
23
|
+
class Example1(BaseAlgo):
|
24
|
+
def __init__(
|
25
|
+
self, marketDataEngine: marketDataEngine, interactiveEngine: interactiveEngine
|
26
|
+
):
|
27
|
+
super().__init__(marketDataEngine, interactiveEngine)
|
28
|
+
self.marketDataEngine = marketDataEngine
|
29
|
+
|
30
|
+
async def initialize(self):
|
31
|
+
|
32
|
+
asyncio.ensure_future(self.subscribe())
|
33
|
+
|
34
|
+
async def deinitialize(self):
|
35
|
+
asyncio.ensure_future(self.unsubscribe())
|
36
|
+
|
37
|
+
async def on_barData(self, data: CandleData):
|
38
|
+
"""Expected Bar data here."""
|
39
|
+
self.marketDataEngine.user_logger.info(
|
40
|
+
f"Received the bar: {data}", caller=f"example1.on_data"
|
41
|
+
)
|
42
|
+
|
43
|
+
async def on_orderEvent(self, order): ...
|
44
|
+
|
45
|
+
async def on_tradeEvent(self, message): ...
|
46
|
+
|
47
|
+
async def subscribe(self):
|
48
|
+
nifty = next(
|
49
|
+
obj for obj in self.marketDataEngine.index_list if obj.Name == "NIFTY 50"
|
50
|
+
)
|
51
|
+
await self.marketDataEngine.subscribe(
|
52
|
+
[
|
53
|
+
{
|
54
|
+
"exchangeSegment": nifty.ExchangeSegment,
|
55
|
+
"exchangeInstrumentID": nifty.ExchangeInstrumentID,
|
56
|
+
}
|
57
|
+
],
|
58
|
+
1505,
|
59
|
+
self,
|
60
|
+
)
|
61
|
+
|
62
|
+
async def unsubscribe(self):
|
63
|
+
nifty = next(
|
64
|
+
obj for obj in self.marketDataEngine.index_list if obj.Name == "NIFTY 50"
|
65
|
+
)
|
66
|
+
await self.marketDataEngine.unsubscribe(
|
67
|
+
[
|
68
|
+
{
|
69
|
+
"exchangeSegment": nifty.ExchangeSegment,
|
70
|
+
"exchangeInstrumentID": nifty.ExchangeInstrumentID,
|
71
|
+
}
|
72
|
+
],
|
73
|
+
1505,
|
74
|
+
self,
|
75
|
+
)
|
76
|
+
|
77
|
+
|
78
|
+
async def main():
|
79
|
+
load_dotenv()
|
80
|
+
log_file_path = os.path.join(os.path.dirname(__file__), "example1.log")
|
81
|
+
if os.path.exists(log_file_path):
|
82
|
+
os.remove(log_file_path)
|
83
|
+
user_logger = setup_user_logger(log_file_path)
|
84
|
+
tradeObject = marketDataEngine(
|
85
|
+
os.getenv("MARKETDATA_API_KEY"),
|
86
|
+
os.getenv("MARKETDATA_API_SECRET"),
|
87
|
+
os.getenv("SOURCE"),
|
88
|
+
os.getenv("ROOT"),
|
89
|
+
user_logger,
|
90
|
+
)
|
91
|
+
|
92
|
+
interactiveObj = interactiveEngine(
|
93
|
+
os.getenv("INTERACTIVE_API_KEY"),
|
94
|
+
os.getenv("INTERACTIVE_API_SECRET"),
|
95
|
+
os.getenv("SOURCE"),
|
96
|
+
os.getenv("ROOT"),
|
97
|
+
user_logger,
|
98
|
+
)
|
99
|
+
|
100
|
+
await tradeObject.initialize()
|
101
|
+
await tradeObject.loadMaster()
|
102
|
+
algo1 = Example1(tradeObject, interactiveObj)
|
103
|
+
await algo1.initialize()
|
104
|
+
await asyncio.sleep(120)
|
105
|
+
await algo1.deinitialize()
|
106
|
+
await tradeObject.shutdown()
|
107
|
+
|
108
|
+
|
109
|
+
if __name__ == "__main__":
|
110
|
+
asyncio.run(main())
|
@@ -0,0 +1,88 @@
|
|
1
|
+
|2025-01-09 10:09:18,990|INFO|marketDataEngine.__init__|Market Data Engine Object initialized.|
|
2
|
+
|2025-01-09 10:09:18,990|INFO|interactiveEngine.__init__|Interactive Engine Object initialized.|
|
3
|
+
|2025-01-09 10:09:19,211|INFO|interactiveEngine.login|Login successful.|
|
4
|
+
|2025-01-09 10:09:19,393|INFO|Unknown|Engine.IO connection established|
|
5
|
+
|2025-01-09 10:09:19,394|INFO|Example1.__init__|Algorithm initialized with ID: Gvcq|
|
6
|
+
|2025-01-09 10:09:19,394|INFO|Example2.__init__|Algorithm initialized with ID: 6r5r|
|
7
|
+
|2025-01-09 10:09:19,398|INFO|Unknown|Namespace / is connected|
|
8
|
+
|2025-01-09 10:09:19,398|INFO|interactiveEngine.on_connect|Interactive socket connected successfully!|
|
9
|
+
|2025-01-09 10:09:19,398|INFO|Unknown|Received event "joined" [/]|
|
10
|
+
|2025-01-09 10:09:19,402|INFO|interactiveEngine.on_joined|Interactive socket joined successfully! {"type":"success","code":"s-socket-0001","description":"Socket joined successfully!"}|
|
11
|
+
|2025-01-09 10:09:39,599|INFO|interactiveEngine.market_order|Place Order: {'type': 'success', 'code': 's-orders-0001', 'description': 'API Order Id sent', 'result': {'AppOrderID'=123, 'ClientID': '*****', 'OrderUniqueIdentifier': 'GvcqR8Ay'}}|
|
12
|
+
|2025-01-09 10:09:39,599|INFO|Unknown|Received event "position" [/]|
|
13
|
+
|2025-01-09 10:09:39,600|INFO|interactiveEngine.on_position|Received a position: LoginID='TEST01' AccountID='AA' TradingSymbol='NIFTY 09JAN2025 CE 24000' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 ProductType='NRML' Multiplier=Decimal('1') Marketlot=75 BuyAveragePrice=Decimal('3.16') SellAveragePrice=Decimal('3.1875') LongPosition=375 ShortPosition=300 NetPosition=75 BuyValue=Decimal('1185') SellValue=Decimal('956.25') NetValue=Decimal('-228.75') UnrealizedMTM=Decimal('0.00') RealizedMTM=Decimal('0.00') MTM=Decimal('0.00') BEP=Decimal('0.00') SumOfTradedQuantityAndPriceBuy=Decimal('1185') SumOfTradedQuantityAndPriceSell=Decimal('956.25') IsDayWiseNetWise='NetWise' StatisticsLevel='ParentLevel' IsInterOpPosition=False childPositions={} MessageCode=9002 MessageVersion=1 TokenID=0 ApplicationType=0 SequenceNumber=0|
|
14
|
+
|2025-01-09 10:09:39,605|INFO|Unknown|Received event "position" [/]|
|
15
|
+
|2025-01-09 10:09:39,605|INFO|interactiveEngine.on_position|Received a position: LoginID='TEST01' AccountID='AA' TradingSymbol='NIFTY 09JAN2025 CE 24000' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 ProductType='NRML' Multiplier=Decimal('1') Marketlot=75 BuyAveragePrice=Decimal('3.16') SellAveragePrice=Decimal('3.1875') LongPosition=375 ShortPosition=300 NetPosition=75 BuyValue=Decimal('1185') SellValue=Decimal('956.25') NetValue=Decimal('-228.75') UnrealizedMTM=Decimal('0.00') RealizedMTM=Decimal('0.00') MTM=Decimal('0.00') BEP=Decimal('0.00') SumOfTradedQuantityAndPriceBuy=Decimal('1185') SumOfTradedQuantityAndPriceSell=Decimal('956.25') IsDayWiseNetWise='DayWise' StatisticsLevel='ParentLevel' IsInterOpPosition=False childPositions={} MessageCode=9002 MessageVersion=1 TokenID=0 ApplicationType=0 SequenceNumber=0|
|
16
|
+
|2025-01-09 10:09:39,606|INFO|Unknown|Received event "order" [/]|
|
17
|
+
|2025-01-09 10:09:39,606|INFO|interactiveEngine.on_order|LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Buy' OrderType='Market' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='PendingNew' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=75 CumulativeQuantity=0 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 612205) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 612205, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 612205) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='GvcqR8Ay' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('0.0') OrderSideAPI='BUY' OrderGeneratedDateTimeAPI='09-01-2025 10:09:39' ExchangeTransactTimeAPI='09-01-2025 10:09:39' LastUpdateDateTimeAPI='09-01-2025 10:09:39' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638345 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
18
|
+
|2025-01-09 10:09:39,606|INFO|Example1.order_|Inserted new order GvcqR8Ay with status PendingNew|
|
19
|
+
|2025-01-09 10:09:39,606|INFO|Example1.on_orderEvent|Received order event: LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Buy' OrderType='Market' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='PendingNew' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=75 CumulativeQuantity=0 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 612205) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 612205, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 612205) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='GvcqR8Ay' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('0.0') OrderSideAPI='BUY' OrderGeneratedDateTimeAPI='09-01-2025 10:09:39' ExchangeTransactTimeAPI='09-01-2025 10:09:39' LastUpdateDateTimeAPI='09-01-2025 10:09:39' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638345 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
20
|
+
|2025-01-09 10:09:39,611|INFO|Unknown|Received event "position" [/]|
|
21
|
+
|2025-01-09 10:09:39,611|INFO|interactiveEngine.on_position|Received a position: LoginID='TEST01' AccountID='AA' TradingSymbol='NIFTY 09JAN2025 CE 24000' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 ProductType='NRML' Multiplier=Decimal('1') Marketlot=75 BuyAveragePrice=Decimal('3.058333333333333') SellAveragePrice=Decimal('3.1875') LongPosition=450 ShortPosition=300 NetPosition=150 BuyValue=Decimal('1376.25') SellValue=Decimal('956.25') NetValue=Decimal('-420') UnrealizedMTM=Decimal('0.00') RealizedMTM=Decimal('0.00') MTM=Decimal('0.00') BEP=Decimal('0.00') SumOfTradedQuantityAndPriceBuy=Decimal('1376.25') SumOfTradedQuantityAndPriceSell=Decimal('956.25') IsDayWiseNetWise='DayWise' StatisticsLevel='ParentLevel' IsInterOpPosition=False childPositions={} MessageCode=9002 MessageVersion=1 TokenID=0 ApplicationType=0 SequenceNumber=0|
|
22
|
+
|2025-01-09 10:09:39,611|INFO|Unknown|Received event "position" [/]|
|
23
|
+
|2025-01-09 10:09:39,612|INFO|interactiveEngine.on_position|Received a position: LoginID='TEST01' AccountID='AA' TradingSymbol='NIFTY 09JAN2025 CE 24000' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 ProductType='NRML' Multiplier=Decimal('1') Marketlot=75 BuyAveragePrice=Decimal('3.058333333333333') SellAveragePrice=Decimal('3.1875') LongPosition=450 ShortPosition=300 NetPosition=150 BuyValue=Decimal('1376.25') SellValue=Decimal('956.25') NetValue=Decimal('-420') UnrealizedMTM=Decimal('0.00') RealizedMTM=Decimal('0.00') MTM=Decimal('0.00') BEP=Decimal('0.00') SumOfTradedQuantityAndPriceBuy=Decimal('1376.25') SumOfTradedQuantityAndPriceSell=Decimal('956.25') IsDayWiseNetWise='NetWise' StatisticsLevel='ParentLevel' IsInterOpPosition=False childPositions={} MessageCode=9002 MessageVersion=1 TokenID=0 ApplicationType=0 SequenceNumber=0|
|
24
|
+
|2025-01-09 10:09:39,612|INFO|Unknown|Received event "order" [/]|
|
25
|
+
|2025-01-09 10:09:39,612|INFO|interactiveEngine.on_order|LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042482489' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Buy' OrderType='Market' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='New' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=75 CumulativeQuantity=0 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 612205) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 36, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 627829) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='GvcqR8Ay' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('0.0') OrderSideAPI='BUY' OrderGeneratedDateTimeAPI='09-01-2025 10:09:39' ExchangeTransactTimeAPI='09-01-2025 10:09:36' LastUpdateDateTimeAPI='09-01-2025 10:09:39' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638348 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
26
|
+
|2025-01-09 10:09:39,612|INFO|Unknown|Received event "trade" [/]|
|
27
|
+
|2025-01-09 10:09:39,612|INFO|interactiveEngine.on_trade|Received a trade: LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042482489' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Buy' OrderType='Market' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='Filled' OrderAverageTradedPrice=Decimal('2.55') LeavesQuantity=0 CumulativeQuantity=75 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 612205) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 36, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 627829) CancelRejectReason='' OrderUniqueIdentifier='GvcqR8Ay' OrderLegStatus='SingleOrderLeg' LastTradedPrice=Decimal('2.55') LastTradedQuantity=75 LastExecutionTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 36) ExecutionID='2026158' ExecutionReportIndex=3 IsSpread=False OrderAverageTradedPriceAPI=Decimal('2.55') OrderSideAPI='BUY' OrderGeneratedDateTimeAPI=datetime.datetime(2025, 1, 9, 10, 9, 39) ExchangeTransactTimeAPI=datetime.datetime(2025, 1, 9, 10, 9, 36) LastUpdateDateTimeAPI=datetime.datetime(2025, 1, 9, 10, 9, 39) OrderExpiryDateAPI=datetime.datetime(1980, 1, 1, 0, 0) LastExecutionTransactTimeAPI=datetime.datetime(2025, 1, 9, 10, 9, 39) MessageSynchronizeUniqueKey='AA' MessageCode=9005 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638352 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
28
|
+
|2025-01-09 10:09:39,612|INFO|Example1.trade_|Inserted new position 48117 with quantity 75|
|
29
|
+
|2025-01-09 10:09:39,613|INFO|Unknown|Received event "order" [/]|
|
30
|
+
|2025-01-09 10:09:39,613|INFO|interactiveEngine.on_order|LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042482489' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Buy' OrderType='Market' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='Filled' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=0 CumulativeQuantity=75 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 612205) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 36, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 627829) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='GvcqR8Ay' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('2.55') OrderSideAPI='BUY' OrderGeneratedDateTimeAPI='09-01-2025 10:09:39' ExchangeTransactTimeAPI='09-01-2025 10:09:36' LastUpdateDateTimeAPI='09-01-2025 10:09:39' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638350 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
31
|
+
|2025-01-09 10:09:39,613|INFO|Example1.order_|Updated order GvcqR8Ay status to New|
|
32
|
+
|2025-01-09 10:09:39,613|INFO|Example1.on_tradeEvent|Received trade event: LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042482489' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Buy' OrderType='Market' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='Filled' OrderAverageTradedPrice=Decimal('2.55') LeavesQuantity=0 CumulativeQuantity=75 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 612205) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 36, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 627829) CancelRejectReason='' OrderUniqueIdentifier='GvcqR8Ay' OrderLegStatus='SingleOrderLeg' LastTradedPrice=Decimal('2.55') LastTradedQuantity=75 LastExecutionTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 36) ExecutionID='2026158' ExecutionReportIndex=3 IsSpread=False OrderAverageTradedPriceAPI=Decimal('2.55') OrderSideAPI='BUY' OrderGeneratedDateTimeAPI=datetime.datetime(2025, 1, 9, 10, 9, 39) ExchangeTransactTimeAPI=datetime.datetime(2025, 1, 9, 10, 9, 36) LastUpdateDateTimeAPI=datetime.datetime(2025, 1, 9, 10, 9, 39) OrderExpiryDateAPI=datetime.datetime(1980, 1, 1, 0, 0) LastExecutionTransactTimeAPI=datetime.datetime(2025, 1, 9, 10, 9, 39) MessageSynchronizeUniqueKey='AA' MessageCode=9005 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638352 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
33
|
+
|2025-01-09 10:09:39,613|INFO|Example1.order_|Updated order GvcqR8Ay status to Filled|
|
34
|
+
|2025-01-09 10:09:39,613|INFO|Example1.on_orderEvent|Received order event: LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042482489' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Buy' OrderType='Market' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='New' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=75 CumulativeQuantity=0 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 612205) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 36, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 627829) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='GvcqR8Ay' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('0.0') OrderSideAPI='BUY' OrderGeneratedDateTimeAPI='09-01-2025 10:09:39' ExchangeTransactTimeAPI='09-01-2025 10:09:36' LastUpdateDateTimeAPI='09-01-2025 10:09:39' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638348 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
35
|
+
|2025-01-09 10:09:39,613|INFO|Example1.on_orderEvent|Received order event: LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042482489' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Buy' OrderType='Market' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='Filled' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=0 CumulativeQuantity=75 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 612205) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 36, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 39, 627829) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='GvcqR8Ay' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('2.55') OrderSideAPI='BUY' OrderGeneratedDateTimeAPI='09-01-2025 10:09:39' ExchangeTransactTimeAPI='09-01-2025 10:09:36' LastUpdateDateTimeAPI='09-01-2025 10:09:39' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638350 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
36
|
+
|2025-01-09 10:09:49,655|INFO|interactiveEngine.limit_order|Place Order: {'type': 'success', 'code': 's-orders-0001', 'description': 'API Order Id sent', 'result': {'AppOrderID'=123, 'ClientID': '*****', 'OrderUniqueIdentifier': '6r5rJqSP'}}|
|
37
|
+
|2025-01-09 10:09:49,659|INFO|Unknown|Received event "position" [/]|
|
38
|
+
|2025-01-09 10:09:49,659|INFO|interactiveEngine.on_position|Received a position: LoginID='TEST01' AccountID='AA' TradingSymbol='NIFTY 09JAN2025 CE 24000' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 ProductType='NRML' Multiplier=Decimal('1') Marketlot=75 BuyAveragePrice=Decimal('3.058333333333333') SellAveragePrice=Decimal('3.1875') LongPosition=450 ShortPosition=300 NetPosition=150 BuyValue=Decimal('1376.25') SellValue=Decimal('956.25') NetValue=Decimal('-420') UnrealizedMTM=Decimal('0.00') RealizedMTM=Decimal('0.00') MTM=Decimal('0.00') BEP=Decimal('0.00') SumOfTradedQuantityAndPriceBuy=Decimal('1376.25') SumOfTradedQuantityAndPriceSell=Decimal('956.25') IsDayWiseNetWise='NetWise' StatisticsLevel='ParentLevel' IsInterOpPosition=False childPositions={} MessageCode=9002 MessageVersion=1 TokenID=0 ApplicationType=0 SequenceNumber=0|
|
39
|
+
|2025-01-09 10:09:49,659|INFO|Unknown|Received event "position" [/]|
|
40
|
+
|2025-01-09 10:09:49,660|INFO|interactiveEngine.on_position|Received a position: LoginID='TEST01' AccountID='AA' TradingSymbol='NIFTY 09JAN2025 CE 24000' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 ProductType='NRML' Multiplier=Decimal('1') Marketlot=75 BuyAveragePrice=Decimal('3.058333333333333') SellAveragePrice=Decimal('3.1875') LongPosition=450 ShortPosition=300 NetPosition=150 BuyValue=Decimal('1376.25') SellValue=Decimal('956.25') NetValue=Decimal('-420') UnrealizedMTM=Decimal('0.00') RealizedMTM=Decimal('0.00') MTM=Decimal('0.00') BEP=Decimal('0.00') SumOfTradedQuantityAndPriceBuy=Decimal('1376.25') SumOfTradedQuantityAndPriceSell=Decimal('956.25') IsDayWiseNetWise='DayWise' StatisticsLevel='ParentLevel' IsInterOpPosition=False childPositions={} MessageCode=9002 MessageVersion=1 TokenID=0 ApplicationType=0 SequenceNumber=0|
|
41
|
+
|2025-01-09 10:09:49,660|INFO|Unknown|Received event "order" [/]|
|
42
|
+
|2025-01-09 10:09:49,661|INFO|interactiveEngine.on_order|LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Buy' OrderType='Limit' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0.5') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='PendingNew' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=75 CumulativeQuantity=0 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 49, 659129) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 49, 659129, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 49, 659129) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='6r5rJqSP' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('0.0') OrderSideAPI='BUY' OrderGeneratedDateTimeAPI='09-01-2025 10:09:49' ExchangeTransactTimeAPI='09-01-2025 10:09:49' LastUpdateDateTimeAPI='09-01-2025 10:09:49' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638428 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
43
|
+
|2025-01-09 10:09:49,661|INFO|Example2.order_|Inserted new order 6r5rJqSP with status PendingNew|
|
44
|
+
|2025-01-09 10:09:49,661|INFO|Example2.on_orderEvent|Received order event: LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Buy' OrderType='Limit' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0.5') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='PendingNew' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=75 CumulativeQuantity=0 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 49, 659129) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 49, 659129, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 49, 659129) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='6r5rJqSP' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('0.0') OrderSideAPI='BUY' OrderGeneratedDateTimeAPI='09-01-2025 10:09:49' ExchangeTransactTimeAPI='09-01-2025 10:09:49' LastUpdateDateTimeAPI='09-01-2025 10:09:49' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638428 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
45
|
+
|2025-01-09 10:09:49,676|INFO|Unknown|Received event "order" [/]|
|
46
|
+
|2025-01-09 10:09:49,677|INFO|interactiveEngine.on_order|LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042568449' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Buy' OrderType='Limit' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0.5') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='New' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=75 CumulativeQuantity=0 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 49, 659129) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 46, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 49, 674790) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='6r5rJqSP' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('0.0') OrderSideAPI='BUY' OrderGeneratedDateTimeAPI='09-01-2025 10:09:49' ExchangeTransactTimeAPI='09-01-2025 10:09:46' LastUpdateDateTimeAPI='09-01-2025 10:09:49' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638432 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
47
|
+
|2025-01-09 10:09:49,677|INFO|Example2.order_|Updated order 6r5rJqSP status to New|
|
48
|
+
|2025-01-09 10:09:49,677|INFO|Example2.on_orderEvent|Received order event: LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042568449' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Buy' OrderType='Limit' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0.5') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='New' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=75 CumulativeQuantity=0 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 49, 659129) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 46, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 49, 674790) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='6r5rJqSP' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('0.0') OrderSideAPI='BUY' OrderGeneratedDateTimeAPI='09-01-2025 10:09:49' ExchangeTransactTimeAPI='09-01-2025 10:09:46' LastUpdateDateTimeAPI='09-01-2025 10:09:49' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638432 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
49
|
+
|2025-01-09 10:09:59,412|INFO|Example1.liquidateIntraday|Cancel open order and square off position for strategy Gvcq|
|
50
|
+
|2025-01-09 10:09:59,603|INFO|interactiveEngine.market_order|Place Order: {'type': 'success', 'code': 's-orders-0001', 'description': 'API Order Id sent', 'result': {'AppOrderID'=123, 'ClientID': '*****', 'OrderUniqueIdentifier': 'Gvcq5wMt'}}|
|
51
|
+
|2025-01-09 10:09:59,607|INFO|Unknown|Received event "position" [/]|
|
52
|
+
|2025-01-09 10:09:59,608|INFO|interactiveEngine.on_position|Received a position: LoginID='TEST01' AccountID='AA' TradingSymbol='NIFTY 09JAN2025 CE 24000' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 ProductType='NRML' Multiplier=Decimal('1') Marketlot=75 BuyAveragePrice=Decimal('3.058333333333333') SellAveragePrice=Decimal('3.1875') LongPosition=450 ShortPosition=300 NetPosition=150 BuyValue=Decimal('1376.25') SellValue=Decimal('956.25') NetValue=Decimal('-420') UnrealizedMTM=Decimal('0.00') RealizedMTM=Decimal('0.00') MTM=Decimal('0.00') BEP=Decimal('0.00') SumOfTradedQuantityAndPriceBuy=Decimal('1376.25') SumOfTradedQuantityAndPriceSell=Decimal('956.25') IsDayWiseNetWise='DayWise' StatisticsLevel='ParentLevel' IsInterOpPosition=False childPositions={} MessageCode=9002 MessageVersion=1 TokenID=0 ApplicationType=0 SequenceNumber=0|
|
53
|
+
|2025-01-09 10:09:59,608|INFO|Unknown|Received event "position" [/]|
|
54
|
+
|2025-01-09 10:09:59,608|INFO|interactiveEngine.on_position|Received a position: LoginID='TEST01' AccountID='AA' TradingSymbol='NIFTY 09JAN2025 CE 24000' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 ProductType='NRML' Multiplier=Decimal('1') Marketlot=75 BuyAveragePrice=Decimal('3.058333333333333') SellAveragePrice=Decimal('3.1875') LongPosition=450 ShortPosition=300 NetPosition=150 BuyValue=Decimal('1376.25') SellValue=Decimal('956.25') NetValue=Decimal('-420') UnrealizedMTM=Decimal('0.00') RealizedMTM=Decimal('0.00') MTM=Decimal('0.00') BEP=Decimal('0.00') SumOfTradedQuantityAndPriceBuy=Decimal('1376.25') SumOfTradedQuantityAndPriceSell=Decimal('956.25') IsDayWiseNetWise='NetWise' StatisticsLevel='ParentLevel' IsInterOpPosition=False childPositions={} MessageCode=9002 MessageVersion=1 TokenID=0 ApplicationType=0 SequenceNumber=0|
|
55
|
+
|2025-01-09 10:09:59,609|INFO|Unknown|Received event "order" [/]|
|
56
|
+
|2025-01-09 10:09:59,609|INFO|interactiveEngine.on_order|LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Sell' OrderType='Market' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='PendingNew' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=75 CumulativeQuantity=0 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 627852) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 627852, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 627852) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='Gvcq5wMt' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('0.0') OrderSideAPI='SELL' OrderGeneratedDateTimeAPI='09-01-2025 10:09:59' ExchangeTransactTimeAPI='09-01-2025 10:09:59' LastUpdateDateTimeAPI='09-01-2025 10:09:59' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638501 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
57
|
+
|2025-01-09 10:09:59,609|INFO|Example1.order_|Inserted new order Gvcq5wMt with status PendingNew|
|
58
|
+
|2025-01-09 10:09:59,609|INFO|Example1.on_orderEvent|Received order event: LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Sell' OrderType='Market' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='PendingNew' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=75 CumulativeQuantity=0 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 627852) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 627852, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 627852) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='Gvcq5wMt' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('0.0') OrderSideAPI='SELL' OrderGeneratedDateTimeAPI='09-01-2025 10:09:59' ExchangeTransactTimeAPI='09-01-2025 10:09:59' LastUpdateDateTimeAPI='09-01-2025 10:09:59' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638501 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
59
|
+
|2025-01-09 10:09:59,626|INFO|Unknown|Received event "position" [/]|
|
60
|
+
|2025-01-09 10:09:59,626|INFO|interactiveEngine.on_position|Received a position: LoginID='TEST01' AccountID='AA' TradingSymbol='NIFTY 09JAN2025 CE 24000' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 ProductType='NRML' Multiplier=Decimal('1') Marketlot=75 BuyAveragePrice=Decimal('3.058333333333333') SellAveragePrice=Decimal('3.05') LongPosition=450 ShortPosition=375 NetPosition=75 BuyValue=Decimal('1376.25') SellValue=Decimal('1143.75') NetValue=Decimal('-232.5') UnrealizedMTM=Decimal('0.00') RealizedMTM=Decimal('0.00') MTM=Decimal('0.00') BEP=Decimal('0.00') SumOfTradedQuantityAndPriceBuy=Decimal('1376.25') SumOfTradedQuantityAndPriceSell=Decimal('1143.75') IsDayWiseNetWise='NetWise' StatisticsLevel='ParentLevel' IsInterOpPosition=False childPositions={} MessageCode=9002 MessageVersion=1 TokenID=0 ApplicationType=0 SequenceNumber=0|
|
61
|
+
|2025-01-09 10:09:59,626|INFO|Unknown|Received event "position" [/]|
|
62
|
+
|2025-01-09 10:09:59,627|INFO|interactiveEngine.on_position|Received a position: LoginID='TEST01' AccountID='AA' TradingSymbol='NIFTY 09JAN2025 CE 24000' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 ProductType='NRML' Multiplier=Decimal('1') Marketlot=75 BuyAveragePrice=Decimal('3.058333333333333') SellAveragePrice=Decimal('3.05') LongPosition=450 ShortPosition=375 NetPosition=75 BuyValue=Decimal('1376.25') SellValue=Decimal('1143.75') NetValue=Decimal('-232.5') UnrealizedMTM=Decimal('0.00') RealizedMTM=Decimal('0.00') MTM=Decimal('0.00') BEP=Decimal('0.00') SumOfTradedQuantityAndPriceBuy=Decimal('1376.25') SumOfTradedQuantityAndPriceSell=Decimal('1143.75') IsDayWiseNetWise='DayWise' StatisticsLevel='ParentLevel' IsInterOpPosition=False childPositions={} MessageCode=9002 MessageVersion=1 TokenID=0 ApplicationType=0 SequenceNumber=0|
|
63
|
+
|2025-01-09 10:09:59,627|INFO|Unknown|Received event "order" [/]|
|
64
|
+
|2025-01-09 10:09:59,627|INFO|interactiveEngine.on_order|LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042649437' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Sell' OrderType='Market' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='New' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=75 CumulativeQuantity=0 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 627852) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 56, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 643478) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='Gvcq5wMt' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('0.0') OrderSideAPI='SELL' OrderGeneratedDateTimeAPI='09-01-2025 10:09:59' ExchangeTransactTimeAPI='09-01-2025 10:09:56' LastUpdateDateTimeAPI='09-01-2025 10:09:59' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638504 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
65
|
+
|2025-01-09 10:09:59,627|INFO|Unknown|Received event "trade" [/]|
|
66
|
+
|2025-01-09 10:09:59,628|INFO|interactiveEngine.on_trade|Received a trade: LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042649437' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Sell' OrderType='Market' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='Filled' OrderAverageTradedPrice=Decimal('2.50') LeavesQuantity=0 CumulativeQuantity=75 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 627852) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 56, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 643478) CancelRejectReason='' OrderUniqueIdentifier='Gvcq5wMt' OrderLegStatus='SingleOrderLeg' LastTradedPrice=Decimal('2.5') LastTradedQuantity=75 LastExecutionTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 56) ExecutionID='2030891' ExecutionReportIndex=3 IsSpread=False OrderAverageTradedPriceAPI=Decimal('2.5') OrderSideAPI='SELL' OrderGeneratedDateTimeAPI=datetime.datetime(2025, 1, 9, 10, 9, 59) ExchangeTransactTimeAPI=datetime.datetime(2025, 1, 9, 10, 9, 56) LastUpdateDateTimeAPI=datetime.datetime(2025, 1, 9, 10, 9, 59) OrderExpiryDateAPI=datetime.datetime(1980, 1, 1, 0, 0) LastExecutionTransactTimeAPI=datetime.datetime(2025, 1, 9, 10, 9, 59) MessageSynchronizeUniqueKey='AA' MessageCode=9005 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638508 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
67
|
+
|2025-01-09 10:09:59,628|INFO|Example1.trade_|Updated position for trade 48117: 0|
|
68
|
+
|2025-01-09 10:09:59,628|INFO|Example1.order_|Updated order Gvcq5wMt status to New|
|
69
|
+
|2025-01-09 10:09:59,628|INFO|Example1.on_tradeEvent|Received trade event: LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042649437' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Sell' OrderType='Market' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='Filled' OrderAverageTradedPrice=Decimal('2.50') LeavesQuantity=0 CumulativeQuantity=75 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 627852) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 56, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 643478) CancelRejectReason='' OrderUniqueIdentifier='Gvcq5wMt' OrderLegStatus='SingleOrderLeg' LastTradedPrice=Decimal('2.5') LastTradedQuantity=75 LastExecutionTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 56) ExecutionID='2030891' ExecutionReportIndex=3 IsSpread=False OrderAverageTradedPriceAPI=Decimal('2.5') OrderSideAPI='SELL' OrderGeneratedDateTimeAPI=datetime.datetime(2025, 1, 9, 10, 9, 59) ExchangeTransactTimeAPI=datetime.datetime(2025, 1, 9, 10, 9, 56) LastUpdateDateTimeAPI=datetime.datetime(2025, 1, 9, 10, 9, 59) OrderExpiryDateAPI=datetime.datetime(1980, 1, 1, 0, 0) LastExecutionTransactTimeAPI=datetime.datetime(2025, 1, 9, 10, 9, 59) MessageSynchronizeUniqueKey='AA' MessageCode=9005 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638508 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
70
|
+
|2025-01-09 10:09:59,628|INFO|Example1.on_orderEvent|Received order event: LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042649437' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Sell' OrderType='Market' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='New' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=75 CumulativeQuantity=0 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 627852) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 56, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 643478) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='Gvcq5wMt' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('0.0') OrderSideAPI='SELL' OrderGeneratedDateTimeAPI='09-01-2025 10:09:59' ExchangeTransactTimeAPI='09-01-2025 10:09:56' LastUpdateDateTimeAPI='09-01-2025 10:09:59' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638504 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
71
|
+
|2025-01-09 10:09:59,632|INFO|Unknown|Received event "order" [/]|
|
72
|
+
|2025-01-09 10:09:59,632|INFO|interactiveEngine.on_order|LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042649437' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Sell' OrderType='Market' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='Filled' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=0 CumulativeQuantity=75 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 627852) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 56, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 643478) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='Gvcq5wMt' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('2.5') OrderSideAPI='SELL' OrderGeneratedDateTimeAPI='09-01-2025 10:09:59' ExchangeTransactTimeAPI='09-01-2025 10:09:56' LastUpdateDateTimeAPI='09-01-2025 10:09:59' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638506 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
73
|
+
|2025-01-09 10:09:59,632|INFO|Example1.order_|Updated order Gvcq5wMt status to Filled|
|
74
|
+
|2025-01-09 10:09:59,632|INFO|Example1.on_orderEvent|Received order event: LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042649437' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Sell' OrderType='Market' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='Filled' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=0 CumulativeQuantity=75 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 627852) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 56, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 9, 59, 643478) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='Gvcq5wMt' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('2.5') OrderSideAPI='SELL' OrderGeneratedDateTimeAPI='09-01-2025 10:09:59' ExchangeTransactTimeAPI='09-01-2025 10:09:56' LastUpdateDateTimeAPI='09-01-2025 10:09:59' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638506 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
75
|
+
|2025-01-09 10:10:09,400|INFO|Example2.liquidateIntraday|Cancel open order and square off position for strategy 6r5r|
|
76
|
+
|2025-01-09 10:10:09,566|INFO|interactiveEngine.cancel_order|Cancel Order: {'type': 'success', 'code': 's-orders-0001', 'description': 'Request sent', 'result': {'AppOrderID'=123, 'ClientID': 'AA', 'OrderUniqueIdentifier': '6r5rJqSP'}}|
|
77
|
+
|2025-01-09 10:10:09,568|INFO|Unknown|Received event "order" [/]|
|
78
|
+
|2025-01-09 10:10:09,569|INFO|interactiveEngine.on_order|LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042568449' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Buy' OrderType='Limit' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0.5') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='PendingCancel' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=75 CumulativeQuantity=0 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 49, 659129) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 46, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 10, 9, 580969) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='6r5rJqSP' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('0.0') OrderSideAPI='BUY' OrderGeneratedDateTimeAPI='09-01-2025 10:09:49' ExchangeTransactTimeAPI='09-01-2025 10:09:46' LastUpdateDateTimeAPI='09-01-2025 10:10:09' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638528 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
79
|
+
|2025-01-09 10:10:09,569|INFO|Example2.order_|Updated order 6r5rJqSP status to PendingCancel|
|
80
|
+
|2025-01-09 10:10:09,569|INFO|Example2.on_orderEvent|Received order event: LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042568449' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Buy' OrderType='Limit' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0.5') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='PendingCancel' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=75 CumulativeQuantity=0 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 49, 659129) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 9, 46, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 10, 9, 580969) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='6r5rJqSP' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('0.0') OrderSideAPI='BUY' OrderGeneratedDateTimeAPI='09-01-2025 10:09:49' ExchangeTransactTimeAPI='09-01-2025 10:09:46' LastUpdateDateTimeAPI='09-01-2025 10:10:09' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638528 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
81
|
+
|2025-01-09 10:10:09,577|INFO|Unknown|Received event "order" [/]|
|
82
|
+
|2025-01-09 10:10:09,578|INFO|interactiveEngine.on_order|LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042568449' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Buy' OrderType='Limit' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0.5') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='Cancelled' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=75 CumulativeQuantity=0 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 49, 659129) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 10, 6, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 10, 9, 596591) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='6r5rJqSP' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('0.0') OrderSideAPI='BUY' OrderGeneratedDateTimeAPI='09-01-2025 10:09:49' ExchangeTransactTimeAPI='09-01-2025 10:10:06' LastUpdateDateTimeAPI='09-01-2025 10:10:09' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638530 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
83
|
+
|2025-01-09 10:10:09,578|INFO|Example2.order_|Updated order 6r5rJqSP status to Cancelled|
|
84
|
+
|2025-01-09 10:10:09,578|INFO|Example2.on_orderEvent|Received order event: LoginID='TEST01' ClientID='AA' 'AppOrderID'=123 OrderReferenceID='' GeneratedBy='TWSAPI' ExchangeOrderID='1000000042568449' OrderCategoryType='NORMAL' ExchangeSegment='NSEFO' ExchangeInstrumentID=48117 OrderSide='Buy' OrderType='Limit' ProductType='NRML' TimeInForce='DAY' OrderPrice=Decimal('0.5') OrderQuantity=75 OrderStopPrice=Decimal('0') OrderStatus='Cancelled' OrderAverageTradedPrice=Decimal('0.0') LeavesQuantity=75 CumulativeQuantity=0 OrderDisclosedQuantity=0 OrderGeneratedDateTime=datetime.datetime(2025, 1, 9, 10, 9, 49, 659129) ExchangeTransactTime=datetime.datetime(2025, 1, 9, 10, 10, 6, tzinfo=TzInfo(+05:30)) LastUpdateDateTime=datetime.datetime(2025, 1, 9, 10, 10, 9, 596591) OrderExpiryDate=datetime.datetime(1980, 1, 1, 0, 0) CancelRejectReason='' OrderUniqueIdentifier='6r5rJqSP' OrderLegStatus='SingleOrderLeg' IsSpread=False BoLegDetails=0 BoEntryOrderId='' OrderAverageTradedPriceAPI=Decimal('0.0') OrderSideAPI='BUY' OrderGeneratedDateTimeAPI='09-01-2025 10:09:49' ExchangeTransactTimeAPI='09-01-2025 10:10:06' LastUpdateDateTimeAPI='09-01-2025 10:10:09' OrderExpiryDateAPI='01-01-1980 00:00:00' AlgoID='' AlgoCategory=0 MessageSynchronizeUniqueKey='TEST01' MessageCode=9004 MessageVersion=4 TokenID=0 ApplicationType=146 SequenceNumber=1585730101638530 TradingSymbol='NIFTY 09JAN2025 CE 24000'|
|
85
|
+
|2025-01-09 10:10:44,250|INFO|interactiveEngine.shutdown|Entering shut down mode.|
|
86
|
+
|2025-01-09 10:10:44,250|INFO|Unknown|Engine.IO connection dropped|
|
87
|
+
|2025-01-09 10:10:44,470|INFO|interactiveEngine.shutdown|Logged Out.|
|
88
|
+
|2025-01-09 10:10:44,470|INFO|interactiveEngine.shutdown|Trading Ended.|
|