zoukankan      html  css  js  c++  java
  • 期权量化学习(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())
    

      

  • 相关阅读:
    tensorflow 2.0 学习 (十) 拟合与过拟合问题
    tensorflow 2.0 学习 (九) tensorboard可视化功能认识
    tensorflow 2.0 学习 (八) keras模块的认识
    tensorflow 2.0 学习 (七) 反向传播代码逐步实现
    tensorflow 2.0 学习 (六) Himmelblua函数求极值
    tensorflow 2.0 学习 (五)MPG全连接网络训练与测试
    arp协议简单介绍
    Pthread spinlock自旋锁
    线程和进程状态
    内核态(内核空间)和用户态(用户空间)的区别和联系·
  • 原文地址:https://www.cnblogs.com/adam012019/p/14711029.html
Copyright © 2011-2022 走看看