学习日志utility.py

每收到一个Tick数据,调用bg_3m.update_tick(tick),将Tick推送到BarGenerator,按时间窗口(30秒)生成1分钟K线

每收到一个1分钟Bar数据,调用bg_3m.update_bar(bar),继续聚合生成3分钟K线

BarGenerator

输入:原始Tick或1分钟Bar数据

输出:生成3分钟K线(通过on_3m_bar回调)

原理:根据时间窗口30秒和Interval.MINUTE配置,将数据按时间对齐生成完整K线


使用ArrayManager存储最近100根3分钟K线

基于历史K线数据计算快速均线和慢速均线

on_3m_bar

将新生成的3分钟K线添加到ArrayManager

通过self.am_3m.inited判断是否已积累足够数据100根K线


ArrayManager

一个固定长度的K线数组size=100

sma()计算简单移动平均,array=True返回整个序列



策略通过事件回调on_tick、on_bar接收市场数据

利用ArrayManager高效计算技术指标生成交易信号

根据信号调用交易指令方法,结合持仓管理实现多空逻辑

通过put_event()和write_log()实现策略状态的实时监控与记录


extract_vt_symbol(vt_symbol: str)

将 vt_symbol(如 "BTC.USDT")拆分为交易对符号和交易所

generate_vt_symbol(symbol: str, exchange: Exchange)

将符号和交易所组合成 vt_symbol

get_file_path(filename: str)

获取临时文件夹中指定文件的完整路径。

load_json(filename: str) 和 save_json(filename: str, data: dict)

加载或保存JSON文件到临时目录

round_to(value: float, target: float)

将数值按目标精度四舍五入


BarGenerator

update_tick(tick: TickData)根据Tick数据生成1分钟K线

update_bar(bar: BarData)根据1分钟K线生成更高周期K线

ArrayManager

update_bar(bar: BarData)更新最新的Bar数据到数组

sma(n: int)计算简单移动平均线

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容