Dual Thrust 商品期货 (注释版)
- 基本原理
在当天收盘,计算两个值: 最高价-收盘价,和收盘价-最低价。然后取这两个值较大的那个,乘以k值,结果称为触发值。
在第二天开盘,记录开盘价,然后在价格超过(开盘+触发值)时马上买入,或者价格低于(开盘-触发值)时马上卖空。
这个系统是反转系统,没有单独止损。也就是说,反向信号也同时就是平仓信号。
图解
Dual Thrust 策略包含完整的图表显示, 图表动态更新,模板引用等功能, 可做学习模板使用.
策略的详细介绍 : http://xueqiu.com/5256769224/32429363
注释版 源码:
/* 引用的类库
《商品期货交易类库》 引用了这个 模板,具体模板代码 可以在 策略广场 找到,也有注释版的(注释版在论坛,即 交流社区)
*/
/* 参数名称(全局变量) 中文含义 数据类型 值
ContractTypeName 合约品种 字符串(string) MA701
NPeriod 计算周期 数字型(number) 4
Ks 上轨系数 数字型(number) 0.5
Kx 下轨系数 数字型(number) 0.5
AmountOP 开仓合约张数 数字型(number) 1
Interval 重试间隔(毫秒) 数字型(number) 2000
LoopInterval 轮询间隔(秒) 数字型(number) 3
PeriodShow 图表最大显示K线柱数 数字型(number) 500
NotifyWX 下单微信通知 布尔型(true/false) true
CoverAll 启动策略时清空合约仓位 布尔型(true/false) false
*/
var ChartCfg = { // ChartCfg 是一个 全局 JS 对象, 用来 初始化 策略图表 设置。 对象有很多关于图表功能的属性。 图表库为:HighCharts
__isStock: true, // 该属性用于 控制 是否显示为 单独控制 数据序列(可以在图表上取消单独一个 数据序列的显示),如果指定__isStock: false, 则显示为普通图表
title: { // title : 图表的主要 标题
text: 'Dual Thrust 上下轨图' // title 的一个属性 text : 标题的 文本, 这里 设置为 'Dual Thrust 上下轨图' 该文本就会显示在标题位置
},
yAxis: { // 图表 坐标Y轴的 相关设置
plotLines: [{ // Y轴上的 水平线 (和Y轴垂直) ,该属性的值是一个数组,即 多条水平线的设置
value: 0, // 水平线 在Y轴上的坐标值
color: 'red', // 水平线的颜色
width: 2, // 水平线的 线宽
label: { // 水平线 上的 标签
text: '上轨', // 标签的 文本
align: 'center' // 标签 的显示位置,这里设置 为 居中(即 :'center')
},
}, { // 第二条 水平线 ( [{...},{...}] 数组中的第二个 元素)
value: 0, // 水平线 在Y轴上的坐标值
color: 'green', // 水平线的颜色
width: 2, // 水平线的 线宽
label: { // 标签
text: '下轨',
align: 'center'
},
}]
},
series: [{ // 数据序列, 即用来 在图表上显示 数据线 、K线、标记 等等 内容的 数据。 也是一个数组 第一个 索引为 0 。
type: 'candlestick', // 索引为0 数据序列的 类型: 'candlestick' 表示为 K线图
name: '当前周期', // 数据序列的 名称
id: 'primary', // 数据序列的ID ,用于 下一个数据序列相关设置。
data: [] // 数据序列的 数组, 用于储存具体的 K线数据
}, {
type: 'flags', // 数据序列 ,类型 : 'flags',在图表上显示 标签,表示 做多 和 做空。 索引为 1 。
onSeries: 'primary', // 这个属性 表示 标签 显示在 id 为 'primary' 上。
data: [], // 保存 标签数据的 数组。
}]
};
var STATE_IDLE = 0; // 状态常量, 表示 空闲
<