首页 > 其他分享 >Vortex Indicator 构建交易策略

Vortex Indicator 构建交易策略

时间:2023-07-25 20:48:29浏览次数:25  
标签:Indicator Length Vortex VM TRSum 构建 Summation

更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。

今天的文章,我们将为大家介绍一个与DMI(Directional Movement Index)类似,判断多空趋势的指标Vortex Indicator。DMI原本的概念为,计算一段周期内走势向上与向下的力度消长,判断多空强弱。而向上的力度在概念上使用今天高点与昨天高点的差值,若今天高点比昨天高点高越多,则表示向上力度比较强。向下的力度则相反。

Vortex Indicator的概念与DMI略有不同,向上力度的计算为使用今天的高点与昨天的低点差值的绝对值,向下力度的计算为使用今天的低点与昨天的低点差值的绝对值。

Vortex Indicator计算方式

1.用当日最高价减去前一日最低价取绝对值:VM+= AbsValue(High - Low[1])

2.用当日最低价减去前一日最高价取绝对值:VM- = AbsValue(Low - High[1])

3.将周期内的VM+加总:VMPlusSum = Summation(VM+,Length)

4.将周期内的VM-加总:VMMinusSum = Summation(VM-,Length)

5.将周期内每日的真实波动区间加总:TRSum = Summation(TrueRange,Length)

6.最后将VMPlusSum除以TRSum则可得+VM7.最后将VMMinusSum除以TRSum则可得-VM

Vortex Indicator多空判断

若+VM从下向上穿越-VM则目前市场趋势为多头

若-VM从下向上穿越-VM则目前市场趋势为空头

Vortex Indicator效果展示

计算方式在K线图上图标化的话很像涡旋(Vortex)的图案,因此取名为Vortex Indicator。

Vortex Indicator指标代码(MC版)

//Indicator:  Vortex

inputs:Length( 14 ) ;
variables:VMPlus( 0 ),VMMinus( 0 ),VMPlusSum( 0 ),VMMinusSum( 0 ),TR( 0 ),TRSum( 0 ),VIPlusSumRge( 0 ),VIMinusSumRge( 0 ),DX(0),ADXX(0);

VMPlus = AbsValue( High - Low[1] ) ;
VMMinus = AbsValue( Low - High[1] ) ;
VMPlusSum = Summation( VMPlus, Length ) ;
VMMinusSum = Summation( VMMinus, Length ) ;
TR = TrueRange ;
TRSum = Summation( TR, Length ) ;

if TRSum <> 0  then
 begin
 VIPlusSumRge = VMPlusSum / TRSum ;
 VIMinusSumRge = VMMinusSum / TRSum ;
 end ;

Plot1( VIPlusSumRge, "VI+Sum/Rge", Green ) ;
Plot2( VIMinusSumRge, "VI-Sum/Rge", Red ) ;

Vortex Indicator交易策略(MC版)

接下来使用Vortex指标回测一个顺势交易策略

1.+VM穿越-VM时判断为多头,突破穿越时的价格高点做多

2.-VM穿越+VM时判断为空头,突破穿越时的价格低点做空

3.多空反手,没有其它出场条件,一直在市

inputs:Length( 14 ); 
variables:VMPlus( 0 ),VMMinus( 0 ),VMPlusSum( 0 ),VMMinusSum( 0 ),TR( 0 ),TRSum( 0 ),
 VIPlusSumRge( 0 ),VIMinusSumRge( 0 ),SignalTradeNum( 0 ),BuySignal( false ),
 ShortSignal( false ),StopPrice( 0 ) ;

VMPlus = AbsValue( High - Low[1] ) ;
VMMinus = AbsValue( Low - High[1] ) ;
VMPlusSum = Summation( VMPlus, Length ) ;
VMMinusSum = Summation( VMMinus, Length ) ;
TR = TrueRange ;
TRSum = Summation( TR, Length ) ;

if TRSum <> 0  then
 begin
 VIPlusSumRge = VMPlusSum / TRSum ;
 VIMinusSumRge = VMMinusSum / TRSum ;
 end ;

if VIPlusSumRge crosses over VIMinusSumRge then
 begin
 SignalTradeNum = TotalTrades ;
 BuySignal = true ;
 ShortSignal = false ; 
 StopPrice = High ;
 end 
else if VIPlusSumRge crosses under VIMinusSumRge then
 begin
 SignalTradeNum = TotalTrades ;
 BuySignal = false ;
 ShortSignal = true ; 
 StopPrice = Low ;
 end ;

if BuySignal and TotalTrades = SignalTradeNum and MarketPosition <> 1 then
 Buy next bar StopPrice stop ;

if ShortSignal and TotalTrades = SignalTradeNum and MarketPosition <> -1 then
 SellShort next bar at StopPrice stop ;

以下是Vortex策略在K线上的交易信号示例

策略回测绩效(MC版)

策略在台湾指数期货60分钟K线的回测绩效:

策略在NYMEX轻原油120分钟K线的回测绩效:

 

 

 

标签:Indicator,Length,Vortex,VM,TRSum,构建,Summation
From: https://www.cnblogs.com/sljsz/p/17580949.html

相关文章

  • 金融领域:产业链知识图谱包括上市公司、行业和产品共3类实体,构建并形成了一个节点10w+
    金融领域:产业链知识图谱包括上市公司、行业和产品共3类实体,构建并形成了一个节点10w+,关系边16w的十万级别产业链图谱包括上市公司所属行业关系、行业上级关系、产品上游原材料关系、产品下游产品关系、公司主营产品、产品小类共6大类。上市公司4,654家,行业511个,产品95,559条、上......
  • 用Dockerfile实现构建带sshd服务的自定义镜像
    使用Dockerfile构建带sshd服务的自定义镜像教程简介Docker是一种轻量级的容器化平台,可以帮助我们更方便地构建、部署和运行应用程序。本教程将教你如何使用Dockerfile来构建一个带sshd服务的自定义镜像。整体流程下面是构建自定义镜像的整体流程,我们将通过表格的形式展示每个步......
  • 中企出海,数智人力构建全球化组织的驱动力!
    人力资源管理在中企出海过程中扮演着重要的角色。随着中国企业日益走向全球化,跨国经营的挑战变得更加复杂而紧迫。在这个过程中,有效的人力资源管理策略和实践对于中企成功进入海外市场至关重要。在与海外企业交流时,用友网络副总裁张月强提出了一个重要问题:在发展全球化业务时,组织发......
  • 在centos 7.9 的docker上构建php 5.6
    1、搜索镜像[root@localhost~]#dockersearchphp 2、拉去镜像[root@localhost~]#dockerpullphp:5.6-fpm 3、查看镜像[root@localhost~]#dockerimages 4、nginx+php部署注意:在操作此步骤之前,你nginx的容器必须是已经构建过的,构建步骤参考docker分类中......
  • 巧妙构建查询数据一例
    经常在数据库完成各类查询需要相当多的数据,或先建表再查询,对于基于查询验证时非常麻烦,这里介绍可以无需建立表就能直接用sql构造数据且查询的方法SELECTt1.AREA,t1.USE,t2.nameASDATA_TYPE,COALESCE(t1.PROG_NUM,0)ASPROG_NUMFROM(--第一......
  • 傻瓜式零代码 临床预测模型构建、评价、验证LogisticApp
    傻瓜式临床预测模型软件LogisticApp无需复杂冗长的代码只需要鼠标点点,即可轻松完成3分SCI支持Windows32位、64位,Macintel芯片、M1/M2芯片视频教程见B站up主:R语言临床预测模型1LogisticApp简介傻瓜式零代码Logistic临床预测模型构建、评价、验证。......
  • (数据科学学习手札153)基于martin的高性能矢量切片地图服务构建
    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes1简介大家好我是费老师,在日常研发地图类应用的场景中,为了在地图上快速加载大量的矢量要素,且方便快捷的在前端处理矢量的样式,且矢量数据可以携带对应的若干属性字段,目前主流的做法......
  • UE4构建基础和实践:一、概述
    序言构建这个概念是和应用程序包及资源等相关的,它的特点是使用脚本控制一系列的任务的处理,以减少人力操作带来的成本和操作失误风险。在UE的概念里,构建往往是和打包相关的(如编译、cook、压缩打包等)。但是在项目日常的开发中,构建的语义会更加的广泛,据我所知它可能包含:打各个平......
  • UE4构建基础和实践:二、Editor打包Win&Android
    此次打包使用的是5.2版本Win包操作流程参考打包项目|UE文档设置默认地图点击创建打包文件解释&分析产物分析打开打包时设置输出目录,大概如下:可以看到大概有下面几个文件目录:-ProjectName:我的项目名是BuildTest,所以文件名为BuildTest-Engine:引擎相关目录-Bui......
  • UE4构建基础&实践:三、UAT命令打包
    序言在上一篇文章中,我们使用了Editor进行打包,提到了日志的中的打包命令和参数。这一篇中,我们将实践使用UAT和默认命令打包Android,并介绍相关参数和用法。UAT&打包命令首先给出UAT工具的运行方法和打包命令参数:UAT在引擎目录下找到Engine\Build\BatchFiles的RunUAT.bat文件......