-
Notifications
You must be signed in to change notification settings - Fork 298
/
cta_okx_script.py
65 lines (47 loc) · 1.67 KB
/
cta_okx_script.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
from time import sleep
from logging import INFO
from howtrader.event import EventEngine
from howtrader.trader.setting import SETTINGS
from howtrader.trader.engine import MainEngine, LogEngine
from howtrader.gateway.binance import BinanceSpotGateway, BinanceUsdtGateway
from howtrader.gateway.okx import OkxGateway
from howtrader.app.cta_strategy import CtaStrategyApp, CtaEngine
from howtrader.app.cta_strategy.base import EVENT_CTA_LOG
SETTINGS["log.active"] = True
SETTINGS["log.level"] = INFO
SETTINGS["log.console"] = True
okx_gateway_setting = {
"key": "",
"secret": "",
"passphrase": "",
"proxy_host": "",
"proxy_port": 0,
"server": "REAL"
}
def run():
"""
Running in the child process.
"""
SETTINGS["log.file"] = True
event_engine = EventEngine()
main_engine: MainEngine = MainEngine(event_engine)
main_engine.add_gateway(OkxGateway)
cta_engine: CtaEngine = main_engine.add_app(CtaStrategyApp)
main_engine.write_log("setup main engine")
log_engine: LogEngine = main_engine.get_engine("log")
event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
main_engine.write_log("register event listener")
main_engine.connect(okx_gateway_setting, "OKX")
main_engine.write_log("connect OKX gateway")
sleep(10)
cta_engine.init_engine()
main_engine.write_log("set up cta engine")
cta_engine.init_all_strategies()
sleep(60) # Leave enough time to complete strategy initialization
main_engine.write_log("init cta strategies")
cta_engine.start_all_strategies()
main_engine.write_log("start cta strategies")
while True:
sleep(10)
if __name__ == "__main__":
run()