惊呆了,探究如果机器用网格法对股票进行做套的胜率,竟高达%100
做套:惊呆了!探究如果机器用网格法对股票进行做套的胜率,竟高达%100
前言:
接上两篇:
惊呆了,探究如果机器用MACD法对股票进行做套的胜率,竟高达%80
惊呆了,探究如果机器用KDJ法对股票进行做套的胜率,竟高达%80
首先,我要事先说明为什么百分之百的。
什么是网格交易法?
网格交易法是一种利用行情震荡进行获利的策略。在标的价格不断震荡的过程中,对标的价格绘制网格,在市场价格触碰到某个网格线时进行加减仓操作尽可能获利。网格交易法属于左侧交易的一种。与右侧交易不同,网格交易法并非跟随行情,追涨杀跌,而是逆势而为,在价格下跌时买入,价格上涨时卖出。
顾名思义,如果将网格法套用在“做套”上就是在股价比原本持仓价格时卖出,再在股价比原本持仓价格低的时候买回。这样一说,如果完美的这样交易是不可能存在亏钱情况,所以胜率是百分百的。但究竟是不是真的如此呢,放在实际上是否能实现呢,接下来就来用数据实验一下,实现起来比前两篇兼职不用简单太多了。
单了解完之后就可以开始实现了:
第一步导入数据:
df = pd.read_csv("2021-11-19.csv")
这里用一下2021年11月19号的上证A股所有股票的日分钟数据
忽略’code’列股票代码显示不全的问题,从数据库备份转csv时没注意code特征列数值的属性,但对这次实验不造成影响,后期把“0”补回去就好了,就是csv保存时把前面的“0”都去掉了,数据量有54w条,足够大了。
构造网格法的网格
网格法一般都有很多点位,等价格超过这些点位的时候再进行买卖,然后每一次买(卖)都要比前一次价格更低(高),这些高低点一般都是从一只股票长期的压力位和支撑位中选取,但这是对一直股票长周期持仓的操作。对于“做套”这种可以看作超短周期的买卖,可以套用一下止盈策略(做人要知足和止损嘛),我们只需要两个点位就好了,高点:比原本持仓价格涨(%2%5),低点:比原本持仓价格跌(%2%5),这样就ok啦。
在这,不继续引用sklearn的线性模型库linear_model构造一个可以计算一段时间内价格变动趋势的函数,因为网格法并没有用到任何指标,买卖时根本不知道这是这是不是这十几分钟或者两三小时内的高低点,只保证了我们永远不亏钱。
构造一个逻辑函数或称为步骤函数去利用数据然后作出决策,然后再判断决策是否正确
stopsurplus = 1.02 stoploss = 0.98buy = {'code': list(), '买入价': list()} sell = {'code': list(), '卖出价': list()}
# 由于数据是全部A股在每一分钟的交易数据,因此要单独抽出每个数据进行计算 for code in set(df['code'].to_list()):price_list = df[df['code'] == code]['最新价'].to_list()threshold = price_list[0]high_point = stopsurplus * thresholdlow_point = stoploss * thresholdfor i in range(len(price_list)):if price_list[i] < low_point:buy['code'].append(code)buy['买入价'].append(price_list[i])low_point = price_list[i]if price_list[i] > high_point:sell['code'].append(code)sell['卖出价'].append(price_list[i])high_point = price_list[i]
一通捣鼓下来,观看实验效果:
由于我没有设置什么限制交易次数,所以会有一只股票只要买没有卖的时候,这样看不出什么利润,所以合并一下,将这些数据直接抹除。这样看不出什么效果我们得看操作同一只股票时的:
可以看出,同一只股票,买时永远都比卖出时低,这样我们就能做到赚差价。实验用的数据是比原本持仓价格高%2卖,比原本持仓价格低%2时买,有些不讲武德的量化机器连%1的利润都吃的,当然人家网速和机器性能都很顶尖确实可以这样操作。
最后再提一句,现时中往往我们不能确定买卖的数量是否会相等的话,可以设立先卖然后再买,或者先买然后再卖这样交叉购买,因为一天的股票波动肯定都会有的,虽然这样限制交易次数的话会少很多交易机会,但可以降低涨跌幅增加次数。实验中%2的涨跌幅已经要不断操作很多遍了。
最后看一下操作一通的利润吧:
啊哈哈哈不算,草草了场了,周六考六级了,赶紧复习去了,不敲了!!!
完整代码:
import pandas as pd
from tqdm import tqdmif __name__ == '__main__':stopsurplus = 1.1stoploss = 0.95df = pd.read_csv("min_test_data.csv")buy = {'code': list(), '买入价': list()}sell = {'code': list(), '卖出价': list()}for code in tqdm(set(df['code'].to_list())):price_list = df[df['code'] == code]['最新价'].to_list()threshold = price_list[0]high_point = stopsurplus * thresholdlow_point = stoploss * thresholdfor i in range(len(price_list)):if price_list[i] < low_point:if CalculateTrend(price_list[i - 10:i] if i > 10 else price_list[:i]) > 0:buy['code'].append(code)buy['买入价'].append(price_list[i])low_point = price_list[i]if price_list[i] > high_point:if CalculateTrend(price_list[i - 10:i] if i > 10 else price_list[:i]) < 0:sell['code'].append(code)sell['卖出价'].append(price_list[i])high_point = price_list[i]buy = pd.DataFrame(buy)print(buy.head())sell = pd.DataFrame(sell)print(sell.head())
惊呆了,探究如果机器用网格法对股票进行做套的胜率,竟高达%100相关推荐
- 4星|《我们会被机器取代吗?》:机器会让我们有能力做比以前更高端的工作——更复杂、更有意义、更符合我们能力...
哈佛商业评论·我们会被机器取代吗?[精选必读系列] (全5册) <哈佛商业评论>的两本正刊三本增刊的合集.正刊是今年第8期和第10期,增刊则分别出版于2015,2016,2017三年,其中 ...
- 30台无盘服务器配置,带30台机器的无盘服务器配置方案两套
一位天下网吧论坛注册会员在天下网吧论坛发布了一个关于30台客户机的无盘网吧服务器配置方案的求助的帖,然后天下网吧论坛不亏为无盘网吧,无盘系统相关讨论最大最早的网站,很快就有哥们回复支招了,一起来看看: ...
- python 两台机器之间传递数据_Python:通过套接字在两台计算机之间发送数据
我正在开发一个脚本,可以在两台不同的计算机之间传输数据,并可以访问互联网.我正在使用 python的socket标准模块.当我在单台计算机上运行客户端和服务器时,它工作正常,但是当它们在不同的计算机上 ...
- 中文语音识别系统ViaVoive使用实录
"一开始我感到很怀疑,但很快就变成了惊讶,摆脱了手敲键盘.眼盯屏幕的打字方式,我的所有注意力都集中到我想说想写的东西上." 虽然我们经常在影视和文学作品中看到那种听得懂人话的机器, ...
- 机器学习+深度学习笔记(9.5更新~)
Note 本笔记为笔者自学网课做的一些重要步骤和理解的记录,目的是在需要的时候可以快速回顾,并记录自己学习的一个过程.因此有些内容可能不完整,可以根据自己需求去补充相应的笔记.如果你恰好看到了我的 ...
- 机器学习笔记(完结~)
Note 本笔记为笔者自学网课做的一些重要步骤和理解的记录,目的是在需要的时候可以快速回顾,并记录自己学习的一个过程.因此有些内容可能不完整,可以根据自己需求去补充相应的笔记.如果你恰好看到了我的 ...
- 你负责人工智能哪部分?人工那部分:知识图谱的构建主要靠人工还是机器?...
来源:学术头条 本文共4400字,建议阅读10+分钟. "论道知识图谱:知识赋能智能与智能产生知识" 大家都知道当前知识图谱是在当前人工智能领域一个备受关注的分支中有一个分类叫做& ...
- 人与机器——解析人工智能的三大类别以及哲学家的相关思想实验
2020-02-21 14:10:10 你是否曾经产生过怀疑,你身边的某个人可能是个机器人呢?毕竟现在由于技术的发展,机器人的外观.行为都有可能被设置得和人类十分相像.这似乎有些荒谬和匪夷所思,但是你 ...
- 谷歌AI公布新项目:未来你的宠物可能真的会是“机器”狗!
From: Tech Crunch; 作者:Iris ????或许你曾留心过狗是怎么行走的--它们走起路来肌腱运动流畅,步履灵活,并不必去思考下一步要怎么走,走路这个动作是自然而然发生的事情.而同样的 ...
最新文章
- Java并发学习一:CPU缓存导致的可见性问题带来的并发Bug
- 使用C#调用外部Ping命令获取网络连接情况
- 年末福利,C/S应用升级更新完整解决方案放送
- pynvml 查看GPU已使用的显存
- 送一些豆瓣 8.9 分优质书,啃完拿下 BAT 高薪 offer 不是梦!
- csv文件转换成html,jQuery 把CSV文件数据转换为HTML表格(Bootstrap Table)
- Linux学习笔记---烧写bin文件分析
- 正解:《Java 程序员的黄金 5 年》看完我才知道当时有多蠢
- 数值分析思考题(钟尔杰版)参考解答——第六章
- android音频服务,android-在后台服务中录制音频
- 解决0x00000FD:Stack overflow(参数:0x00000000,0x002F2000)栈溢出问题
- python全栈开发包括那些_什么是全栈工程师?有哪些知识?
- windows 截图软件——sharex 截图软件的天花板 并且是免费开源的。
- Spring Kafka消费模式(single, batch)及确认模式(自动、手动)示例
- git prune 相关
- 什么是模块化?模块化有哪些优缺点
- python输出无空格,python 2.7.5+打印列表后面没有空格的逗号
- 惊呆了!北大博士当了城管
- 报错“在要求输入数字处找到非数字字符”
- 实验报告:定义一个表示学生的类Student