术语表

术语本书中的含义
K 线汇总一个时间段的开盘、最高、最低、收盘和成交量的数据
时间周期单根 K 线的时间分辨率,例如一天
OHLCVOpen、High、Low、Close、Volume,K 线的五项基本数据
价格图表按时间顺序展示数据的图表
指标从数据计算数值并显示的程序
策略还会向模拟器提供订单规则的程序
回测在指定执行模型下,用历史数据运行策略
变量程序用来关联某个值的名称
类型值或变量的种类,例如数字、逻辑值或数组
UDT用户自定义类型,把多项相关数据组织在一起
对象类型的具体实例,保存自己的字段值
字段对象中可通过名称访问的数据
方法与某个类型相关的操作
函数可调用、有名称的操作或计算
参数函数定义中的输入名称
实参调用时传给参数的具体值
Input用户可修改的程序输入
作用域名称在代码中可见的范围
历史值某根先前 K 线的值,或带状态调用在此前执行中的值
状态为下一次执行保留的数据
Series保留先前 K 线的值,以便通过历史引用访问的变量标注
Persistent仅初始化一次,并在 K 线之间保留所存值的变量标注
na缺失、不可用的值
SMA简单移动平均
EMA指数移动平均
预热期收集计算所需初始数据的阶段
交叉两个值的相对顺序沿指定方向改变
断点调试器可以暂停运行的代码位置
Tick市场最小价格变动单位
滑点模型中让成交价向不利方向偏移的价格差
订单向回测模拟器发出的买入或卖出指令;提交订单本身并不代表已经成交
成交订单的全部或部分按特定价格和数量执行
佣金成交时收取的交易费用,计入回测成本
点值持有一单位交易品种时,价格变动一个完整价格单位所对应的金额
多头未计成本时,价格上涨会获利、价格下跌会亏损的持仓
持仓入场成交后持有的头寸
账户权益将未平仓头寸价值一并考虑的账户资金
回撤账户资金相对于此前高点的回落

查找代码写法

任务代码形式
当前收盘价close
上一根收盘价close[1]
带 K 线历史的自定义计算value: Series[float] = ...
跨 K 线保留的计数器count: Persistent[int] = 0
检查缺失na(value)
五根 K 线的简单平均ta.sma(close, 5)
上穿ta.crossover(first, second)
条件操作if condition:
在两个值之间选择first if condition else second
重复五次,编号从 0 到 4for index in range(5):
在数组末尾添加元素array.push(values, value)
多头入场订单strategy.entry("Long", strategy.long)
对指定入场进行市价平仓strategy.close("Long")
用距离指定止损与目标strategy.exit("Exit", "Long", loss=100, profit=200)

表中是片段,不是完整程序。完整文件和导入见相应章节及示例包。

PyneIDE 操作

目的在哪里找?
创建项目PyneIDE 菜单 → Initialize Pyne Project
设置运行环境PyneIDE 菜单 → Setup Environment
运行程序代码上方 Run Pyne code
编辑输入编辑器右上角 Edit Inputs… 齿轮
启动调试代码上方 Debug
下一根 K 线调试浮动工具栏 Next Bar
前进到指定 K 线调试浮动工具栏 Run to Bar…
交易结果图表下方面板 Trades
资金曲线图表下方面板 Performance
详细统计图表下方面板 Stats
策略属性Strategy properties,再选 Properties
导出绘图值图表工具栏 Open plot output CSV
导出交易图表工具栏 Open trades output CSV

详细文档

全部函数实参和更多类型可查阅 PyneCore 文档。配合本书示例,可以打开这些部分:

遇到陌生调用,先查输入类型、结果类型,以及历史或状态如何管理,再在一个小型独立程序中试用,使预期结果能手算跟踪。