小白量化《穿云箭集群量化》(4)指标公式写策略

news2024/11/24 12:28:50

小白量化《穿云箭集群量化》(4)指标公式写策略
穿云箭量化平台支持中文Python写量化策略,同时也直接支持股票公式指标写策略。下面我们看看是如何实现的。
股票软件的指标公式语法是一样的,不同仅仅是个别函数或绘图函数或绘图命令不相同。
下面我们看看常见的MACD指标公式的源码是怎么描述的。
在这里插入图片描述
如果不用公式语法描述指标,在python中需要这样实现macd指标。
在这里插入图片描述
我们因此建议大家学习指标公式编写策略,是学习量化实现自动交易的捷径。
初中文化程度用心学习,学会公式编写要1周,学会python语法要1个月(只需要看懂,能复制粘贴修改,不需要自己从头写代码)。很快就能实现全自动交易。
走其他路线学量化,大学文化,全职学会Python要一学期,学会数据结构和算法要一学期,还要学习其他数据库等等,什么时候才能真正实现自己的量化交易?
下面我们看有初中文化程度的小白是如何实现自己的量化交易的。
一、在大智慧、通达信、同花顺、东方财富等软件,编写自编“屠龙剑”指标。(“屠龙剑”指标是演示,不保证能赚钱。)
在这里插入图片描述

{屠龙剑}
N:=9;
M1:=3;
M2:=3;
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,M1,1);
D:=SMA(K,M2,1);
J:=3*K-2*D;
B:CROSS(K,D);
S:CROSS(D,K);

二、在股票软件中测试优化完成,把源代码复制到穿云箭量化的公式面板中。
1、选择一个优质股票池,未来会有70%的股票会上涨。
2、在穿云箭量化的公式面板中,回测和优化。
在这里插入图片描述

3、回测完成,当自己满意时,可以通过【生成回测策略】【生成交易策略】按钮,生成Python策略代码。
在这里插入图片描述
三、在穿云箭量化的回测面板中可以进行回测和优化。
下面是生成中文指标公式策略。

策略名='回测_自编公式'
导入 pandas 命名为 pd
导入 time
导入 HP_tdx 命名为 htdx   #小白量化行情模块
导入 HP_global 命名为 hg   #建立高级全局数据域hg
从 HP_formula 导入 *  #小白量化公式模块
从 HP_factor 导入 *  #小白量化因子公式及Alpha公式模块
导入 HP_factor 命名为 hf #小白量化因子公式及Alpha公式模块
导入 HP_formula 命名为 gs  #小白量化公式模块
导入 HP_quant 命名为 hpq   #穿云箭量化模块
从 HP_quant 导入 *  #穿云箭量化模块
导入 HP_tdxgs 命名为 tgs  #公式运行模块
mygs=tgs.Tdxgs()

函数 初始化(context):
    context.zh='xiaoba'      #账户
    context.zhlx='回测'   #账户类型,2个汉字
    context.firstcash=1000000.00  #初始现金
    context.cash=context.firstcash
    context.portfolio.available_cash=context.firstcash
    set_maxdays(500)
    # 设置我们要操作的股票池
    g.stocks=hpq.get_universe()
    hpq.log.info('----策略环境信息-----')
    输出('量化模块版本: ',hpq.ver)
    输出('量化模块最后修改日期: ',hpq.mdate)
    输出('svrip: ',hpq.svrip)
    输出('svrport: ',hpq.svrport)
    输出('\n----开始运行策略-----\n')
    输出('策略名:'+策略名)
    qhcsj2=time.strftime('%Y%m%d %H:%M:%S',time.localtime(time.time()))
    输出('开始运行时间:'+qhcsj2)
    # 设定沪深300作为基准
    set_benchmark((1,'000001'))
    # 开启动态复权模式(真实价格)
    set_option('use_real_price',)
    hg.seemsg=假
    hg.hqsl=1 #行情数量
    #hg.sdhq=1 #闪电行情
    g.MAX=50
    g.hd=0.003 #滑点
    g.zzs=-0.05  #止损
    g.amount=500 #买入数量
    g.gs='''{自编指标公式,最好用专家系统公式}
{屠龙剑}
N:=9;
M1:=3;
M2:=3;
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,M1,1);
D:=SMA(K,M2,1);
J:=3*K-2*D;
B:CROSS(K,D);
S:CROSS(D,K);
'''
##Python程序员交流QQ群 17126454
# 每个单位时间(如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次)调用一次
函数 盘中运行(context, data):
    序列循环 m,security 在其中 context.universe[0]:
        如果 security 不是 在其中 data:
            继续
        df=data[security].df
        如果 len(df)<1:
            继续
        price = data[security].close
        close=price
        high= data[security].high
        low= data[security].low
        pre_close=data[security].pre_close   #前收盘
        #value = context.portfolio.positions[security].value
        acc_avg_cost  = context.portfolio.positions[security].acc_avg_cost #买入成本价 
        amos=context.portfolio.positions[security].closeable_amount  #可卖数量
        amos2=context.portfolio.positions[security].total_amount   #总数量

        mydf=gs.initmydf(df)  ##初始化mydf表
        mygs.loaddf(mydf)  #加载行情数据
        mydf=mygs.execgs(g.gs)  #运行指标公式

        如果 'ENTERLONG' 在其中 mydf.columns:
            BUY=mydf['ENTERLONG']  #买点
        否则如果 'BUY' 在其中 mydf.columns:
            BUY=mydf['BUY']  #买点
        否则如果 'B' 在其中 mydf.columns:
            BUY=mydf['B']  #买点

        如果 'EXITLONG' 在其中 mydf.columns:
            SELL=mydf['EXITLONG']  #卖点
        否则如果 'SELL' 在其中 mydf.columns:
            SELL=mydf['SELL']  #卖点
        否则如果 'S' 在其中 mydf.columns:
            SELL=mydf['S']  #卖点

        如果 BUY.iloc[-1]>0 并且 (amos2==0 或者 amos==0):
            price2=round(price*(1+g.hd),2)
            x=order_target(security,g.amount,p=price2)
            如果 x !=:
                hpq.log.info(context.current_dt+" 买入: %s ,数量:%d,买入价格:%.2f,成交资金:%0.2f"%(security,x.amount,price,x.amount*price))

        amos=context.portfolio.positions[security].closeable_amount  #可卖数量
        如果 SELL.iloc[-1]>0 并且 amos>0:
            price2=round(price*(1-g.hd),2)
            x=order_target(security,0,p=price2)
            hpq.log.info(context.current_dt+  " 卖出: %s ,数量:%d,卖出价格:%.2f,成交资金:%0.2f"%(security,amos,price2,amos*price2))

在这里插入图片描述

四、在穿云箭量化的交易面板中可以进行模拟或实盘交易。
在这里插入图片描述
中文Python穿云箭量化平台支持中文Python语法,提供了完整的Python股票软件开发源代码。新版本支持自编指标公式脚本编写策略回测,并有一键生成Python交易策略功能,提供多空雷达,抄底雷达,响尾蛇导弹,巡航到导弹等交易技术。提供期货行情,期货CTP接口,提供MT5交易接口,提供miniQMT接口,以及彩票模块。支持问财选股,支持语音报盘,微信通知等。
用户可以根据自己需求设计出满足自己要求的 自动化交易工具。

超越自己是我的每一步!我的进步就是你的进步!

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

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

相关文章

java多态理解和底层实现原理剖析

java多态理解和底层实现原理剖析多态怎么理解java中方法调用指令invokespecial和invokevirtual指令的区别invokeinterface指令方法表接口方法调用为什么不能利用方法表快速定位小结多态怎么理解 抽象事务的多种具体表现&#xff0c;称为事务的多态性。我们在编码过程中通常都是…

计算机网络 第4章 作业1

一、选择题 1. 由网络层负责差错控制与流量控制,使分组按序被递交的传输方式是_________&#xff08;C&#xff09; A&#xff0e;电路交换 B&#xff0e;报文交换 C&#xff0e;基于虚电路的分组交换 D&#xff0e;基于数据报的分组交换 2. TCP/IP 参考…

Bunifu.UI.WinForms 6.0.2 Crack

Bunifu.UI.WinForms为 WinForms创建令人惊叹的UI Bunifu.UI.WinForms我们为您提供了现代化的快速用户界面控件。用于 WinForms C# 和 VB.NET 应用程序开发的完美 UI 工具 简单 Bunifu.UI.WinForms没有臃肿的特征。正是您构建令人惊叹的 WinForms 应用程序所需要的。只需拖放然…

计算机网络高频知识点

目录 一、http状态码 二、强缓存与协商缓存 三、简单请求与复杂请求 四、PUT 请求类型 五、GET请求类型 六、GET 和 POST 的区别 七、跨域 1、什么时候会跨域 2、解决方式 八、计算机网络的七层协议与五层协议分别指的是什么 1、七层协议 2、五层协议 九、计算机网…

监控生产环境中的机器学习模型

简介 一旦您将机器学习模型部署到生产环境中&#xff0c;很快就会发现工作还没有结束。 在许多方面&#xff0c;旅程才刚刚开始。你怎么知道你的模型的行为是否符合你的预期&#xff1f;下周/月/年&#xff0c;当客户&#xff08;或欺诈者&#xff09;行为发生变化并且您的训练…

服务器部署—部署springboot之Linux服务器安装jdk和tomcat【建议收藏】

我是用的xshell连接的云服务器&#xff0c;今天想在服务器上面部署一个前后端分离【springbootvue】项目&#xff0c;打开我的云服务器才发现&#xff0c;过期了&#xff0c;然后又买了一个&#xff0c;里面环境啥都没有&#xff0c;正好出一期教程&#xff0c;方便大家也方便自…

大数据框架之Hadoop:MapReduce(三)MapReduce框架原理——ReduceTask工作机制

1、ReduceTask工作机制 ReduceTask工作机制&#xff0c;如下图所示。 &#xff08;1&#xff09;Copy阶段&#xff1a;ReduceTask从各个MapTask上远程拷贝一片数据&#xff0c;并针对某一片数据&#xff0c;如果其大小超过一定阈值&#xff0c;则写到磁盘上&#xff0c;否则直…

DHTMLX Suite 8.0.0 Crack

适用于现代 Web 应用程序的强大 JavaScript 小部件库 - DHTMLX 套件 用于创建现代用户界面的轻量级、快速且通用的 JavaScript/HTML5 UI 小部件库。 DHTMLX Suite 有助于推进 Web 开发和构建具有丰富功能的数据密集型应用程序。 DHTMLX Suite 是一个 UI 小部件库&#xff0c;用…

指针数组和数组指针的区别

数组指针&#xff08;也称行指针&#xff09;定义 int (*p)[n];()优先级高&#xff0c;首先说明p是一个指针&#xff0c;指向一个整型的一维数组&#xff0c;这个一维数组的长度是n&#xff0c;也可以说是p的步长。也就是说执行p1时&#xff0c;p要跨过n个整型数据的长度。如要…

【前端】JavaScript构造函数

文章目录概念执行过程返回值原型与constructor继承方式原型链其他继承方式&#xff08;还没写&#xff09;参考概念 在JS中&#xff0c;通过new来实例化对象的函数叫构造函数。实例化对象&#xff0c;也就是初始化一个实例对象。构造函数一般首字母大写。 构造函数的目的&…

Android性能调优 - 启动优化

一、APP启动优化1、 你对 APP 的启动有过研究吗? 有做过相关的启动优化吗?程序员&#xff1a;之前做项目的时候&#xff0c;我发现程序在冷启动时&#xff0c;会有 1s 左右的白屏闪现&#xff0c;低版本是黑屏的现象&#xff0c;在这期间我通过翻阅系统主题源码&#xff0c;发…

26 openEuler管理网络-使用ip命令配置网络

文章目录26 openEuler管理网络-使用ip命令配置网络26.1 配置IP地址26.1.1 配置静态地址26.1.2 配置多个地址26.2 配置静态路由26 openEuler管理网络-使用ip命令配置网络 说明&#xff1a; 使用ip命令配置的网络配置可以立即生效但系统重启后配置会丢失。 26.1 配置IP地址 使用…

JVM - G1垃圾收集器深入剖析

​​​​​​​1、G1收集器概述 HotSpot团队一直努力朝着高效收集、减少停顿(STW: Stop The World)的方向努力&#xff0c;也贡献了从串行Serial收集器、到并行收集器Parallerl收集器&#xff0c;再到CMS并发收集器&#xff0c;乃至如今的G1在内的一系列优秀的垃圾收集器。 G…

ER图、ERD图

ER图、ERD图1. 什么是ERD1.1 举例2. ERD符号指南2.1 实体2.2 属性2.3 主键2.4 外键2.4 关系2.5 基数2.5.1 一对一的基数的例子2.5.2 一对多的基数的例子2.5.3 多对多的基数的例子3.概念、逻辑和物理数据模型3.1 概念数据模型3.2 逻辑数据模型3.3 物理数据模型4.如何绘制ER图?5…

python的装饰器与设计模式中的装饰器模式

相信很多人在初次接触python中的装饰器时&#xff0c;会跟我一样有个疑问&#xff0c;这跟设计模式中的装饰器模式有什么区别吗&#xff1f;本质上是一样的&#xff0c;都是对现有对象&#xff0c;包括函数或者类的一种扩展。这篇文档将进行对比分析。 python的装饰器 装饰器…

Acwing 蓝桥杯 第一章 递归与递推

我上周在干什么&#xff0c;感觉我上周啥也没训&#xff0c;本来两天一次的vp也没v很寄啊&#xff0c;再这样下去真不行了先总结一下如何爆搜&#xff1a;先去确定好枚举的对象枚举的对象很重要&#xff01;&#xff01;这直接影响了复杂度然后就是去想递归树就好了一、确定状态…

基于VSG的预同步并离网控制MATLAB仿真模型

MATLAB2019b主要模块&#xff1a;并网逆变器VSG控制预同步控制电流电流双环控制锁相环、三相准PR控制、PWM0.65秒开始并网运行&#xff01;&#xff01;&#xff01;仿真模型&#xff1a;逆变器输出电压、电流波形。电压为单相&#xff08;可观察相位情况&#xff09;&#xff…

【逐步剖C】-第八章-指针进阶-下

前言&#xff1a;在文章【逐步剖C】-第八章-指针进阶-上与指针初阶中我们介绍了有关指针较为全面的知识&#xff0c;本篇文章主要从指针和数组相关试题出发&#xff0c;进一步巩固对指针的学习。接下来&#xff0c;让我们开始吧。 一、“真假”数组名 前言&#xff1a;这一部…

【每日一题】集合汇总 集合面试题

集合前言&#xff1a;图片一、集合分类1、实现 Collection 接口2、实现 Map 接口二、实现类定义1、ArrayList&#xff08;非线程安全&#xff09;2、LinkedList&#xff08;非线程安全&#xff09;3、HashSet&#xff08;非线程安全&#xff09;4、TreeSet&#xff08;非线程安…

Linux学习(8.6)文件与目录的默认权限与隐藏权限

目录 文件与目录的默认权限与隐藏权限 文件的默认权限&#xff1a;umask chattr (配置文件隐藏属性) lsattr (显示文件隐藏属性) 文件特殊权限&#xff1a; SUID, SGID, SBIT 观察文件类型&#xff1a;file 以下内容转载自鸟哥的Linux私房菜 文件与目录的默认权限与隐藏权…