自动采集器怎么用(【蜗牛博客VNPY】VN.PY2.0学习记录一(如何回测) )
优采云 发布时间: 2021-10-26 06:32自动采集器怎么用(【蜗牛博客VNPY】VN.PY2.0学习记录一(如何回测)
)
蜗牛博客VNPY学习记录:
VN.PY 2.0 学习记录一(如何回测)
VN.PY 2.0 学习记录二(策略开发)
vn.py学习记录三(m-basket教程)
VN.PY 2.0 学习记录四(多线程、多进程)
Vn.py学习记录5-交易时间段和Widgets
vn.py学习记录6(无界面模拟盘)
Vn.py学习记录七(V2.0.5版)
Vnpy学习记录八(R-Breaker和pickle)
vn.py学习记录9(事件驱动引擎)
VN.PY学习记录十(源码概览)
VNPY学习记录11(微信+Vscode)
VNPY学习记录12(父子进程,回调函数)
VNPY学习记录13(部署到云服务器实现自动交易)
一、服务器选择
因为阿里云的windows服务器有点贵,最后选择了腾讯云。现在已经一年多了,还是比较稳定的。购买链接
二、登录服务器
(一)点击您购买的服务器最右侧的“登录”链接。
(二)在弹出的【登录Windows实例】窗口中,选择【使用RDP文件登录】,点击【下载RDP文件】,将RDP文件下载到本地。
(三)双击打开下载的RDP文件,输入密码,点击【确定】远程连接Windows云服务器。
二、将代码部署到服务器
由于使用的是windows server,所以和本地操作几乎一样,所以没有难度。
三、代码自动运行
使用run.py控制程序运行,并添加日期和时间表判断,程序会在工作日1-5自动运行,星期天不执行六、。
写了这样的策略后,我就不用担心了。
<p>
import multiprocessing
from time import sleep
from datetime import datetime, time
from logging import INFO
from vnpy.event import EventEngine
from vnpy.trader.setting import SETTINGS
from vnpy.trader.engine import MainEngine
from vnpy.gateway.ctp import CtpGateway
from vnpy.app.cta_strategy import CtaStrategyApp
from vnpy.app.cta_strategy.base import EVENT_CTA_LOG
SETTINGS["log.active"] = True
SETTINGS["log.level"] = INFO
SETTINGS["log.console"] = True
ctp_setting = {
"用户名": "00000000",
"密码": "00000000",
"经纪商代码": "00000000",
"交易服务器": "100.100.100.50:00000",
"行情服务器": "100.100.100.50:00000",
"产品名称": "00000000",
"授权编码": "00000000",
"产品信息": ""
}
def run_child():
"""
Running in the child process.
"""
SETTINGS["log.file"] = True
event_engine = EventEngine()
main_engine = MainEngine(event_engine)
main_engine.add_gateway(CtpGateway)
cta_engine = main_engine.add_app(CtaStrategyApp)
main_engine.write_log("主引擎创建成功")
log_engine = main_engine.get_engine("log")
event_engine.register(EVENT_CTA_LOG, log_engine.process_log_event)
main_engine.write_log("注册日志事件*敏*感*词*")
main_engine.connect(ctp_setting, "CTP")
main_engine.write_log("连接CTP接口")
sleep(10)
cta_engine.init_engine()
main_engine.write_log("CTA策略初始化完成")
cta_engine.init_all_strategies()
sleep(60) # Leave enough time to complete strategy initialization
main_engine.write_log("CTA策略全部初始化")
cta_engine.start_all_strategies()
main_engine.write_log("CTA策略全部启动")
while True:
sleep(1)
def run_parent():
"""
Running in the parent process.
"""
print("启动CTA策略守护父进程")
# Chinese futures market trading period (day/night)
DAY_START = time(8, 45)
DAY_END = time(15, 30)
NIGHT_START = time(20, 45)
NIGHT_END = time(2, 45)
child_process = None
while True:
current_time = datetime.now().time()
trading = False
# Get weekdays, Monday to Sunday is 0-6
d=datetime.now()
td = d.weekday()
# Check whether in trading period
if (
current_time >= DAY_START and current_time