量化中N字型技术形态的实现
最近一个客户提出了使用N字型技术形态量化交易的思路,本人比较擅长技术或数据统计的编写,这种自定义的略费了一些时间,大约一天完工,简单说一下思路。
通过波段可以简单的看到,在k线波段的走势中和sdkj的波段有些类似,也就是skdj的金叉-死叉之间往往是大概率的波段高点,死叉-金叉则是波段的低点,当然因为有些时候行情的波动高点低可能会在其他的地方,认真观察会发现,当金叉死叉间的k线数量大于10根以上的话,基本上90%的概率就是波段的高低点。有了这个思路就比较好写了。
编写sdkj指标的数据,获取金叉死叉k线,获取金叉死叉之间的高低点即可,为了减小出错的概率,以大于10根的k线的波段为基准,依次从高点低到下一个金死叉求高低点,然后高点低存储然后进行判断即可。
分享部分代码供朋友们参考。

          #存储走出的波段的最高最低点位lowest = []highest = []#记录所有的金叉死叉的list,包括id及方向_md = []#计算sdkj数据,并把数据放置到天勤web guid的附图中nn, mm = 15, 3lowv = k1['low'].rolling(nn).min()highv = k1['high'].rolling(nn).max()rsv = tl.EMA((k1['close'] - lowv) / (highv - lowv) * 100, mm)k1['k'] = tl.EMA(rsv, mm)            k1['d'] = tl.MA(k1['k'], mm)                k1['zero'] = 50           k1['crossup'] = tafunc.crossup(k1['d'], k1['zero'])k1['crossdown'] = tafunc.crossdown(k1['d'], k1['zero'])#非天勤可以去除下面的代码,此几行代码为在附图画sdkj指标k1['k.board'] = 'SKDJ'           k1['d.board']='SKDJ'k1['d.color'] = 0xFF9933CC   k1['d.width'] = 4   k1['zero.board']='SKDJ'k1['crossup.board'] = 'SKDJ'k1['crossdown.board'] = 'SKDJ'#遍历所有数据,存储_mdfor i in range(500):if k1['crossup'].iloc[i] == 1:_md.append([i, 1])if k1['crossdown'].iloc[i] == 1:_md.append([i, -1])#倒序查找4个波段之前的符合10根k线的id,N字其实只需要高低点各2个数据即可for i in range(-4, -len(_md), -1):ss = 0if _md[i][0] - _md[i - 1][0] >= 10:ss = iss1 = _md[i][1]print('获取到符合条件的点位', i, _md[i][0], _md[i][1])breakif ss != 0:#如果此点是死叉,则先找低点if ss1 == -1:index1 = k1['high'].iloc[_md[ss - 1][0]:_md[ss][0]].idxmax()num1 = k1['high'].iloc[index1]highest.append(num1)                    ss2 = sswhile ss2 < 0:if index1 < _md[ss2 + 1][0] <= 499:index1 = k1['low'].iloc[(index1):_md[ss2 + 1][0]].idxmin()num2 = k1['low'].iloc[index1]lowest.append(num2)if index1 < _md[ss2 + 2][0] <= 499:index1 = k1['high'].iloc[index1:_md[ss2 + 2][0]].idxmax()num3 = k1['high'].iloc[index1]highest.append(num3)ss2 = ss2 + 2#如果此点是金叉,则先找高点elif ss1 == 1:index1 = k1['low'].iloc[_md[ss - 1][0]:_md[ss][0]].idxmin()num1 = k1['low'].iloc[index1]lowest.append(num1)ss2 = ss                    while ss2 < 0:if index1 < _md[ss2 + 1][0] <= 499:index1 = k1['high'].iloc[(index1):_md[ss2 + 1][0]].idxmax()num2 = k1['high'].iloc[index1]highest.append(num2)                            if index1 < _md[ss2 + 2][0] <= 499:index1 = k1['low'].iloc[index1:_md[ss2 + 2][0]].idxmin()num3 = k1['low'].iloc[index1]lowest.append(num3)                            ss2 = ss2 + 2#数据筛选并正序高低点数据打印highest=highest[-2:]lowest=lowest[-2:]print(f'高点\n{highest}')print(f'低点\n{lowest}')

到了这里,下一步就是判断了,有了2个高点 2个低点,n字自然就出来了
上升的用2个低点,一个高点
下降的用2个高点,一个低点。
以上代码在天勤,mindgo,python版同花顺,okex,huobi,binance等平台都可正常使用,用的指标为ema,我直接调用了talib的,也可以自定义,代码可以参考:

def ema(series, n):"""指数加权移动平均线: 求series序列n周期的指数加权移动平均计算公式:ema(x, n) = 2 * x / (n + 1) + (n - 1) * ema(x, n).shift(1) / (n + 1)注意:1. n 需大于等于12. 对距离当前较近的k线赋予了较大的权重Args:series (pandas.Series): 数据序列n (int): 周期Returns:pandas.Series: 指数加权移动平均线序列"""ema_data = series.ewm(span=n, adjust=False).mean()return ema_data

量化交易中N字型技术形态的实现,天勤,mindgo,python版同花顺,okex,huobi,binance等平台都可正常使用相关推荐

  1. 量化交易中,如何使用Python计算「筹码分布」指标【附代码】 [量化小讲堂-64]

    这是邢不行第 64 期量化小讲堂的分享 作者 | 邢不行.助教林奇 本文内容也有视频版本,点击观看:量化交易中,筹码分布指标如何计算[邢不行] 记得小时候的某个暑假,一边吃西瓜,一边看港剧<大时 ...

  2. 量化交易中VWAP/TWAP算法的基本原理和简单源码实现(C++和python)(转)

    量化交易中VWAP/TWAP算法的基本原理和简单源码实现(C++和python) 原文地址:http://blog.csdn.net/u012234115/article/details/728300 ...

  3. 阿隆(Aroon)技术指标在量化交易中的应用 | 干货

    点击上方蓝色字体,关注:决策智能与机器学习,每天学点AI干货 编者按:阿隆指标属于趋势跟踪型指标,通过计算当前K线距离前最高价和最低价之间的K线数量来判断价格趋势,从而确定交易策略,本文给出了一个完整 ...

  4. Python期货量化交易中常用的数据类型有哪些?

    1 常用内置常量 Python解释器在启动时会创建None.True.False三个常量,None表示"无",True表示"真",False表示"假& ...

  5. 量化交易中,如何快速把股票代码转换成Int整形?

    最近笔者在量化交易的大神沟通中,收到这样一个需求,需要快速把股票代码转换成整形变量,也就是需要把新收到的股票交易信息,迅速与历史的股票信息结合起来,从而通过交易策略快速决策. 由于量化交易速度就是生命 ...

  6. 量化交易中的资金管理模型分享

    做量化交易少不了的就是资金管理,资金管理的目的是要告诉我们,在一定的帐户规模下,可以持有多少股票/合约.比如,资金管理的策略可能告诉你,目前没有足够的资金持有任何部位,因为风险太大了.通过资金管理可以 ...

  7. 量化交易中VWAP/TWAP算法的基本原理和简单源码实现(C++和python)

    参考文献: https://en.wikipedia.org/wiki/Time-weighted_average_price https://en.wikipedia.org/wiki/Volume ...

  8. python历史性分布计算代码_量化交易中,如何使用Python计算「筹码分布」指标【附代码】 [量化小讲堂-64]...

    引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助. [历史文章汇总] 请点击此处 这是邢不行第  64 ...

  9. python k线图和指标_量化交易中,如何使用Python画K线、成交量、买卖点【邢不行】...

    引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助. [历史文章汇总] 请点击此处 这是邢不行第  68 ...

  10. python应用于人工智能的代码_【python量化】人工智能技术在量化交易中应用的开源项目...

    这个项目收集了包括机器学习,深度学习以及强化学习在内的一些用于股票预测的模型.其中深度学习模型包括: LSTM LSTM Bidirectional LSTM 2-Path GRU GRU Bidir ...

最新文章

  1. idea集成scala插件
  2. wxWidgets:WxBase 事件循环
  3. 求逆元的两种方法+求逆元的O(n)递推算法
  4. 美丽的数学家:如果您讨厌数学,这些其实都是人生故事
  5. 服务器系统性能计数器,MSRS 2008 Windows Service 性能对象的性能计数器
  6. idea中启动tomcat,控制台中文乱码问题解决方案
  7. 加载JDBC驱动程序
  8. java解析本地wsdl_关于解析本地wsdl文件
  9. android自定义popwindow,Android应用开发Android 自定义PopWindow的简单使用
  10. PHP 与 JSP 比较(PHP、ASP、JSP是什么)
  11. 视觉SLAM十四讲从理论到实践第二版源码调试笔记(理论基础1-6章)
  12. Win7下使用VirtualBox虚拟机安装OS X 10.9 Mavericks
  13. 分享一个免费的计算机书籍资料网站(含有编程语言,算法,人工智能,游戏开发等书籍资料)
  14. 回溯算法:从电影蝴蝶效应中学习回溯算法的核心思想
  15. 解决Word2016复制、粘贴快捷键无法使用问题
  16. gitlab+jenkins 利用webhook自动构建代码
  17. html只选择年份,ant design vue 日期选择器只选择年份
  18. RK3568全国产化主板---LYM_RK3568G_EVM全新发布
  19. 土地利用规划之平时作业三
  20. 一个游戏程序员的资料一(转)

热门文章

  1. Ps流转H264流 代码实现
  2. 格式工厂 wav 比特率_这可能是 Mac 上最强格式转换工具
  3. Android图片无损缩放,Android图片查看器(图片可挪动、缩放)
  4. ubuntu server 20 开启无线热点
  5. 如何创建WooCommerce弹出窗口来增加销售额(6种经过验证的方法)
  6. 怎么让背景铺满整个页面_word怎么让背景图片铺满整个页面
  7. Prince和学生们侃侃而谈系列05
  8. LR性能测试Web Page Breakdown分析篇
  9. 【前端】使用html+css+js实现的乞丐版跳一跳
  10. ZLL的每周一更(maybe)--浏览器的运行机制