Python牛市熊市横盘机制 | 缺口分析 | 头寸调整算法

🎯要点

🎯长短期方式:🖊标准普尔指数一年期看涨/看跌走势 | 🖊软银美元基准纳斯达克走势。

🎯市场机制:🖊代码定义市场,彩色图表绘制多种机制 | 🖊牛市熊市区间突破机制:代码定义,获取开盘最高最低收盘价格,绘制软银一年高/低机制突破 | 🖊海龟不对称区间突破策略获取小额利润:绘制软银不对称机制突破持续时间 | 🖊移动平均线看涨看跌:绘制软银使用海龟突破、简单和指数移动平均线涨跌走势 | 🖊绘图示意软银亏损区域 | 🖊绘图示意软银对海龟实施跨界策略 | 🖊下限/上限方法:计算标普指数分形高点,检测价格走势、定义机制:经典牛市、经典熊市、横盘。

🎯获利优势数学公式:算术收益预期、几何收益预期、头寸调整算法 | 🎯统计稳健性下注规模策略:利润和亏损。

🎯Python和MATLAB及C++资产价格看涨看跌对冲模型和微积分。

🍇Python缺口分析简单交易策略

您仍然会记得交易策略是在市场中做多或做空的固定计划,但您还没有真正获得更多信息;一般来说,有两种常见的交易策略:动量策略和回归策略。

首先,动量策略也被称为背离或趋势交易。当你遵循这一策略时,是因为你相信数量会继续沿着当前方向移动。换句话说,你相信股票有动量或上升或下降趋势,你可以发现并利用这些趋势。该策略的一些示例包括移动平均线交叉、双移动平均线交叉和海龟交易:

其次,回归策略,也称为收敛或周期交易。这种策略背离了数量变动最终会逆转的信念。看看均值回归策略,你实际上相信股票会回归其均值,并且当股票偏离均值时你可以利用这一策略。

除了均值回归策略之外,这种策略的另一个例子是配对交易均值回归,它与均值回归策略类似。均值回归策略基本上表明股票会回归均值,而配对交易策略则对此进行了扩展,并指出如果可以确定两只股票具有相对较高的相关性,则可以使用这两只股票之间价格差异的变化来发出信号,以表明其中一只股票与另一只股票不再具有相关性。这意味着,如果两只股票之间的相关性下降,则可以认为价格较高的股票处于空头仓位。应该卖出这只股票,因为价格较高的股票将回归均值。另一方面,价格较低的股票将处于多头仓位,因为随着相关性恢复正常,价格将上涨。

除了这两种最常见的策略之外,还有其他策略你可能偶尔会遇到,比如预测策略,它试图根据某些历史因素预测股票在未来一段时间的走向或价值。还有高频交易策略,它利用亚毫秒级的市场微观结构。

💦Python构建简单交易策略

日内交易是一种投机行为,交易者在同一交易日内买入和卖出某些金融工具(例如股票)。通过这种方式,交易者可以避免潜在的不可控风险以及当日收盘价与次日开盘价之间的负价格变化。此类交易者通常在一天内进行多笔交易,而且经常使用杠杆。

在交易中,存在许多不同类型的缺口,每种缺口都有不同的解释并表明不同的交易决策。在本文中,我们将重点关注最基本的概念,为简单起见,称为向上缺口和向下缺口。

当某种工具的开盘价高于前一天的收盘价时,就会出现跳空。类似地,当开盘价低于前一天收盘价时,就会出现缺口。准确地说,这两种模式被称为部分缺口。它们的完整对应物非常相似,但涉及最高价和最低价。例如,当开盘价高于前一天的最高价时,就会出现完全上涨缺口。您还可以根据部分缺口和完全缺口的组合来创建策略。在这种情况下,部分缺口只是开盘价介于收盘价和最高价之间(上涨缺口)或收盘价和最低价之间(下跌缺口)。

import numpy as np
import pandas as pd
import warnings
import plotly.graph_objects as go
import matplotlib.pyplot as plt
plt.style.use('seaborn')
warnings.simplefilter(action='ignore', category=FutureWarning)

下一步,让我们下载某公司在 2019-2021 年期间的股价。我没有太关注资产或时间范围,因此没有挑选出最好的来展示日内交易有多么神奇。您可以随意更改资产和时间范围以进行自己的实验!

TICKER = "NX"df = ydf.download(TICKER, start="2019-01-01", end="2021-04-30", auto_adjust=True)df["Close"].plot(title=f"{TICKER}'s stock price");

由于我们将使用比收盘价更多的价格,因此如果出现任何公司行为,自动调整所有价格会更安全。为了调查缺口是否存在,让我们更进一步并创建一个烛台图。我们可以通过plotly轻松做到这一点。

fig = go.Figure(data=[go.Candlestick(x=df.index,open=df["Open"],high=df["High"],low=df["Low"],close=df["Close"])]
)fig.update_layout(title=f"{TICKER}'s adjusted stock price",yaxis_title="Price ($)"
)fig.show()

需要考虑的内容相当多(尽管您已经可以看到一些缺口),所以让我们放大到 2020 年 3 月。在下图中,我们可以清楚地看到缺口上升和缺口下降。

下一步是实际编码我们将按照我们的策略开仓的头寸。因为我们只看过去,所以我们可以在 pandas 中通过简单的数据整理轻松完成。我们使用 1 编码多头头寸,使用 -1 编码空头头寸。这将简化计算策略的收益。

df["position"] = np.nan
df.loc[df["Open"] > df["Close"].shift(1), "position"] = 1
df.loc[df["Open"] < df["Close"].shift(1), "position"] = -1df = df.dropna()

我们有仓位,现在我们需要看看通过遵循这样的策略我们能赚多少钱(如果有的话)。为此,我们通过查看开盘价和收盘价之间的差额来计算日内回报。然后,我们将回报乘以仓位。最后,我们计算累计回报。

df["rtn"] = (df['Close'] - df['Open']) / df['Open']
df['strategy_rtn'] = df["rtn"] * df["position"]
df['strategy_cum_rtn'] = (df['strategy_rtn'] + 1).cumprod()
df["strategy_cum_rtn"].plot(title="Gap strategy's cumulative returns");

最终,缺口策略产生了约 220% 的回报。这是一项相当大的成就,但是,我们需要意识到这样一个事实:该策略过去的表现并不能预示未来的表现!

👉参阅一:计算思维

👉参阅二:亚图跨际

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

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

相关文章

sub_mch_id 与 sub_appid 不匹配怎么解决

小程序在支付的时候&#xff0c;有时候会碰到&#xff1a;sub_mch_id 与 sub_appid 不匹配的问题。这个问题意味着小程序微信支付时所使用的 sub_mch_id&#xff08;子商户号&#xff09;和 sub_appid&#xff08;小程序的appId&#xff09;不对应。下面就具体介绍如何核对是否…

AI-知识库搭建(二)GPT-Embedding模型使用

上一篇&#xff1a;AI-知识库搭建&#xff08;一&#xff09;腾讯云向量数据库使用-CSDN博客 一、Embedding模型 Embedding模型是一种将高维度的离散数据&#xff08;如文本、图像、音频等&#xff09;映射到低维度的连续向量空间的技术。这种技术广泛应用于自然语言处理&…

武汉理工大学嵌入式系统应用之临时抱佛脚复习

其实大学很多课程的期末冲刺复习非常简单&#xff0c;就是在大脑中构建一个redis数据库就行了&#xff0c;缓存下一大堆键值对&#xff0c;然后考试的时候输出&#xff0c;很没意思。 嵌入式系统的定义 以应用为中心&#xff0c;以计算机技术为基础&#xff0c;软件硬件可裁剪…

LabVIEW控制PLC的实现方式

LabVIEW与PLC的结合可以充分发挥两者的优点&#xff0c;实现更高效、灵活和可靠的自动化控制系统。本文将详细介绍LabVIEW控制PLC的实现方式&#xff0c;包括通信接口、数据交换、编程方法及实际应用案例&#xff0c;帮助用户理解并应用这一技术。 通信接口 常见通信协议 La…

WHAT - 富文本编辑器系列(一)

目录 一、介绍1.1 丰富的功能基本功能媒体和文件链接和锚点表格嵌入对象编辑和协作&#xff08;高级功能&#xff09;可访问性和国际化&#xff08;高级功能&#xff09;插件和扩展安全性集成和兼容性 1.2 流行的前端富文本编辑器1. TinyMCE2. CKEditor3. Quill【大厂推荐】4. …

LabVIEW与PLC的区别

LabVIEW和PLC是工业自动化领域中常见的两种控制和测控方案&#xff0c;各自有独特的优点和适用场景。本文将从多角度比较两者&#xff0c;帮助用户在选择控制系统时做出更明智的决策。 技术背景 LabVIEW LabVIEW是由National Instruments公司开发的图形化编程环境&#xff0…

【集装箱调度】基于粒子群算法实现考虑重量限制和时间约束的集装箱码头满载AGV自动化调度附matlab代码

% 交叉定位 - 最小二乘法定位算法模拟 % 参数设置 numIterations 1000; % 模拟迭代次数 maxDistance 1000; % 最远定位距离&#xff08;设定范围&#xff09; speedOfSound 343; % 声速&#xff08;单位&#xff1a;m/s&#xff09; % 预警机坐标 source [0, 0]; % 初始…

ChatGPT-4o, 腾讯元宝,通义千问对比测试中文文化

国内的大模型应用我选择了国内综合实力最强的两个&#xff0c;一个是腾讯元宝&#xff0c;一个是通义千问。其它的豆包&#xff0c;Kimi&#xff0c;文心一言等在某些领域也有强于竞品的表现。 问一个中文文化比较基础的问题,我满以为中文文化chatGPT不如国内的大模型。可事实…

2021 hnust 湖科大 操作系统课设 报告+原代码+指导书+流程图源文件

2021 hnust 湖科大 操作系统课设 报告原代码指导书流程图源文件 详情 目录 验证类实验&#xff1a; 1 实验一&#xff1a;Windows进程管理 1 一、 实验题目&#xff1a; 1 二、 实验目的 1 三、 实验内容 1 四、 实验结果与分析 2 五、 小结与心得体会 5 实验二&#xff1a;L…

【知识拓展】HTTP、WebSocket 和 RPC:区别与使用场景详解

在工作中&#xff0c;HTTP、WebSocket 和 RPC 是三种常见的协议或通信方式&#xff0c;根据资料查阅&#xff0c;本文主要记录它们的区别及其适用的使用场景 HTTP&#xff08;超文本传输协议&#xff09; 概述 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一…

Springboot使用redis分布式锁的方法

要想使用redis分布式锁很好地支撑我们的业务 需要确保&#xff1a; 1.加锁要保证原子性&#xff1b; 2.解锁要保证原子性。 示例代码&#xff1a; public Map<String, List<Catelog2Vo>> getCatelogJsonFromDbWithRedisLock() {//使用redis分布式锁&#xff…

Javascript全解(基础篇)

语法与数据类型 语法 var\let\const var 声明一个变量&#xff0c;可选初始化一个值。 let 声明一个块作用域的局部变量&#xff0c;可选初始化一个值。 const 声明一个块作用域的只读常量。 用 var 或 let 语句声明的变量&#xff0c;如果没有赋初始值&#xff0c;则其值为 …

人工智能系统越来越擅长欺骗我们?

人工智能系统越来越擅长欺骗我们&#xff1f; 一波人工智能系统以他们没有被明确训练过的方式“欺骗”人类&#xff0c;通过为他们的行为提供不真实的解释&#xff0c;或者向人类用户隐瞒真相并误导他们以达到战略目的。 发表在《模式》(Patterns)杂志上的一篇综述论文总结了之…

店匠科技亮相VivaTech,新零售解决方案引关注

在中法建交60周年之际,两国关系持续发展并共同推动双方在人工智能和全球治理领域达成重要合作。同时,浙江-法国高新产业创新合作对接会在巴黎顺利举行,进一步促进了中法两国在高新技术领域的交流与合作。 紧跟此次访问的步伐,众多中国科技创新企业齐聚巴黎,于5月22日至25日在法…

浅谈安全用电管理系统对重要用户的安全管理

1用电安全管理的重要性   随着社会经济的不断发展&#xff0c;电网建设力度的不断加大&#xff0c;供电的可靠性和供电质量日益提高&#xff0c;电网结构也在不断完善。但在电网具备供电的条件下&#xff0c;部分高危和重要电力用户未按规定实现双回路电源线路供电&#xff1…

代码随想录算法训练营第五十三天 | 309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费

309.最佳买卖股票时机含冷冻期 视频讲解&#xff1a;动态规划来决定最佳时机&#xff0c;这次有冷冻期&#xff01;| LeetCode&#xff1a;309.买卖股票的最佳时机含冷冻期_哔哩哔哩_bilibili代码随想录 解题思路 1. dp[i][0] 第i天持有股票的状态 dp[i][1]第i天不持股的状…

Elasticsearch:ES|QL 查询 TypeScript 类型(二)

在我之前的文章 “Elasticsearch&#xff1a;ES|QL 查询 TypeScript 类型&#xff08;一&#xff09;”&#xff0c;我们讲述了如何在 Nodejs 里对 ES|QL 进行查询。在今天的文章中&#xff0c;我们来使用一个完整的例子来进行详细描述。更多有关如何使用 Nodejs 来访问 Elasti…

JavaScript中的 和 || 区别

在 JavaScript 中&#xff0c;&& 操作符被称为逻辑与操作符。当使用 && 操作符连接两个表达式时&#xff0c;它会首先计算左侧的表达式&#xff1a; 如果左侧的表达式为 false 或者可以转换为 false 的值&#xff08;如 null、undefined、0、“” 空字符串或 …

初入阿里云,上手走一波

初入阿里云&#xff0c;上手走一波 一阶&#xff1a;ECSMysqlDMS安装Mysql初始化MysqlMysql操作DMS管理Mysql 二阶&#xff1a;ECSOSS远程连接ECSOSS控制台其他图片服务 三阶&#xff1a;更多搭配操作 可以说个人在日常使用过程中&#xff0c;操作最多的阿里云产品就是阿里云服…

全身控制(Whole-Body Control,WBC)简化版

全身控制&#xff08;Whole-Body Control&#xff0c;WBC&#xff09;概述 WBC是一种集成了多种控制策略的方法&#xff0c;旨在同时控制人形机器人的多个自由度&#xff08;DOF&#xff09;&#xff0c;以实现复杂的运动和任务。WBC通常通过优化来解决&#xff0c;同时考虑到…