python期货程序化交易高手心得_10分钟打造WonderTrader上的期货日内交易策略
最终策略源码如下
from wtpy import BaseStrategy
from wtpy import Context
class StraDualThrust(BaseStrategy):
def __init__(self, name:str, code:str, barCnt:int, period:str, days:int, k1:float, k2:float, isForStk:bool = False):
BaseStrategy.__init__(self, name)
self.__days__ = days
self.__k1__ = k1
self.__k2__ = k2
self.__period__ = period
self.__bar_cnt__ = barCnt
self.__code__ = code
self.__is_stk__ = isForStk
def on_init(self, context:Context):
code = self.__code__ #品种代码
if self.__is_stk__:
code = code + "Q"
context.stra_get_bars(code, self.__period__, self.__bar_cnt__, isMain = True)
context.stra_log_text("DualThrust inited")
def on_calculate(self, context:Context):
'''
策略主调函数,所有的计算逻辑都在这里完成
'''
code = self.__code__ #品种代码
# 交易单位,主要用于股票的适配
trdUnit = 1
if self.__is_stk__:
trdUnit = 100
#读取最近50条1分钟线(dataframe对象)
theCode = code
if self.__is_stk__:
theCode = theCode + "Q"
df_bars = context.stra_get_bars(theCode, self.__period__, self.__bar_cnt__, isMain = True)
#把策略参数读进来,作为临时变量,方便引用
days = self.__days__
k1 = self.__k1__
k2 = self.__k2__
#平仓价序列、最高价序列、最低价序列
closes = df_bars["close"]
highs = df_bars["high"]
lows = df_bars["low"]
#读取days天之前到上一个交易日位置的数据
hh = highs[-days:-1].max()
hc = closes[-days:-1].max()
ll = lows[-days:-1].min()
lc = closes[-days:-1].min()
#读取今天的开盘价、最高价和最低价
lastBar = df_bars.iloc[-1]
openpx = lastBar["open"]
highpx = lastBar["high"]
lowpx = lastBar["low"]
'''
!!!!!这里是重点
1、首先根据最后一条K线的时间,计算当前的日期
2、根据当前的日期,对日线进行切片,并截取所需条数
3、最后在最终切片内计算所需数据
'''
#确定上轨和下轨
upper_bound = openpx + k1* max(hh-lc,hc-ll)
lower_bound = openpx - k2* max(hh-lc,hc-ll)
#读取当前仓位
curPos = context.stra_get_position(code)/trdUnit
if curPos == 0:
if highpx >= upper_bound:
context.stra_enter_long(code, 1*trdUnit, 'enterlong')
context.stra_log_text("向上突破%.2f>=%.2f,多仓进场" % (highpx, upper_bound))
#修改并保存
self.xxx = 1
context.user_save_data('xxx', self.xxx)
return
if lowpx <= lower_bound and not self.__is_stk__:
context.stra_enter_short(code, 1*trdUnit, 'entershort')
context.stra_log_text("向下突破%.2f<=%.2f,空仓进场" % (lowpx, lower_bound))
return
elif curPos > 0:
if lowpx <= lower_bound:
context.stra_exit_long(code, 1*trdUnit, 'exitlong')
context.stra_log_text("向下突破%.2f<=%.2f,多仓出场" % (lowpx, lower_bound))
#raise Exception("except on purpose")
return
else:
if highpx >= upper_bound and not self.__is_stk__:
context.stra_exit_short(code, 1*trdUnit, 'exitshort')
context.stra_log_text("向上突破%.2f>=%.2f,空仓出场" % (highpx, upper_bound))
return
def on_tick(self, context:Context, stdCode:str, newTick:dict):
return
python期货程序化交易高手心得_10分钟打造WonderTrader上的期货日内交易策略相关推荐
- python期货程序化交易高手心得_位顶级高手谈期货心得
位顶级高手谈期货心得 王向洋 14 年期货生涯,多次获得全国期货实盘大赛冠军,曾创造的最高收益率为 5 个 月 54 倍. 期货中国网访谈精彩语录: 比赛时操盘的冒险精神强很多. 在和高手过招中你会思 ...
- python期货程序化交易高手心得_11位顶级高手谈期货心得
位,再多钱也是没有用的. 外盘的价 格变化是国外交易商的预期,跟国内的预期不完全吻合. 我不会去使用程序化交易,我认为程序化交易是有局限性的. 价格是变化的,你很难用一个框子来框它! 有时候期货交易它 ...
- python期货程序化交易高手心得_程序化交易高手的交易心得 分享~
总体来说, 一.行情研判模块 行情研判模块是主要为资金管理和交易策略服务的.如果除去这一点,所有的行情研判就都失去了目标也就没有办法设立标准,当然也就没有了实际的意义.预测是研判的一部分,但是研判不仅 ...
- python random模块中的指令_10分钟让你掌握python编程中random模块功能使用,非常详细...
原标题:10分钟让你掌握python编程中random模块功能使用,非常详细 python作为一门高级编程语言,它的定位是优雅.明确和简单.阅读Python编写的代码感觉像在阅读英语一样,这让使用者可 ...
- python 贪吃蛇小游戏代码_10分钟再用Python编写贪吃蛇小游戏
Python编写贪吃蛇 前不久我们公众号发布了一篇C++编写贪吃蛇小游戏的推文,反响空前.看来大家对这类简单易上手小游戏还是很喜爱的. 恰逢2018年IEEE Spectrum编程语言排行榜新鲜出炉, ...
- python微信朋友圈刷图_10分钟用Python做个微信朋友圈抽奖九宫格
最近在朋友圈看到个好玩的抽奖九宫格: 随便点开一个: 哈哈,笑出猪叫!这个玩法利用了朋友圈发长图会显示中间局部的设定,搞笑之余也为朋友圈广告营销贡献了新思路. 制作图的过程也不复杂,长图对应部分设计好 ...
- python微信公众号翻译功能_10分钟教你用Python实现微信翻译机器人
相信大家在日常学习或者是阅读英文文章的过程中,难免会出现几个不认识的单词,或者想快速翻译某段英文的意思. 今天,利用Python爬虫等知识,教大家打造一个微信下的翻译小助手.好吧,开始干活. 先来看看 ...
- python turtle画四叶草的步骤_10分钟轻松学会 Python turtle 绘图
先说明一下turtle绘图的基础知识: 1. 画布(canvas) 画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置 1.1 设置画布大小 turtle.screensiz ...
- 放弃文华财经,自己编程实现期货程序化交易
一.目前期货程序化现状: 由于有免费的CTP接口,期货程序化交易目前比较普遍,很多人都尝试过在文华财经.金字塔之类的软件上回测和编写实盘策略. 期货程序化交易有很多优点:程序会按照设计自动执行,不受任 ...
- 基于日内交易特征的因子选股策略
摘要: 个股的日内交易特征是当日交易关键要素的概况.通过多维度刻画一段时间内高开低收以外的日内交易细节信息,使得低频交易成为可能. 利用个股分钟级别的量价数据构造月频因子,我们更为推荐两步算法:首先刻 ...
最新文章
- 端口聚合与Trunk综合配置
- [JavaScript] 设置函数同名变量为false会导致函数无法执行
- 阿里云专访Redisson作者Rui Gu:构建开源企业级Redis客户端之路
- 怎么创建数据表的实体类和业务类_微服务项目第13天:商品分类业务的实现
- matlab实现线性规划
- ssh问题:ssh_exchange_identification: Connection closed by remote host
- 小程序解决方案 Westore - 组件、纯组件、插件开发
- CXF 生成Web Service Client(将WSDl 转化成 Java代码)
- 从 VMWare 到阿里神龙,虚拟化技术 40 年演进史
- 洛谷P5108 仰望半月的夜空(后缀数组)
- redmine cannot load such file – rbpdf-font
- DataFrame的构建及一些操作
- 解决浏览器兼容性问题
- python爬取内容_Python爬取小说内容
- 扫雷游戏代码+代码分析
- Mysql8数据库导到Mysql5数据库,报错Unknown collation: 'utf8mb4_0900_ai_ci'
- C++ 有理数运算符重载
- 深度学习大神都推荐入门必须读完这9篇论文
- 【IJCAI 2016】Modularity Based Community Detection with Deep Learning 阅读小记
- 7-3 垃圾分类 (20分)
热门文章
- 【电脑使用】桌面图标有蓝底怎么去掉
- 幻读Java_关于幻读 - hellopretty - 博客园
- 加州ucla 计算机学校,美国加州大学洛杉矶分校UCLA计算机硕士CS录取
- Inoventica干线网络,600 Gbit / s。
- B. Silly Mistake(模拟、思维)
- 开关二极管的工作原理
- 读史使人明智,读诗使人灵秀,数学使人周密,科学使人深刻,伦理学使人庄重,逻辑修辞之学使人善辩:凡有所学,皆成性格。
- Word文档中统一字符串八大妙法(转)
- CAD2018下载AutoCAD2018下载AutoCAD2018安装详细教程
- 2022-2028全球姿势矫正器行业调研及趋势分析报告