一、init(必须实现)

init(context)

context对象是全文对象,我也不懂是啥意思,以前学掘金量化也有这个,大概是连接上下文通用的意思吧。

用法是context.xx,整个函数都可以调用这个东西,可以是对象,方法,属性。

按金字塔的话说这个是各种初始化配置,方便算法中所有方法之间传递。

注意事项:

1、在回测模式backtest和实盘模式paper_trading中回测和实时交易都只会在启动时触发一次,仅一次!

2、pel_call被pel公式调用时,在公式初次加载时被触发一次。

例子:

def init(context):

context.cash.limit = 5000

你可以定义各种初始对象,属性,方法。

反正记住这个基本方法是初始化用的就行。

二、handle_bar(必须实现)

bar数据更新,就会自动触发这个方法的调用。

策略的具体逻辑就在这个方法内实现,在实时交易中,该函数在交易时间内会更具选择运行模式被触发。

注意事项:

尽量不要在这个方法底下放入查询类函数,因为可能会不断被触发,我的理解是有bar更新就会触发。

api说查询类逻辑尽量在init()中执行

总的来说,把策略整体比作文章,那这个方法底下写的就是主段落,写的是策略本身逻辑。

必须实现的基本方法就两个,一个是init(context),另一个就是handle_bar(context)

其他的方法都可以选择实现,可选。

三、before_trading(选择实现)

before_trading(context)

这个函数在基准合约开盘前30分钟会被调用,不能在这个函数中发送订单。

注意事项:

这个函数的触发时间取决于用户当前基准合约的交易时间。只有在交易状态下有效,如backtest和paper_trading下。

我不太懂基准合约是指什么,可能是要交易的那个合约。后面再看吧。

这个方法,可以在开盘前调用,但是不能发订单,也就是不能用交易指令,应该可以用来算一些东西吧。我也不懂

啊!

例子:

def before_trading(context):

#获取平安银行EPS财务字段数据

detaval = fin_indicator('SZ000001','EPS',1,0,0)

#将查询的财务数据保存到context对象中

context.eps = dataval

看了这个例子,大概知道,可以用这个函数,在开盘前调取一些数据,做一些初始化,或者属性更新。

原来context.xx这个函数,在全文都是可以用的,无论什么基本方法下,但是应该有先后顺序吧。

后面再看。

四、after_trading(选择实现)

after_trading(context)

这个函数,不用看就知道了吧!

意思是在交易后实现。字面意思哈哈哈,怎么用还没看,现在我们来看看。

这个基本方法呢,每天在基准合约收盘后5分钟被调用。那就是说3点收盘,15:05被触发。

同样的,不能在这个函数中发送订单,也就是不能用交易函数。

它说我可以在这个方法下进行当日收盘后的一些计算。也只能在回测backtest和paper_trading下能用。

这个函数下没有例子。一脸懵逼。

大概知道就行了吧。这个函数当日只会被调动一次。我不理解,早盘收盘算不算呢?再看吧。

五、order_status(选择实现)

order_status(context,order)

这个函数,除了context外,还有一个order,第一次见哦,啥意思呢。

它说当委托下单,成交,撤单等与下单有关动作时,该方法就会被调用。仅在回测backtest和paper_trading下可以。

context对象我们知道了,那么order对象是什么呢。这里说用于捕获处理交易过程中产生的各种下单动作,根据捕获的信息,进行相应的处理。

不懂,我们先看看例子。

def order_status(context,order):

#判断柜台汇报信息,是否为全部成交。

if order.status == 'filler':

pring('全部成交')

原来这个是成交状态,下单状态的意思哦。

这个order对象有很多属性,这里不列出来,我看了一下。

order.status属性有7个:

submitted  订单状态,已报单但是未成交

tradeing  已成交(ps:妈的怎么这样写单词呢,直接加个ing,秀啊!)

filled  全部成交

cancelled  已撤单

inactive  无效单(可能是不在开盘时间,资金不足之类的导致无效)

connected  已连接(应该是连接柜台)

disconnected  连接断开

六、order_action(选择实现)

order_action(context,type,account,datas)

第二次看到属性方法超过一个的了。

注意事项:

这个函数只在融资融券,新股申购操作刷新动作时才会触发,一般账户无效。

也就是股票账户才有的。

type是int类型,这里返回的是数字

type  = 1 表示科荣券品种查询完成

type = 2 表示当日可申购新股查询完成

type = 3 表示中签查询完成

account是str,输入的是账户名

datas是int,type=1时是可融券品种数量,2是新股数量,3是中签新股数量

这个没有例子,不懂怎么用。

七、exit(选择实现)

exit(context)

用户可以在这个函数中处理一些退出后需要做的事情,比如记录一些变量到硬盘等。

注意事项:

1、backtest回测模式下,当评测结束时,这个函数被调用

2、paper_trading下,停止策略运行是,该函数被调用

3、pel_call被pel公式调用时,在pel公式关闭时被调用

我看了一个策略,这个函数的作用可以画图,在这个方法下,画曲线图啊,分布图之类的。高级哦!

def exit(context):

test_report_none()

#读取数据文件

#data = pd.read_csv(r'C:\a\201808.csv')

data = context.data

data.drop(data.columns[0], axis=1,inplace=True)

plt.figure(figsize=(5,5))

plt.imshow(data.corr(), cmap=plt.cm.hot, vmin=0, vmax=1)

plt.xticks(np.arange(19),data.columns,rotation=60)

plt.yticks(np.arange(19),data.columns)

plt.colorbar()

plt.show()

我就不懂,反正用法是那样。

八、parameter(选择实现)

parameter()

最后一个基本方法了。

这个是参数定义区,这里定义的参数,可以直接在context对象中获取。(选择实现)

注意事项:

1、参数定义区定义的变量,可以用于策略运行中动态调整参数。(不懂)

2、必须使用iput_par函数,定义变量,并且此函数仅支持在parameter()方法内使用。

3、parameter方法仅对backtest回测和paper_trading模式有效。

第一点应该是说,可以在handle_bar之类的方法中修改这个参数区,或者获取参数区的参数。

例子:

def parameter():

#使用input_par函数定义变量'myvalues1',默认值5,最小值1,最大值100,步长1

input_par("myvalues1",5,1,20,1)   #玩我呢,这不是最大值20吗。它上面应该写错了

# 使用input_par函数定义变量"myvalues2",默认值10,最小值1,最大值100,步长1。

input_par("myvalues2",10,1,20,1)

……

def handle_bar(context):

print(context.myvalues1+context.myvalues2)

噢,原来是可以在其他方法下调用呢,实际上就是设置参数的基本方法,牛哦。

应该在其他方法下也可以修改这些参数的。

九、模式说明

金字塔中的Python策略分为三类:Python策略、Python引用、Python模块

Python策略:Python运行策略(支持paper_trading,backtest)

Python引用:编写可用于PEL调用Python的模块(支持pel_call,仅此模式支持pel_history,log_debug_info,settimer,killltimer这四个函数的调用,其他的API函数均不可以)

Python模块:供Python调用的用户模块或供VBA调用的模块

不太懂,反正用第一个就行了。

我看到很多策略范例中都有自己写的函数,自己定义的函数,可是我不会写啊,Python没学完,一直停留在类似于学英语abandon的状态,就很离谱!

不打算又从头学了,因为大概率又是abandon。

就这样一边看一边学吧,学到不会的,什么迭代器,什么什么器之类的再去翻廖雪峰看看算了。

python金字塔函数_Pyramid Python量化学习笔记:API的基本方法,金字塔相关推荐

  1. python 魔法函数 __add___PythonI/O进阶学习笔记_2.魔法函数

    前言: 本文一切观点和测试代码是在python3的基础上. Content: 1.什么是魔法函数,魔法函数__getitem__在python中应用. 2.python的数据模型和数据模型这种设计对p ...

  2. python自定义函数复制字符串_Python学习笔记摘要(一)类型 字符串 函数 列表 深浅拷贝...

    python中的对象和类型 在python中,认为系统中的每一个"东西"都是一个对象,在python中,"对象"有着特殊的意义,python中的对象有: 一个标 ...

  3. python用函数绘制椭圆_Python学习笔记——opencv绘制椭圆

    在Python环境下使用opencv绘制椭圆,需要用到cv2.ellipse() 函数. 下面一段示例程序就是用该函数在黑色背景下,绘制一个圆心在(260,240).长轴170.短轴130.线宽为3的 ...

  4. Python的dict字典结构操作方法学习笔记

    Python的dict字典结构操作方法学习笔记 这篇文章主要介绍了Python的dict字典结构操作方法学习笔记本,字典的操作是Python入门学习中的基础知识,需要的朋友可以参考下 一.字典的基本方 ...

  5. 23神经网络 :唐宇迪《python数据分析与机器学习实战》学习笔记

    唐宇迪<python数据分析与机器学习实战>学习笔记 23神经网络 1.初识神经网络 百度深度学习研究院的图,当数据规模较小时差异较小,但当数据规模较大时深度学习算法的效率明显增加,目前大 ...

  6. 《深度学习入门-基于Python的理论与实现》学习笔记1

    <深度学习入门-基于Python的理论与实现>学习笔记1 第一章Python入门 Python是一个简单.易读.易记的编程语言,可以用类似于英语的语法进行编写程序,可读性高,且能写出高性能 ...

  7. map函数的用法python,详解Python map函数及Python map()函数的用法

    python map函数 map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list ...

  8. c语言学习笔记【结构体02】结构体指针变量与结构体变量的函数参数,C语言学习笔记结构体02结构体指针变量与结构体变量的函数参数.docx...

    C 语言学习笔记[结构体02]结构体指针变量与结构体变量 的函数参数 C 语言学习笔记之结构体指针变量一提指针,那可 是 C 语言的核心了,有多少学子曾拜倒在指针的脚下.单纯的说指针,其实并不难,但是 ...

  9. C++常函数和常对象学习笔记

    C++常函数和常对象学习笔记 一.友元的概述 二.友元的语法 三.友元类 3.1 通过传入参数来访问类的私有成员 3.2 通过类内指针来访问类的私有成员 四.类的友元成员函数 五.友元类的注意 一.友 ...

最新文章

  1. 程序员,是否应该有自己的职业规划?
  2. BZOJ 3884 上帝与集合的正确用法 (欧拉定理)
  3. Java GC日志查看和分析
  4. python remove函数_python中remove函数的用法是什么?
  5. SLAM 学习与开发经验分享
  6. React开发(125):ant design学习指南之form中的hasFeedback
  7. 堆排序不稳定的例子_【译】Python中的堆排序
  8. 前端开发-认识前端开发-0226
  9. UI设计中的图标分为哪些类型?
  10. 潭州课堂25班:Ph201805201 tornado 项目 第三课 项目 图片上传,展示 (课堂笔记)...
  11. jBPM Designer 2.4.0.Final版发布
  12. 数据结构(计算机存储、组织数据方式)
  13. deprecate(反对) 关于依赖版本低的问题
  14. Strings Mix
  15. linux-文件系统
  16. python 框架 scrapy_python之框架篇(scrapy)
  17. 160809310袁韬淳
  18. 腾讯外包抢5元红包被组长要回!格局决定高度。
  19. 机器学习-sigmoid函数
  20. java socat_linux – socat两个串口一起

热门文章

  1. mmap_sem信号量死锁故障分析
  2. java bll dal_实体框架DAL,BLL与存储库模式
  3. 读《孙子兵法》,品启强人生
  4. python爬取知乎文章_大佬分享Python编程实现爬取知乎用户信息的例子
  5. 重装和重装后该怎么办(通用版)
  6. 英国豪迈收购Static Systems,大力推进医疗市场
  7. 计算机网页设计论文加成品,计算机网页设计教学研究论文
  8. ARM Linux启动流程-根文件系统的加载
  9. hohoo停车log分析
  10. 如何将视频从QSV格式转换为MP4格式