量化交易:Dual Thrust策略

哈喽,大家好,我是木头左!

Dual Thrust策略起源于20世纪80年代,由美国著名交易员和金融作家Larry Williams首次提出。这一策略的核心思想是通过捕捉市场中的短期波动来实现盈利。Larry Williams通过多年的研究和实践,发现市场中存在一种周期性的波动模式,通过这种模式可以预测价格的短期走势。

策略原理

Dual Thrust策略的核心思想是利用市场的波动性来捕捉趋势。Dual Thrust策略主要依赖于两个关键参数:Range和ATR(平均真实波动范围)。Range是指当前收盘价与前一个交易日的最高价和最低价之间的最大距离,而ATR则是过去一段时间内Range的平均值。通过这两个参数,投资者可以确定买入和卖出的触发点,从而实现盈利。该策略通过计算上轨和下轨两个阈值,来判断市场的多空方向。当价格突破上轨时,策略认为市场处于多头趋势,进行做多操作;当价格跌破下轨时,策略认为市场处于空头趋势,进行做空操作。上轨和下轨的计算公式如下:

上轨:开盘价 + K1 * 波动
下轨:开盘价 - K2 * 波动

其中,波动是指在给定的时间窗口内,最高价与最低价之间的最大差值。K1和K2是两个参数,用于调整上下轨的敏感度。

在聚宽平台运行Python代码

选股方式

在Dual Thrust策略中,选股方式相对简单。选择一个特定的合约作为交易标的,例如螺纹钢(SHFE.RB)。在策略初始化时,订阅该合约,并设置相关参数。

def init(context):context.symbol = 'SHFE.RB'context.N = 5context.k1 = 0.2context.k2 = 0.2schedule(schedule_func=algo, date_rule='1d', time_rule='21:00:00')schedule(schedule_func=algo, date_rule='1d', time_rule='09:30:00')
择时

择时是Dual Thrust策略的关键环节。通过计算历史数据中的最高价、最低价、收盘价等信息,来确定上下轨的位置。在每个交易时段开始时,计算当前的上下轨,并根据这些阈值来决定交易方向。

def algo(context):# ...(省略部分代码)data = history_n(symbol=context.main_contract, frequency='1d', end_time=context.now,fields='symbol,open,high,low,close', count=context.N + 1, df=True)current_open = data.open.iloc[-1]data.drop(context.N, inplace=True)HH = data['high'].max()HC = data['close'].max()LC = data['close'].min()LL = data['low'].min()range = max(HH - LC, HC - LL)context.buy_line = current_open + range * context.k1context.sell_line = current_open - range * context.k2
策略交易

在每个交易时段,根据当前价格与上下轨的关系,来执行交易操作。如果价格突破上轨,进行做多操作;如果价格跌破下轨,进行做空操作。同时,还需要处理平仓和开仓的逻辑。

def on_bar(context, bars):bar = bars[0]positions = get_position()position_long = list(filter(lambda x: x['symbol'] == context.main_contract and x['side'] == PositionSide_Long, positions))if bar.close > context.buy_line:# 情况1:已经持有多仓,直接返回if position_long:  return# 情况2:没有持仓时,直接开多仓            else: order_volume(symbol=context.main_contract, volume=1, side=OrderSide_Buy, order_type=OrderType_Limit, position_effect=PositionEffect_Open, price=bar.close)elif bar.close < context.sell_line:order_volume(symbol=context.main_contract, volume=1, side=OrderSide_Sell, order_type=OrderType_Limit, position_effect=PositionEffect_Close, price=bar.close)

策略的优势与风险

简化版的Dual Thrust策略在股票市场中具有以下优势:

  1. 简单易懂:策略逻辑简单,易于理解和实施。
  2. 趋势跟踪:能够捕捉市场的主要趋势,提高收益。
  3. 适应性强:适用于多种股票、期货市场环境。
    市场有风险,交易需谨慎。
    感兴趣的朋友,可以共同交流!

我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/12185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能EDM邮件群发工具哪个好?

企业之间的竞争日益激烈&#xff0c;如何高效、精准地触达目标客户&#xff0c;成为每个市场战略家必须面对的挑战。在此背景下&#xff0c;云衔科技凭借其前沿的AI技术和深厚的行业洞察&#xff0c;匠心推出了全方位一站式智能EDM邮件营销服务平台&#xff0c;重新定义了邮件营…

[ECE] SRAM DRAM

SRAM&#xff08;Static Random-Access Memory&#xff0c;静态随机存取存储器&#xff09;和DRAM&#xff08;Dynamic Random-Access Memory&#xff0c;动态随机存取存储器&#xff09;是两种主要的随机存取存储器技术&#xff0c;它们在计算机和其他电子设备中扮演着重要的角…

2024OD机试卷-字符串序列判定 (java\python\c++)

题目:字符串序列判定 题目描述 输入两个字符串 S 和 L ,都只包含英文小写字母。S长度 ≤ 100,L长度 ≤ 500,000。判定S是否是L的有效子串。 判定规则:S 中的每个字符在 L 中都能找到(可以不连续),且 S 在L中字符的前后顺序与 S 中顺序要保持一致。(例如,S = ” ace…

StringBuilder

demo1 描述&#xff1a; 主要演示了StringBuilder类的使用。 首先创建一个空的StringBuilder对象s。 使用System.out.println()方法打印对象s&#xff0c;输出结果为""&#xff08;空字符串&#xff09;。 调用StringBuilder的append()方法多次&#xff0c;将字符串…

半小时搞懂STM32面经知识——RCC

1. 时钟的概念 时钟是由电路产生的具有周期性的脉冲信号&#xff0c;相当于单片机的心脏&#xff0c;要想使用单片机的外设必须开启时钟。 时钟对单片机有什么作用&#xff1f; 1. 驱动外设的本质是寄存器&#xff0c;而寄存器需要时钟触发才能改写值。 2. 时钟频率越高&#…

安全风险 - 如何解决 setAccessible(true) 带来的安全风险?

可能每款成熟的金融app上架前都会经过层层安全检测才能执行上架&#xff0c;所以我隔三差五就能看到安全检测报告中提到的问题&#xff0c;根据问题的不同级别&#xff0c;处理的优先级也有所不同&#xff0c;此次讲的主要是一个 “轻度问题” &#xff0c;个人认为属于那种可改…

FinnConverter格式转换工具

FinnConverter简介 1. 简洁的操作界面 2. 支持多种格式相互转换 支持word转pdf&#xff1b;ppt转pdf&#xff1b;raw格式转png/jpng…&#xff1b;其他格式相互转换 2.1 输入格式支持 bmp、cr2、cr3、crw、cur、dcr、dng、doc、docx、gif、ico、jpeg、jpg、kdc、mos、nef、…

线程纵横:C++并发编程的深度解析与实践

hello &#xff01;大家好呀&#xff01; 欢迎大家来到我的Linux高性能服务器编程系列之《线程纵横&#xff1a;C并发编程的深度解析与实践》&#xff0c;在这篇文章中&#xff0c;你将会学习到C新特性&#xff0c;并发编程&#xff0c;以及其如何带来的高性能的魅力&#xff0…

LeetCode hot100-39-N

101. 对称二叉树给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。做不出来哇&#xff0c;递归一生之敌 普通的对一棵树的递归遍历根本没办法只接比较左子树的左和右子树的右这样来比较&#xff0c;所以这题比较巧妙的是把这棵树当做两棵树一样去遍历比较。 官方…

使用XxlCrawler抓取全球航空公司ICAO三字码

目录 前言 一、数据源介绍 1、目标网站 2、页面渲染结构 二、XxlCrawler信息获取 1、创建XxlCrawler对象 2、定义PageVo对象 3、直接PageVO解析 4、自定义解析 总结 前言 长距离旅行或者出差&#xff0c;飞机一定是出行的必备方式。对于旅行达人或者出差人员而言&…

中国目前比较有影响力的人物颜廷利:物质与无知通音

既然是在中国优秀传统文化之根-汉语当中&#xff0c;汉字‘物质’二字跟‘无知’通音&#xff0c;因此&#xff0c;面对当前金钱肆虐、物欲横流的现实生活&#xff0c;当人类众生把‘物质’&#xff08;无知&#xff09;生活看的太真、太重时&#xff0c;那么&#xff0c;这就很…

什么是wamp

WAMP是一个缩写&#xff0c;代表Windows、Apache、MySQL和PHP。它是一个用于本地开发网络应用程序的软件堆栈&#xff0c;主要用于在Windows操作系统上搭建Web服务器环境。WAMP提供了一个简单的方式&#xff0c;让开发者可以在本地计算机上模拟一个Web服务器环境&#xff0c;以…

Python模块之Numpy(四)-- 矩阵

矩阵的创建 在NumPy中&#xff0c;矩阵是ndarray的子类&#xff0c;常用来创建矩阵的函数有mat、matrix以及bmat&#xff0c;使用如下&#xff1a; import numpy as np matr1 np.mat("1 1 1; 2 2 2;3 3 3") #矩阵的行用分号隔开,列用空格隔开 matr2 np.matrix([[1…

Banana Pi BPI-F3, 进迭时空K1芯片设计,定位工业级应用,网络通信及工业自动化

香蕉派BPI-F3是一款工业级 8核RISC-V开源硬件开发板&#xff0c;它采用进迭时空&#xff08;SpacemiT&#xff09; K1 8核RISC-V芯片设计&#xff0c;CPU集成2.0 TOPs AI计算能力。4G DDR和16G eMMC。2个GbE以太网接口&#xff0c;4个USB 3.0和PCIe M.2接口&#xff0c;支持HDM…

kafka SSL加密 —— 筑梦之路

生成SSL证书文件脚本 #!/bin/bash ################################## 设置环境变量 ############################## BASE_DIR/mnt/disk/test # SSL各种生成文件的基础路径 CERT_OUTPUT_PATH"$BASE_DIR/certificates" # 证书文…

Jenkins构建流程

Jenkins是DevOps【(Development和Operations的混成词&#xff09;是一种重视“软件开发人员&#xff08;Dev&#xff09;”和“IT运维技术人员&#xff08;Ops&#xff09;”之间沟通合作的文化、运动或惯例)】的重要一环&#xff0c;是一款开源的CI&CD软件。也就是持续集成…

汽车行业软件开发V 模型与医疗行业异同,与传统瀑布开发模型区别

软件开发在汽车和医疗行业 V 模型的异同 V 模型是一种软件开发过程中的验证和确认模型&#xff0c;它被用来表示软件开发的各个阶段和它们的验证/ 确认活动。 在汽车和医疗行业中&#xff0c;V模型的使用有一些相似之处&#xff0c;但也有一些不同之处。 相同之处: 都使用V 模…

【LeetCode】【滑动窗口】【双指针】长度最小的子数组

题目&#xff1a;209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度。如…

【Viso画图】Viso导出与图形适配的pdf

step1:选中开发工具点击shapeSheet&#xff0c;选中页 step2&#xff1a;进入页面参数设置窗口&#xff0c;将下面框选的参数设为0,enter后保存 目前效果&#xff1a; step3:选中设计->大小&#xff0c;选择适应页面大小或者自己根据图片调整 目前效果&#xff1a; step4: 以…

【C++】priority_queues(优先级队列)和反向迭代器适配器的实现

目录 一、 priority_queue1.priority_queue的介绍2.priority_queue的使用2.1、接口使用说明2.2、优先级队列的使用样例 3.priority_queue的底层实现3.1、库里面关于priority_queue的定义3.2、仿函数1.什么是仿函数&#xff1f;2.仿函数样例 3.3、实现优先级队列1. 1.0版本的实现…