forked from 51bitquant/howtrader
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcta_script.py
62 lines (46 loc) · 1.68 KB
/
cta_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
import sys
from time import sleep
from datetime import datetime, time
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.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
usdt_gateway_setting = {
"key": "",
"secret": "",
"proxy_host": "",
"proxy_port": 0,
}
def run():
"""
Running in the child process.
"""
SETTINGS["log.file"] = True
event_engine = EventEngine()
main_engine: MainEngine = MainEngine(event_engine)
main_engine.add_gateway(BinanceUsdtGateway)
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(usdt_gateway_setting, "BINANCE_USDT")
main_engine.write_log("connect binance usdt gate way")
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()