期权量化学习(1)

学习量化个人认为最主要的还是底层策略,但是量化的工具还是比不可少。

学习量化工具,编程知识和平台API接口又不可避免,而量化平台很多,所以量化平台的API是学习量化的基础。

本文以 PoboAPI 为例进行学习说明,好处是它是免费的。

API文档https://quant.pobo.net.cn/doc?name=api#api%E6%96%87%E6%A1%A3

注:本API文档中,带★的api可以用参数名=参数值的形式进行调用,不含★的api需要按参数顺序进行调用。

首先自行注册帐号,在此不在赘述。

一个策略正常包括以下四个部分:

头部(引入python库)——>触发事件(登录相应帐号)——>初始化行情——>K线循环与交易(策略底层逻辑)

1、引入常用python库,https://quant.pobo.net.cn/doc?name=api#%E9%99%84%E5%BD%95%E4%B8%80-%E6%94%AF%E6%8C%81%E7%9A%84python%E6%A0%87%E5%87%86%E5%BA%93

from PoboAPI import *
import datetime
import time
import numpy as np

2、触发事件,策略设计应遵循“事件驱动”的开发思路。

当新的“事件”(比如新的价格数据或者账户状态的变化)被推送到策略程序时,程序将调用和这个事件相对应的处理函数来进行相关操作。

这和我们最常使用的顺序式编程略有不同。程序执行各个任务的先后顺序取决于是否监听到了特定事件的发生。

事件驱动型程序在启动后就处在一个循环当中。这个循环就在监听各种事件。

使用事件驱动的设计思想,我们可以通过监听到的各种“消息”和响应函数的各种“指令”将程序的各部件连接起来。

对于事件驱动型程序,我们还可以将其中各个组成部分划分为“元素”和“操作函数”。

常用事件如下:https://quant.pobo.net.cn/doc?name=api#%E8%A7%A6%E5%8F%91%E4%BA%8B%E4%BB%B6

 开始事件OnStart(context)

在回测、模拟/实盘策略启动时会触发一次,比其他事件都更早触发。一般会用于初始化一些变量,例如策略使用的账号等。

#开始时间,用于初始化一些参数
def OnStart(context) :
    context.myacc = None
    print([context.accounts])
    
    #登录交易账号
    if context.accounts["回测期货"].Login() :
        context.myacc = context.accounts["回测期货"]
        print(context.accounts["回测期货"].IsLogined())

  

context对象,里面包含上下文信息,在各个事件响应函数中会作为参数传入,里面主要包含以下信息。

 我们print accounts时,会返回自己的帐号信息

print([context.accounts])

  

登录帐号—Account.Login, bool型,登录成功True,登录失败返回False

检查登陆—Account.IsLogined,检查账号是否已登录,返回True或False

context.accounts["回测期货"].Logout()
print(context.accounts["回测期货"].IsLogined())

  

原文地址:https://www.cnblogs.com/adam012019/p/14711029.html