第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

開源量化回測框架backtrader技術(shù)教程1:簡介

还在学用python自己编写量化回测与交易框架吗?不要再浪费时间造轮子了,时间是最宝贵的。我认为利用现有本地化开源框架,直接进行策略编制和测试,而不是把时间浪费在各种IT基础功能上,是最快速进入量化研究的方法。

现在有不少很好的python开源量化框架,其中backtrader是最容易入门,而功能又非常强大的,架构简洁优雅,编程水平极高。它帮你完成各种IT基础设施功能,你只需专注于交易策略的设计与编制。

下面,我们来看一个所有开源量化框架都会实现的单股票双均线策略,操作一支股票,使用日线数据,该策略基本思想是短期均线上穿长期均线(金叉),下穿长期均线(死叉)卖出。

在backtrader中该策略的实现代码如下,看注释很容易理解其思路。

# 创建双均线策略类
class SmaCross(bt.Strategy):
    # 定义参数
    params = dict(
        fast_period=5,  # 快速移动平均期数
        slow_period = 10,)  # 慢速移动平均期数

    def __init__(self):
        # 快速移动平均线指标
        fastMA = bt.ind.MovingAverageSimple(period=self.params.fast_period)

        # 慢速移动平均线指标
        slowMA = bt.ind.MovingAverageSimple(period=self.params.slow_period)

        # 移动均线交叉信号指标
        self.crossover = bt.ind.CrossOver(fastMA, slowMA)        

        self.order = None    # 设置订单引用,用于取消以往发出的尚未执行的订单


    def next(self): # 每个新bar结束时触发调用一次,相当于其他框架的 on_bar()方法

        self.cancel(self.order) # 取消以往未执行订单

        if not self.position:  # 还没有仓位,才可以买
            if self.crossover > 0:  # 金叉           
                self.order = self.buy(size=100) # 创建市价买单,该单会在次日以开盘价成交

        # 已有仓位,才可以卖
        elif self.crossover < 0:  # 死叉          
            self.order = self.sell(size=100) # 创建市价卖单,该单会在次日以开盘价成交


看过其他python开源量化平台或框架的读者,可以把其他框架实现同样逻辑的代码拿来比较一下,看看哪个更加简洁自然。

还没有入坑backtrader的朋友也可根据本例子评估是否喜欢backtrader的风格,做出是否入坑的决定。



點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消