1. 痛点
很多用户希望导出自己的实盘成交记录,在 K 线图复盘,显示出对应的买卖点,还能切换到更小的周期,具体分析自己的买卖时机,这个需求如何在投研端方便实现?
2. 实现效果及说明

- 买入信号用“B”标注,
- 卖出信号用“S”标注。
- 对于日线交易周期,在同一天内存在买入和卖出操作时,用“T”来标记。
- 针对更短的周期(如5分钟、1分钟、30分钟等),在不同时间点发生交易操作时,会根据相应的时间点添加买入信号“B”或卖出信号“S”。
- 这样的标注会随着交易周期的变化而重新绘制,展示交易订单数据中的“B”、“S”和“T”信息。
3. 使用方法
第一步:准备好符合格式要求的交易流水文件
第二步:写VBA函数读取交易流水文件
第三步:设置VBA图标交易参数
3.1 交易流水表格式
交易流水记录以 CSV 格式存储,格式如下所示:
时间,品种代码,操作类型,价格,数量

3.2 读取成交流水表
使用 VBA 函数 readsignal 读取交易信号,该函数接受两个参数:
filePath : 文件路径(包括文件名),类型为字符串,例如 'C:\\Users\\admin\\Desktop\\231226.csv'
stockcode : 品种代码,类型为字符串,例如 '600000.SH'。如果传入空值,表示读取 CSV 文件中所有品种的记录。
3.3 画买卖点信号标识
使用 VBA 函数 drawsignal 绘制交易信号,该函数接受三个参数:
cond : 绘制条件,布尔类型。
sigType : 信号类型,数值类型。0 表示买入(画'B'),1 表示卖出(画'S')。
price : 绘制价格的位置,数值类型。传入 0 则默认绘制在 K 线图上方。
3.4 图标交易参数设置
- 1.要选择主图叠加
- 2.可以选择一个csv中的合约作为默认品种
- 3.选择默认周期

- 4.切换到行情主图界面
- 1.和默认品种一致
- 2.周期为默认周期‘日线’
- 3.行情界面

3.5 VBA示例代码
data:=readsignal('C:\\Users\\admin\\Desktop\\231226.csv',stockcode);//表示读取csv文件中当前主图品种的记录
for it in data do begin
printout(barpos,numtostr(it.timetag,0),it.date,it.time,it.stockcode,it.operation,it.price,it.volume,'\n');
drawsignal(inbar(strtonum(it.date),strtonum(it.time)) and it.operation='B',0,0);
drawsignal(inbar(strtonum(it.date),strtonum(it.time)) and it.operation='S',1,0);
end
4.VBA效果图展示如下
4.1 日线展示
由于 CSV 表格记录了在同一天的 14:30 和 14:39 进行的买卖操作,因此当天的 K 线图上标记为"T"。

4.2 5分钟展示
由于 CSV 表格记录了同一天的 14:30 和 14:39 的买卖操作,因此会在 14:30 时画出买入信号"B",在 14:40 时画出卖出信号"S"。

5. 注意事项
在 VBA 中完成一个周期的买卖信号绘制后,若需查看其他更短周期的信号,可直接切换周期或更换合约,然后通过搜索执行相应操作。

|