易盛极星期货量化教学
我目前量化实盘做期货交易用的是这个软件。主要就是因为它可以做套利合约,还有就是国企的外包,安全(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 #已发出卖开委托
易盛极星期货量化教学相关推荐
- 无限易pythongo开发期货量化策略
为什么选择无限易pythongo开发期货量化策略: 1.无限易核心数据使用C++语言,运行速度快.实战中,一堆指标(指标计算python代码五百行以上),无限易计算需要的时间不到一秒: 2.无限易是运 ...
- 期货自动止损止盈 易盛极星
以下代码通过易盛的极星量化版实现,其他平台不可用. def risk(contractId1,percent):if A_BuyPosition(contractNo=contractId1)> ...
- 易盛极星多合约回测(问题很多)
注意,使用此函数,在考虑手续费时,无法做到统一. import talib import numpy as np import EsTalib from EsSeries import Numeric ...
- python期货量化交易实战_Python期货量化交易实战
·了解交易的规则与数据指标,学习正确的金融算法·基于真实的数据进行回测和分析,了解期货交易的内涵·循序渐进的案例式教学,按部就班地操作就能上手·基于Python 3.7进行分析,提供示例代码,可在异步 ...
- MeterSphere案例分享丨易盛信息MeterSphere接口测试使用经验
郑州易盛信息技术有限公司(以下简称为易盛信息)是郑州商品交易所的全资技术子公司.其主要的发展战略为"两个面向",即面向郑州商品交易所和面向全球金融期货市场. 目前,易盛信息一个普通 ...
- 期货量化交易程序CTP入门指南 一
周末综合征,周末爬山+跑步导致周一上班困的啥都不想做.正好趁这个时间写一下前两周做的一个期货网格化工具,算是给后面要入门的兄弟尽点微薄之力(虽然网上的资料已经足够多)! 我本对期货一无所知(仅知道&q ...
- 支持python的交易软件_能用python的期货交易软件,期货量化交易软件哪个好
Q1:期货量化交易软件哪个好 这种问题怎么回答,会被屏蔽的 市场还是有很多的,中金.和讯.同花顺.期获宝.新浪期货等,都有,自己去分别体验下 Q2:只为了自己遍自己用的炒期货软件,学Python还是C ...
- python版期货量化交易(AlgoPlus)案例(多进程处理子任务)
python版期货量化交易(AlgoPlus)案例(多进程处理子任务) python因为简单.易上手,所以深受大家的喜爱,并且随着人工智能的不断发展与进步,python也一跃成为了最受欢迎的编程语言之 ...
- 正大国际期货:易盛软件系统的介绍
作为期货市场比较知名的交易系统之一,易盛易星APP是由郑州商品交易所的子公司易盛信息出品的作为一款集市场和交易于一体的手机APP交易软件,EasyStar APP提供的数据直接来自交易系统网关,这是一 ...
最新文章
- Linux有问必答:如何安装autossh
- Linux内核裁剪及编译
- 互联网运营人员不得不知的14款工具神器
- U-boot链接地址的详解
- CookiePolicy 原理解析
- Mysql大数据备份和增量备份及还原
- javascript编程风格(粗略笔记)
- 【渝粤教育】国家开放大学2018年春季 建筑结构基础 参考试题
- 修改UITextField中的placeholder的字体
- CAS Client 3.2.1 配置详解
- 前端之 BOM 和 DOM
- Python菜鸟入门:day15编程学习
- 关于MATLAB处理大数据坐标文件
- pandas 批量修改列名_十分钟想搞定pandas?
- wireless 大作业 linux,Wire/Wireless Network Configuration in Linux
- 如何在java中把两个PDF拼接到一个
- Cypress 前端测试工具的基本使用和相关命令总结
- python 计算gdp_使用Numpy计算Python-Gini系数
- 阿里云邮箱发送邮件,多人多附件
- oracle做分页式报表,报表性能优化方案之单数据集分页SQL实现层式报表
热门文章
- how to learn html5,HTML5与CSS基础
- C++面试 语言基础
- 显卡天梯图:2014最新显卡性能天梯图
- 科目三电子考的通过率普遍偏低
- 现代数字影视 电影使用标准
- 解决:RabbitMQ 连接报错:amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connect
- FreeSql (四)实体特性 Fluent Api
- latex 幻灯片演示模板
- QuickStart系列:docker部署之Gitlab本地代码仓库
- Jmeter----5.1 设置中文