乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      量化交易--交易策略超參數(shù)優(yōu)化

       禁忌石 2022-05-24 發(fā)布于浙江

      上一節(jié)我們經(jīng)過簡單優(yōu)化后實現(xiàn)了第一個盈利的策略,但我們依然需要思考一下策略參數(shù)是不是最優(yōu)的,是否還有優(yōu)化的空間?

      本節(jié)我們將基于 freqtrade 的Hyperopt模塊,對我們的策略參數(shù)進行優(yōu)化,Hyperopt本質(zhì)上還是基于scikit-optimize進行開發(fā)的。

      我們先簡單介紹一下原理,超參數(shù)優(yōu)化一般有三種方式:

      1、網(wǎng)格搜索(Grid Search)

      網(wǎng)格搜索是暴力搜索,在給定超參搜索空間內(nèi),嘗試所有超參組合,最后搜索出最優(yōu)的超參組合,主要缺點是耗時,不適應(yīng)大量參數(shù)的窮舉,如下圖:

      文章圖片1

      2、隨機搜索(Randomized Search)

      隨機搜索是在搜索空間中采樣出超參組合,然后選出采樣組合中最優(yōu)的超參組合。隨機搜索的好處如下圖所示:

      文章圖片2

      網(wǎng)格搜索和隨機搜索的對比[2]

      網(wǎng)格搜索不會care這個參數(shù)是否為important parameter,對于所有參數(shù)一視同仁,窮舉所有的情況,尋找最優(yōu)參數(shù)組合;而隨機搜索會有更多的參數(shù)值參與到important parameter中,減少搜索范圍,提升搜索效率。

      3、貝葉斯優(yōu)化(Bayesian Optimization)

      調(diào)優(yōu)的目的是要找到一組最優(yōu)的超參組合,能使目標函數(shù)f達到全局最小值。

      文章圖片3

      舉個例子,若學(xué)習率設(shè)置過大,模型可能會在代價函數(shù)的全局最優(yōu)點附近不斷來回震蕩,甚至跳出全局最優(yōu)點,而設(shè)置過小,又可能會陷入局部最優(yōu),因此調(diào)學(xué)習率這一參數(shù),是為了讓模型能收斂到代價函數(shù)的全局最小值。可是在機器學(xué)習中,目標函數(shù)f常是被稱作expensive blackbox function,計算開銷大且不一定為凸函數(shù)。為此,貝葉斯優(yōu)化出現(xiàn)了,它特別適合針對expensive blackbox function找到全局最優(yōu)。

      文章圖片4

      隨機采樣10個點的目標函數(shù)f(x)[4]

      貝葉斯優(yōu)化使用了高斯過程(gasussian processes, GP)去構(gòu)建代理模型,基于給定的輸入和輸出,GP會推斷出一個模型(這里為代理模型)。假設(shè)我們從expensive step的f(x)采樣了4個點,然后我們把這4個點交給GP,它會返回一個代理模型

      文章圖片5

      綠色實線就是GP的代理模型,綠色條帶是輸出分布的標準差(即為Uncertainty)。我們有了代理模型,后續(xù)我們?nèi)フ蚁乱粋€合適的超參值,就能帶入到計算開銷相對較小的代理模型中,評估給定超參值的情況。

      對上述原理感興趣的小伙伴,還可以再深入了解一下。

      Code

      實現(xiàn)我們HyperOpt的超參數(shù)調(diào)優(yōu)代碼:(相對比較簡單)

      # Hyperoptable parametersbuy_rsi = IntParameter(low=1, high=50, default=30, space='buy', optimize=True, load=True)sell_rsi = IntParameter(low=50, high=100, default=70, space='sell', optimize=True, load=True)short_rsi = IntParameter(low=51, high=100, default=70, space='sell', optimize=True, load=True)exit_short_rsi = IntParameter(low=1, high=50, default=30, space='buy', optimize=True, load=True)

      將買入?yún)?shù)變量替換至買入策略中:

      文章圖片6

      同理將賣出參數(shù)變量替換至賣出策略中:

      文章圖片7

      啟動參數(shù)調(diào)優(yōu),設(shè)置為500epoch:

      docker-compose run --rm freqtrade hyperopt --config user_data/config.json --hyperopt-loss SharpeHyperOptLossDaily --strategy HyperIndexStrategy -e 500
      文章圖片8

      參數(shù)調(diào)優(yōu)結(jié)果

      從截圖中可以看到,500 epoch運行完成后,best結(jié)果是在第141個epoch中得到,最大收益率1.6%,最大回撤2.02%。給出最優(yōu)參數(shù)(買入、賣出、ROI、止損)組合如下:

      文章圖片9

      (吐槽:參數(shù)調(diào)優(yōu)太消耗CPU了,小機器調(diào)2次,2個晚上就沒了,傷不起。。。。。)

      下一節(jié)準備部署介紹一下如何將策略部署實盤。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多