易盛极星期货量化教学

我目前量化实盘做期货交易用的是这个软件。主要就是因为它可以做套利合约,还有就是国企的外包,安全(vnpy的狗咬狗害怕)。

策略模板:

设置全局参数变量:

#导入包
import talib
#选择合约代码
code1 = ''
#设置可调参数
g_params['FastLength'] = 5 
g_params['SlowLength'] = 20#开仓标志
BKFLG = 0
SKFLG = 0
#平仓标志
BPFLG = 0
SPFLG = 0
#开仓委托
BKID = 0
SKID = 0
#平仓委托
BPID = 0
SPID = 0
#开仓撤单标志
BKDEL = 0
SKDEL = 0
#平仓撤单标志
BPDEL = 0
SPDEL = 0
#平仓委托手数
BKM = 0
SKM = 0
#平仓撤单标志
BPM = 0
SPM = 0
#开仓委托价格
BKP = 0
SKP = 0
#平仓委托价格
BPP = 0
SPP = 0

设置initialize,确定回测范围,下单方法:

def initialize(context): SetBarInterval(code1, 'M', 1, 500)SetTriggerType(5)SetOrderWay(2)SetActual()

设置交易函数

def handle_data(context):
#设置运行常量BKDFLG = 0SKDFLG = 0BPKDFLG = 0SPKDFLG = 0BRP = 0SRP = 0global BKIDglobal SKIDglobal BPIDglobal SPIDglobal BKFLGglobal SKFLGglobal BPFLGglobal SPFLGglobal BKDELglobal SKDELglobal BPDELglobal SPDELglobal BKMglobal SKMglobal BPMglobal SPMglobal BKPglobal SKPglobal BPPglobal SPP#确定数据长度足够if CurrentBar() < g_params['SlowLength']:return#计算所有的技术指标   AvgValue1 = talib.MA(Close(), g_params['FastLength']) #快线周期均值AvgValue2 = talib.MA(Close(), g_params['SlowLength']) #慢线周期均值PlotNumeric("ma1", AvgValue1[-1], 0xFF0000)PlotNumeric("ma2", AvgValue2[-1], 0x00aa00)# 执行下单操作,确定用[-2],是前一天的数据。[-1]是当天,用到了未来函数if MarketPosition() <= 0 and AvgValue1[-2] > AvgValue2[-2]:BPKDFLG = 1if MarketPosition() >= 0 and AvgValue1[-2] < AvgValue2[-2]:SPKDFLG = 1

历史回测检测

#//------------------------历史发单------------------------//   if context.strategyStatus() != 'C':if BPKDFLG:#多头建仓Buy(1, Close()[-1])elif SPKDFLG:#空头建仓SellShort(1, Close()[-1])return

实时下单:

#//------------------------实时处理------------------------//if ExchangeStatus(ExchangeName()) != '3':return#//------------------------变量赋值------------------------//N = 2 #下单手数BIDP = 0 if Q_BidPrice() is None else Q_BidPrice() #买一价ASKP = 0 if Q_AskPrice() is None else Q_AskPrice() #卖一价RLP = Q_UpperLimit() #涨停价FLP = Q_LowLimit() #跌停价BRP = A_BuyPositionCanCover() #多头可用持仓SRP = A_SellPositionCanCover() #空头可用持仓if ExchangeName() == 'SHFE': #如果是上期所合约SH = Enum_ExitToday() #平仓参数else: #如果非上期所合约SH = Enum_Exit() #平仓参数#//------------------------成交判断------------------------//if BPFLG == 1:if A_OrderStatus(BPID) == Enum_Filled():LogInfo("BPK信号:买平委托成交!")BKDFLG = 1 #开启买开处理BPFLG = 0 #买平标志归0if BKFLG == 1:if A_OrderStatus(BKID) == Enum_Filled():LogInfo("BPK信号:买开委托成交!")if BKDEL > 0: #如果是SPK信号撤单SPKDFLG = 1 #开启卖平开处理BKFLG = 0 #买开标志归0BKDEL = 0 #买开撤单标志归0elif A_OrderStatus(BKID) == Enum_Canceled():LogInfo("SPK信号:买开委托已撤!")SPKDFLG = 1 #开启卖平开处理BKFLG = 0 #买开标志归0BKDEL = 0 #买开撤单标志归0elif A_OrderStatus(BKID) == Enum_Suspended() or A_OrderStatus(BKID) == Enum_FillPart():if BKDEL == 2: #如果是SPK信号撤单LogInfo("SPK信号:买开委托撤单!")A_DeleteOrder(BKID) #撤掉买开委托挂单BKDEL = 3 #SPK信号撤掉买开委托挂单if SPFLG == 1:if A_OrderStatus(SPID) == Enum_Filled():LogInfo("SPK信号:卖平委托成交!")SKDFLG = 1 #开启卖开处理SPFLG = 0 #卖平标志归0if SKFLG == 1:if A_OrderStatus(SKID) == Enum_Filled():LogInfo("SPK信号:卖开委托成交!")if SKDEL > 0: #如果是BPK信号撤单BPKDFLG = 1 #开启买平开处理SKFLG = 0 #卖开标志归0SKDEL = 0 #卖开撤单标志归0elif A_OrderStatus(SKID) == Enum_Canceled():LogInfo("BPK信号:卖开委托已撤!")BPKDFLG = 1 #开启买平开处理SKFLG = 0 #卖开标志归0SKDEL = 0 #卖开撤单标志归0elif A_OrderStatus(SKID) == Enum_Suspended() or A_OrderStatus(SKID) == Enum_FillPart():if SKDEL == 2: #如果是BPK信号撤单LogInfo("BPK信号:卖开委托撤单!")A_DeleteOrder(SKID) #撤掉卖开委托挂单SKDEL = 3 #BPK信号撤掉卖开委托挂单#//------------------------委托处理------------------------//if BPKDFLG == 1:if SKFLG == 1:if SKDEL == 0:if A_OrderStatus(SKID) == Enum_Suspended() or A_OrderStatus(SKID) == Enum_FillPart():LogInfo("BPK信号:卖开委托撤单!")A_DeleteOrder(SKID) #撤掉卖开委托挂单SKDEL = 1 #BPK信号撤掉卖开委托挂单else:SKDEL = 2 #BPK信号撤掉卖开委托挂单elif SKFLG == 0:if BPFLG == 0:if SRP > 0:BPM = SRP #买平委托手数BPP = RLP #买平委托价格LogInfo("BPK信号:买平委托发出!")retCode, BPID = A_SendOrder(Enum_Buy(), SH, BPM, BPP) #发出买平委托BPFLG = 1 #已发出买平委托elif SRP == 0:BKDFLG = 1 #开启买开处理if BKDFLG == 1:if BKFLG == 0:BKM = N #买开委托手数BKP = ASKP #买开委托价格LogInfo("BPK信号:买开委托发出!")retCode, BKID = A_SendOrder(Enum_Buy(), Enum_Entry(), BKM, BKP) #发出买开委托BKFLG = 1 #已发出买开委托if SPKDFLG == 1:if BKFLG == 1:if BKDEL == 0:if A_OrderStatus(BKID) == Enum_Suspended() or A_OrderStatus(BKID) == Enum_FillPart():LogInfo("SPK信号:买开委托撤单!")A_DeleteOrder(BKID) #撤掉买开委托挂单BKDEL = 1 #SPK信号撤掉买开委托挂单else:BKDEL = 2#SPK信号撤掉买开委托挂单elif BKFLG == 0:if SPFLG == 0:if BRP > 0:SPM = BRP #卖平委托手数SPP = FLP #卖平委托价格LogInfo("SPK信号:卖平委托发出!")retCode, SPID = A_SendOrder(Enum_Sell(), SH, SPM, SPP) #发出卖平委托SPFLG = 1 #已发出卖平委托elif BRP == 0:SKDFLG = 1 #开启卖开处理if SKDFLG == 1:if SKFLG == 0:SKM = N #卖开委托手数SKP = BIDP #卖开委托价格LogInfo("SPK信号:卖开委托发出!");retCode, SKID = A_SendOrder(Enum_Sell(), Enum_Entry(),SKM,SKP) #发出卖开委托SKFLG = 1 #已发出卖开委托

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

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

相关文章

eBay是如何进行大数据集元数据发现的

很多大数据系统每天都会收集数PB的数据。这类系统通常主要用于查询给定时间范围内的原始数据记录&#xff0c;并使用了多个数据过滤器。但是&#xff0c;要发现或识别存在于这些大型数据集中的唯一属性可能很困难。 在大型数据集上执行运行时聚合&#xff08;例如应用程序在特定…

职业发展 先“立功”还是先“安内”?

导读&#xff1a;职业生涯更上一层楼&#xff0c;章良踌躇满志&#xff0c;想在短期内建功立业&#xff0c;奠定江湖地位。但他清楚&#xff0c;自己运筹中的分公司服务升级计划&#xff0c;对公司整体和自己的职业生涯都非常有利&#xff0c;却将不可避免地转移老将掌握的部分…

网关 Kong 折腾笔记 - 相关技术清单

背景 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 公司准备更好的实现微服务架构&#xff0c;我前期的任务主要是 API 开发相关的技术学习&#xff0c;微服务会随着业务的增加不断增加…

Quantaxis更新数据到最新

登录QQ群&#xff1a;563280067 安装方法&#xff1a; 1.进入命令界面&#xff0c; 2.pip install pytdx-1.72r2-py3-none-any.whl 3. pip install quantaxis-1.10.19r1-py3-none-any.whl 之后输入save save all 即可看到所有的数据全部安装到位

Java各进制之间的转换

十进制转成十六进制&#xff1a; Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinaryString(int i) 十六进制转成十进制 Integer.valueOf("FFFF",16).toString() 八进制转成十进制 Integer.valueOf("…

mingW与cygwin 异同

首先MingW和cygwin都可以用来跨平台开发。 MinGW是Minimalistic GNU for Windows的缩写&#xff0c;也就是Win版的GCC。 Cygwin则是全面模拟了Linux的接口&#xff0c;提供给运行在它上面的的程序使用&#xff0c;并提供了大量现成的软件&#xff0c;更像是一个平台。 相…

shell字符串的用法

shell字符串的用法 注意&#xff1a;shell4.2和shell4.1会有差别&#xff0c;较低版本的shell可能不支持某些功能 获取字符串长度&#xff1a;${#string}获取子串&#xff1a; 注&#xff1a;&#xff08;左边的第一个字符是用 0 表示&#xff0c;右边的第一个字符用 0-1 表示&…

backtrader期权回测框架

使用backtrader数据进行回测&#xff0c;数据源来自于交易所爬取。 效果还行&#xff0c;我相信各位通过这个的框架学习&#xff0c;会对backtrader的应用有更深的领悟。包括数据的连接&#xff0c;新指标的加入。 导入框架&#xff1a; __future__ import (absolute_import…

kong入门实战

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 安装kong-database docker run -d --name kong-database \-p 5432:5432 \-e "POSTGRES_USERkong" \-e "POSTGRES_DBkong&…

PAT A1048

示例思想中提到了二分以及two point概念&#xff0c;这个需要后面进行总结&#xff1b;这个示例也给出了一个新的思路。对于两个数字和m&#xff0c;查找两个加数&#xff0c;可以进行i和m-i的枚举&#xff0c;通过遍历数组查看两个加数是否存在&#xff0c;来进行遍历&#xf…

linux 32位平台,文件大小受限于2G的解决方法

公司的asterisk系统已经发生了两次crash&#xff0c;检查日志&#xff0c;都是在日志文件写满到2G后自动执行转储时&#xff0c;日志还在写继续写入而导致的。google以后&#xff0c;发现了下面这边文章&#xff0c;赞&#xff01;解决了文件大小限于2G的问题&#xff0c;转帖到…

【noip模拟赛4】Matrix67的派对 暴力dfs

【noip模拟赛4】Matrix67的派对描述 Matrix67发现身高接近的人似乎更合得来。Matrix67举办的派对共有N(1<N<10)个人参加&#xff0c;Matrix67需要把他们安排在圆桌上。Matrix67的安排原则是&#xff0c;圆桌上任意两个相邻人的身高之差不能超过K。请告诉Matrix67他共有多…

Backtrader多周期回测

获取数据 result pd.read_csv(11.csv) df pd.DataFrame(dataresult) df df.set_index([datetime]) df 策略 class MultiTFStrategy(bt.Strategy):params ((period, 20),)# states definationEmpty, M15Hold, H1Hold, D1Hold range(4)States [Empty, M15Hold, H1Hold, D…

CentOS 7 防火墙操作

导语 今天说下防火墙的操作。CentOS 6 的防火墙是 iptables&#xff0c;CentOS 7 默认的是 firewall&#xff0c;以前的操作不再适用。 查看、开启 服务器刚刚重启完毕&#xff0c;先来看下防火墙的状态&#xff0c;输入 systemctl status firewalld 进行查看 这里是关闭的&…

Centos安装nmon软件 ( 测试 )

安装 mkdir /usr/local/nmon cd /usr/local/nmon wget http://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz tar zxvf nmon_linux_14i.tar.gz chmod 777 nmon_x86_64_sles11 12345 启动 ./nmon_x86_64_sles11 1 说明&#xff1a; 按C显示CPU信息&#xff0c;再按…

阿里云安装Quantaxis

参考博客&#xff1a;https://github.com/QUANTAXIS/QUANTAXIS/issues/1395 之后进入阿里云中的Ubuntu界面 输入&#xff1a; sudo yum install apt-transport-https ca-certificates curl software-properties-common Sudo yum install curl service network restartcd qua…

sorted_一个函数秒杀冒泡排序算法和选择排序

sorted一招杀a [3,9,12,4,5,7,8,110]print(sorted(a,reverseTrue))# true为降序print(sorted(a,reverseFalse))# revers false为升序print(sorted(a))#默认是false升序排列Bubble_sort下面看看坑死人无数的冒泡排序内循环和外循环每次循环依次比较大小并来回挪坑,直到把目标值…

转载给ffmpeg入门级:我的第一个调用FFmpeg库的程序出炉

好消息&#xff0c;写了第一个使用了ffmpeg的库的小程序。看起来就是这么简单的一个消息&#xff0c;但是you have no idea how much work that I did before it works...废话少说&#xff0c;总结记录之。。。一、安装好Linux的虚拟机。我用的是FEDORA-16&#xff0c;当然别的…

runC爆严重安全漏洞,主机可被攻击!使用容器的快打补丁

容器的安全性一直是容器技术的一个短板。关于容器最大的安全隐患是攻击者可以使用恶意程序感染容器&#xff0c;更严重时可以攻击主机系统。 2月11日&#xff0c;安全研究员Adam Iwaniuk和BorysPopławski发现了容器运行时runC的一个安全漏洞&#xff0c;这个漏洞可以让上述情况…

pandas操作sql数据库

导包 import pymssql from sqlalchemy import create_engine import pandas as pd 连接数据库 #读数据 conn pymssql.connect(server.,user sa,password test,databasepos) sql select * from stock_data df0 pd.read_sql(sql,conn) 写入数据 df pd.read_csv(option_…