77 lines
2.2 KiB
Python
77 lines
2.2 KiB
Python
# flake8: noqa
|
||
|
||
# 示例代码
|
||
# 从本地股票数据加载,前复权,显示主图指标、副图指标、缠论
|
||
|
||
import os
|
||
import sys
|
||
import json
|
||
|
||
vnpy_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
|
||
if vnpy_root not in sys.path:
|
||
print(f'sys.path append({vnpy_root})')
|
||
sys.path.append(vnpy_root)
|
||
|
||
os.environ["VNPY_TESTING"] = "1"
|
||
|
||
from vnpy.data.tdx.tdx_common import FakeStrategy
|
||
from vnpy.data.tdx.tdx_stock_data import *
|
||
from vnpy.component.cta_line_bar import CtaMinuteBar
|
||
from vnpy.trader.ui.kline.ui_snapshot import UiSnapshot
|
||
from vnpy.trader.ui import create_qapp
|
||
from vnpy.data.common import get_stock_bars
|
||
|
||
if __name__ == "__main__":
|
||
|
||
# 创建一个假的策略
|
||
t1 = FakeStrategy()
|
||
|
||
# 股票代码.交易所
|
||
vt_symbol = '000001.SZSE'
|
||
# 数据周期
|
||
bar_freq = '15m'
|
||
# 一根bar代表的分钟数
|
||
bar_interval = int(bar_freq.replace('m', ''))
|
||
|
||
# 获取某个合约得的分时数据,周期是15分钟,返回数据类型是barData
|
||
print('加载数据')
|
||
bars, msg = get_stock_bars(vt_symbol=vt_symbol, freq=bar_freq)
|
||
|
||
# 创建一个15分钟bar的 kline对象
|
||
setting = {}
|
||
setting['name'] = f'{vt_symbol}_{bar_freq}'
|
||
setting['bar_interval'] = bar_interval
|
||
setting['para_ma1_len'] = 55 # 双均线
|
||
setting['para_ma2_len'] = 89
|
||
setting['para_macd_fast_len'] = 12 # 激活macd
|
||
setting['para_macd_slow_len'] = 26
|
||
setting['para_macd_signal_len'] = 9
|
||
setting['para_active_chanlun'] = True # 激活缠论
|
||
setting['price_tick'] = 1
|
||
setting['is_stock'] = True
|
||
setting['underly_symbol'] = vt_symbol.split('.')[0]
|
||
kline = CtaMinuteBar(strategy=t1, cb_on_bar=None, setting=setting)
|
||
|
||
# 推送bar到kline中
|
||
for bar in bars:
|
||
kline.add_bar(bar, bar_is_completed=True, bar_freq=bar_interval)
|
||
|
||
# 获取kline的切片数据
|
||
data = kline.get_data()
|
||
snapshot = {
|
||
'strategy': "demo",
|
||
'datetime': datetime.now(),
|
||
"kline_names": [kline.name],
|
||
"klines": {kline.name: data}}
|
||
|
||
# 创建一个GUI界面应用app
|
||
qApp = create_qapp()
|
||
|
||
# 创建切片回放工具窗口
|
||
ui = UiSnapshot()
|
||
# 显示切片内容
|
||
ui.show(snapshot_file="",
|
||
d=snapshot)
|
||
|
||
sys.exit(qApp.exec_())
|