自己做量化交易软件(42)小白量化实战15--自编股票软件公式历史与聚宽量化平台仿大智慧指标回测设计

自己做量化交易软件(42)小白量化实战15–自编股票软件公式历史与聚宽量化平台仿大智慧指标回测设计

在1997年以前,市面上已经出现了很多股票分析软件。大多数软件都集成好了一些常用指标,例如钱龙股票分析系统,海融股票分 析系统,汇金股票分析系统,操盘手等等,各式股票软件,用户在使用时可以简单设置参数后,进行股票分析。例如改变均线指标参数 进行分析。
这些有固定指标的股票软件,满足不了股市中精明投资者的分析方法。因此出现了一些允许用户自己编写股票自编分析指标的股票 软件。其中比较有名的能写自编公式的股票软件是《分析家》和《指南针》股票分析软件。这些软件一出现,聚集了大量用户,一些会 写股票分析指标的用户,根据自己的经验写成自编公式卖给其他投资者。以前很多《分析家》和《指南针》自编公式等,网上叫卖数万 人民币。
随着是时间的推移,股票行情接收卡(例如通视卡等)捆绑销售,以及破解原因,有大量的《分析家》软件用户。另外《分析家》 自编股票公式语法最简洁,因此有很多人在上面开发分析家公式。
由于分析家股票公式系统,支持C++公式扩展,因此有很多既会软件开发,又懂投资分析的人员,例如荷蒲(百度:荷蒲公式,貔貅 公式)等,用C++开发出的指标,远远超越分析家软件提供功能的股票分析应用,丰富了股票软件创新。其中现在股软所具备的基本功能 ,都是荷蒲在1999年以前所发明创造。例如股票文字提示,股票股评,信息雷达,横向统计,四方图分析,预测日周成交量,交易机器 人指标等等。这些新分析技术的发明与分析家所支持的C++指标扩展开发,必不可少。C++公式开发,增强了分析家现有的分析指标和分 析工具。
1999年底,《飞狐交易师》测试版发布,邀请荷蒲加入首席测试师,进行测试和提供改进意见。荷蒲提出分析家C++实现公式横向统 计很不方便,希望飞狐交易师固化成基本功能。《飞狐交易师》吸收了网上的全部分析家公式系统的创新功能,一些荷蒲所开发的C++公 式函数,也集成为基本功能。例如判断是否为最后一个周期ISLASTBAR,早期公式系统没有类似功能函数,荷蒲用C++公式函数来实现的 。荷蒲开发分析家节气函数,也包含在《飞狐交易师》函数。此外《飞狐交易师》还根据荷蒲等人建议,增加了自然日K线分析,周易分 析,农历日期坐标。此外根据荷蒲建议增加了指标函数双变参数建议,一般指标第一个参数是序列,第2个参数是固定数值。例如MA (C,N),N参数在分析家中为固定数值。在《飞狐交易师》中为变化序列。尽管荷蒲用C++也实现了第二变参,使用起来不够方便。《飞狐 交易师》一些函数可以使用第二变参,第三变参等等。例如MA(C,INT(C/10)),实现不定长均线。
《飞狐交易师》除了支持《分析家》公式源代码,还支持分析家的C++公式文件。因此荷蒲的分析家指标,能够完美移植到《飞狐交易师 》。《飞狐交易师》自己C++接口,支持公式函数第二变参,第三变参等等。
数据序列移动,在投资分析上称为“引用未来数据”,分析家原始函数只支持后引用REF(C,N)函数,荷蒲用C++开发了前引用REFX (C,N)函数,即今天指标值计算依赖明天其他指标计算数据。我初始设计不是为了所谓造假,因为我在分析家上利用此功能开发了一套“ 龙霸指标操盘系统”,大户庄家可用通过改变未来行情数值,预先看到未来行情指标走势,可以给“技术指标派”挖坑骗线。《分析家 》软件不能右移位画K线,《飞狐交易师》可以右移位画K线和指标。因此通过REFX()函数,预先设置未来几日行情数据,例如CLOSE、 HIGH、LOW、VOL等等,通过右移位画K线和指标,动态调整行情参数,可以看到用户自编指标在此行情下的指标变化。如果未来主力控 制好行情价格,指标交叉等结果,就是主力的设想。能够精确实现未来指标走势控制的能力。
2000年后又出现了一些支持用户自编指标公式的股票软件,例如《通达信》、《同花顺》、《大智慧》等软件。开始这些软件公司 的指标公式语法,都是自己新开发的,后来发现根本没法跟《分析家》公式语法可比,因此《通达信》和《同花顺》后来指标语法开始兼容《分析家 》公式。
《大智慧》软件公司于2006前后,收购了《分析家》,因此新一代大智慧就继承了分析家内核,完美支持分析家公式和分析家C++开发的 公式。因此至今只有《飞狐交易师》和《大智慧》完美支持荷蒲1997年之今开发的C++指标(https://mp.weixin.qq.com/s/c9J-d30haP5nonU3bjiwSg)。1999年开发的主力进出C++指标,至 今还能在大智慧软件中正常运行,指标算法,至今没几个人能破解。看我的博客https://blog.csdn.net/hepu8/article/details/111996255
2016年用Python开发的人工智能程序“阿法狗”围棋软件战胜了人类专业棋手。作者编写过围棋软件(百度:荷蒲围棋),以传统思路发展硬件和软件在100年内,电脑无法战胜人类,因为2的361次方递归计算是无法实现得的,电脑国际象棋依赖小型机的海量存储和巨大计算潜能,才战胜了人类优秀棋手。这些算法在围棋上不可复制。
2016年人工智能围棋软件战胜人类专业棋手,让作者看到了一道曙光,电脑人工智能能在围棋上战胜人类棋手,那么一定可以利用人工智能软件,编写出全自动交易的赚钱的“摇钱树”。
作者是仿分析家软件指标公式编写高手,自然想到将分析家软件指标公式语法格式移植到Python量化软件上了。因此由作者编写的小白Python量化系统,利用Python的一维数组,以及矢量数学计算的特性,实现了仿分析家公式指标计算。
利用小白量化股股票公式函数模块,很容易将仿分析家公式指标移植到Python量化环境中。除了在小白量化系统中使用仿分析家自编公式指标计算外,还可以用于其他量化平台。
移植步骤如下:

  1、你的自编指标先在通达信软件或小白量化框架上回测调整到参数最优。2、你打算实战时,就可以把这个指标移植到其他量化平台了。3、把你的指标和指标所有的函数,都复制到你用户策略的开头,分析就可以采用仿分析家公式处理。4、在用户交易函数中,进行仿分析家公式处理,来获取买卖点。5、这种方式,可以把你的自编通达信指标,大智慧指标等,移植到任何量化平台。

下面我们给出聚款平台上的仿大智慧自编指标的回测代码。我们已自编公式KDJ指标为例子,读者可以把指标替换为自己的自编指标公式来在聚宽量化平台回测或实战交易。
在这里插入图片描述
聚宽量化平台回测仿大智慧指标回测代码如下:

#购买<零基础搭建量化投资系统>正版书,送小白量化软件源代码。
# https://item.jd.com/61567375505.html
#独狼荷蒲qq:2775205
#小白python量化群: 524949939
#小白python量化群2: 983815766
#电话微信:18578755056
#微信公众号:独狼股票分析# 导入函数库
from jqdata import *
import pandas as pd  
import numpy  as np##小白量化股票数据格式同ts旧版数据格式
## jqtots来源HP_data
def jqtots(df1):  #聚宽格式转ts格式a=[x.strftime("%Y-%m-%d") for x in df1.index]df1.insert(0,'date',a)df1=df1.reset_index(level=None, drop=True ,col_level=0, col_fill='')  return df1global CLOSE,LOW,HIGH,OPEN,VOL
##从小白量化公式函数库中复制.
## 函数来源 HP_formula
def MA(Series, N):return pd.Series.rolling(Series, N).mean()def HHV(Series, N=0):if N==0:return Series.cummax()else:return pd.Series(Series).rolling(N).max()def LLV(Series, N=0):if N==0:return Series.cummin()else:return pd.Series(Series).rolling(N).min()def EMA(Series, N):var=pd.Series.ewm(Series, span=N, min_periods=N - 1, adjust=True).mean()if N>0:var[0]=0#y=0a=2.00000000/(N+1)for i in range(1,N):y=pd.Series.ewm(Series, span=i, min_periods=i - 1, adjust=True).mean()y1=a*Series[i]+(1-a)*y[i-1]var[i]=y1return vardef CROSS(A, B):A2=np.array(A)var = np.where(A2<B, 1, 0)return (pd.Series(var, index=A.index).diff()<0).apply(int)##下面开始写用户自编股票公式
def KDJ(N=9, M1=3, M2=3):global CLOSE,LOW,HIGH,OPEN,VOL"""KDJ 随机指标"""RSV = (CLOSE - LLV(LOW, N)) / (HHV(HIGH, N) - LLV(LOW, N)) * 100K = EMA(RSV, (M1 * 2 - 1))D = EMA(K, (M2 * 2 - 1))J = K * 3 - D * 2return K, D, J# 初始化函数,设定基准等等
def initialize(context):# 设定沪深300作为基准set_benchmark('000300.XSHG')# 开启动态复权模式(真实价格)set_option('use_real_price', True)# 输出内容到日志 log.info()log.info('初始函数开始运行且全局只运行一次')# 过滤掉order系列API产生的比error级别低的log# log.set_level('order', 'error')### 股票相关设定 #### 股票类每笔交易时的手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')## 运行函数(reference_security为运行时间的参考标的;传入的标的只做种类区分,因此传入'000300.XSHG''510300.XSHG'是一样的)# 开盘前运行run_daily(before_market_open, time='before_open', reference_security='000300.XSHG')# 开盘时运行run_daily(market_open, time='open', reference_security='000300.XSHG')# 收盘后运行run_daily(after_market_close, time='after_close', reference_security='000300.XSHG')## 开盘前运行函数
def before_market_open(context):# 输出运行时间log.info('函数运行时间(before_market_open):'+str(context.current_dt.time()))# 给微信发送消息(添加模拟交易,并绑定微信生效)# send_message('美好的一天~')# 要操作的股票:(g.为全局变量)g.security = '600519.XSHG'## 开盘时运行函数
def market_open(context):global CLOSE,LOW,HIGH,OPEN,VOLcurrent_date = context.current_dt.date()# 取得当前的现金cash = context.portfolio.available_cashlog.info('函数运行时间(market_open):'+str(context.current_dt.time()))security = g.security# 获取股票的收盘价df = get_price(security, start_date='2020-11-01', end_date=current_date, fields=['open', 'close', 'low', 'high', 'volume'])mydf=jqtots(df)CLOSE=mydf['close']LOW=mydf['low']HIGH=mydf['high']OPEN=mydf['open']VOL=mydf['volume']mydf['s80']=80k,d,j=KDJ()mydf['k']=kmydf['d']=dmydf['j']=kmydf['buy']=CROSS(k,d)   #k上穿dmydf['sell']=CROSS(mydf['s80'],k)  #k下穿80log.info(mydf)buy=list(mydf['buy'])sell=list(mydf['sell'])if buy[-1]>0:log.info('买')if sell[-1]>0:log.info('卖')# 如果上一时间点价格高出五天平均价1%, 则全仓买入if (buy[-1]>0) and (cash > 0):# 记录这次买入log.info("价格高于均价 1%%, 买入 %s" % (security))# 用所有 cash 买入股票order_value(security, cash)# 如果上一时间点价格低于五天平均价, 则空仓卖出elif (sell[-1]>0) and context.portfolio.positions[security].closeable_amount > 0:# 记录这次卖出log.info("价格低于均价, 卖出 %s" % (security))# 卖出所有股票,使这只股票的最终持有量为0order_target(security, 0)## 收盘后运行函数
def after_market_close(context):log.info(str('函数运行时间(after_market_close):'+str(context.current_dt.time())))#得到当天所有成交记录trades = get_trades()for _trade in trades.values():log.info('成交记录:'+str(_trade))log.info('一天结束')log.info('##############################################################')

程序运行结果如下图。
在这里插入图片描述
此篇文章,说明小白量化的金融模块的广泛用途,如果有空,我再给出其他量化平台依赖小白量化模块实现仿大智慧和仿通达信指标的实现示例代码。

请持续关注我的博客,我的进步,就是你的进步!

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

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

相关文章

量化交易 第六课 策略评估指标计算

第六课 策略评估指标计算 概述获取取票数据回测收益率回测年华收益率最大回撤夏普比率 概述 我们在创建策略的过程中, 需要通过不同的评估指标来验证策略的有效性. 这些指标可以帮助我们调整策略, 得到更好的结果. 常见的策略评估指标有: 回测收益率回测年化收益率最大回撤夏…

自己做量化交易软件(3)通通量化分析框架构成1

自己做量化交易软件(3)通通量化分析框架构成1 通通股票量化分析框架采用模块化设计&#xff0c;每个模块存放在不同的py文件中。 通通股票量化分析框架下载&#xff1a; https://download.csdn.net/download/hepu8/10668509 运行python环境,可以在我的网盘下载绿色python软…

股票量化分析工具V2.0版-视频更新完毕!代码已上传!

视频课程《理性投资&#xff01;2天入门量化思维炒股&#xff01;定制自己的股票分析工具》Day1录播内容已全部上线。 已经购买的读者们速去学习&#xff01;&#xff01;&#xff01; ----点击【阅读原文】跳转 升级的V2.0回测工具的代码已经上传课件&#xff0c;同时也上传了…

python版期货量化交易(AlgoPlus)案例(多进程处理子任务)

python版期货量化交易&#xff08;AlgoPlus&#xff09;案例&#xff08;多进程处理子任务&#xff09; python因为简单、易上手&#xff0c;所以深受大家的喜爱&#xff0c;并且随着人工智能的不断发展与进步&#xff0c;python也一跃成为了最受欢迎的编程语言之一&#xff0…

程序员如何学习量化交易,一文总结

最近有位金融行业的朋友想把一个盈利能力很强的策略做成量化程序遇到问题&#xff0c;问题是这样的 线程A在while(true)的循环里做条件判断&#xff0c;循环耗时1分钟。循环结束判断条件满足的时候调用交易接口下单建仓。想实现条件成立马上建仓&#xff0c;而不需要等待1分钟的…

屏蔽 app 开屏广告,舒畅了

之前吐槽过开屏广告 吐槽一下 &#xff0c;今天分享下iOS手机屏蔽 app 开屏广告的方法&#xff1a; 1.打开手机设置 2.打开 屏幕使用时间 3.打开 内容和隐私访问限制 4.找到 广告 设置为不允许 设置完后大部分app的开屏广告没了&#xff0c;当然可能有漏网之鱼&#xff0c;可…

【K8S系列】快速初始化⼀个最⼩集群

序言 走得最慢的人&#xff0c;只要不丧失目标&#xff0c;也比漫无目的地徘徊的人走得快。 文章标记颜色说明&#xff1a; 黄色&#xff1a;重要标题红色&#xff1a;用来标记结论绿色&#xff1a;用来标记一级重要蓝色&#xff1a;用来标记二级重要 希望这篇文章能让你不仅有…

吴恩达教你写提示词 ChatGPT prompt engineering

文章目录 吴恩达教你写提示词 ChatGPT prompt engineering1. 关键提示&#xff08;prompt&#xff09;原则1. 基础2. 编写明确和具体的提示词3. 给模型时间“思考”4. 模型的限制5. 迭代式提示&#xff08;prompt&#xff09;开发过程 2. 提示&#xff08;prompt&#xff09;一…

【AI提示】ChatGPT提示工程课程(吴恩达OpenAI)迭代提示词笔记(中文chatgpt版)...

Iterative Prompt Develelopment 迭代提示词开发 在本课中&#xff0c;您将反复分析和优化您的提示&#xff0c;以从产品说明书生成营销文案。 设置 import openai import osfrom dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv()) # read local .env fil…

Unity Shader人物发光特效

Unity Shader人物发光特效 写在前面效果实现方法项目地址写在后面 写在前面 当人物被击中或则有任务引导提升时&#xff0c;人物身上将会有发光特效&#xff0c;这里我自己实现一下。 效果 实现方法 核心思想就是将贴图试图向量(朝摄像机方向)与法线向量单位化后做点乘从而得…

【Unity】awake和start

生命周期流程如下 本篇主要讲的是在比较靠前的awake和start阶段&#xff0c;因为这两个阶段效果类似&#xff0c;都只会执行一次&#xff0c;但是具有触发条件. awake、enable、start依照次顺序执行&#xff0c;awake会在一开始的时候就会执行&#xff0c;但start则是在被激活…

Unity Shader - 类似七龙珠的人物气焰效果

文章目录 环境效果思路passespass - 气焰优化后的 shader Project关于效果落地 环境 Unity : 2018.3.11f1 Pipeline : BRP 效果 覆盖身前 覆盖身前 叠加混合 风格化 版本&#xff0c;更适合 NPR&#xff1a; 再优化一版本 该效果是自己摸索的&#xff08;也是自己再国…

虚幻引擎中GPU Lightmass全局光照的使用步骤

GPU Lightmass (GPULM) 是一种光烘焙方法&#xff0c;它预先计算来自具有 Stationary 或 Static 移动性的灯光的复杂光交互&#xff0c;并将该数据存储在创建的应用于场景几何体的光照贴图纹理中。GPU Lightmass 显着减少了为复杂场景计算、构建和生成光照数据所需的时间&#…

UE4 Shader 常用函数 学习笔记

Add&#xff1a;快捷键a 将两数相加&#xff0c;也可以将两纹理相加&#xff0c;如下图&#xff1a; append&#xff08;追加&#xff09;&#xff1a; Subtract&#xff08;减&#xff09;&#xff1a; 和加相反&#xff0c;特例&#xff0c;如下&#xff1a; Abs&#xff0…

Ubuntu搭建原神3.7版本服务器

本文涉及知识点 linux基础命令|mongoDB服务端搭建及指令|Java环境搭建 原神私服可以用来抽卡满足自己用&#xff0c;他的许多任务都得登录控制台自己发&#xff0c;不建议拿私服玩&#xff0c;想要体验完美原神请到官服&#xff0c;本文只做LINUX MongoDB java教学例子 写在前…

原神角色渲染详解

整体效果展示&#xff1a;主要方案是对下面几张图做不同的处理 身体 基础颜色光照&#xff1a;主要贴图卡通贴图ramp图法线图光照图 金属度与高光&#xff0c;头发部分高光&#xff1a;光照图&#xff0c;头发部分用高光black图 深度边缘光&#xff1a;用额外pass DepthNor…

打脸了兄弟们,Go1.20 arena 来了!

大家好&#xff0c;我是煎鱼。 大概半年前&#xff0c;我写过一篇文章《Go 要违背初心吗&#xff1f;新提案&#xff1a;手动管理内存》。有兴趣了深入解的同学&#xff0c;可以再回顾一下。 当时我们还想着 Go 团队应该不会接纳&#xff0c;至少不会那么快&#xff1a; 没想到…

对正在打野发育的红队同学的一次反制

文章目录 故事开始其他反制思路隐蔽C2CS重定向器实验 故事开始 真的是对同学的反制哈&#xff0c;我们最近都在学习内网&钓鱼就互相”攻击“&#xff0c;就有那么一天我就在想我偷懒把CS登录密码设置的很简单&#xff0c;会不会其它人也偷懒&#xff0c;于是就抱着尝试的心…

zsteg安装及CTF打野wp

下载文件解压后拖进kali里&#xff0c;移到root目录下 使用命令 zsteg 文件名 执行成功后即可获取qwxf{you_say_chick_beautiful?} 下面介绍zsteg的安装 使用命令 git clone http://www.github.com/zed-0xff/zsteg apt-get install gem gem install zsteg 若报错&#xff0c;…

AI版女网红“半藏森林”上线,服务项目让人意想不到

目前首批网红明星“AI克隆人”已提前上线&#xff0c;主营业务就是打造各种名人版AI聊天机器人&#xff0c;用户付费便可与之聊天。其后台报名参加AI克隆人的网红明星“全网粉丝总数已超过5亿”。该公司这波上线的网红明星AI克隆人&#xff0c;包括此前因“疑似插足他人恋情”&…