比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > ICP > Info

回報率850%? 這個用Python優化的比特幣交易機器人太燒腦_加密貨幣

Author:

Time:1900/1/1 0:00:00

上個月,AI工程師AdamKing結合人工智能在預測方面得天獨厚的優勢,提出使用深度強化學習構建加密貨幣自動交易的程序。在展示模型中,程序的收益率竟達到了驚人的60倍。

但在當時,這個展示模型略顯粗糙。雖然能獲得收益,但它并不穩定。使用它可能讓你賺得盆滿缽盈,也有可能讓你賠得一無所有,頗有些“富貴險中求”的意味。

不穩定的問題一直困擾著Adam小哥,經過一個月的蟄伏,小哥提出將特征工程和貝葉斯優化兩大殺器引入模型。這些改進會奏效么?收益率又能提升多少呢?一起來看看Adam小哥的最新力作吧!

在上一篇文章中,我們使用深度強化學習創建了一個可以賺錢的比特幣自動交易智能體。雖然這個智能體能夠做到自動交易比特幣獲得收益,但它的收益率并沒有讓人眼前一亮,今天我們會大幅度改進這個比特幣交易智能體,從而提高它的收益率。

需要注意的是,本篇文章的目的是測試當下最先進的深度強化學習技術是否能與區塊鏈相結合,創造出一個可以盈利的比特幣自動交易智能體。目前看來業界都還沒有意識到深度強化學習在自動交易方面強大的潛力,反而認為它并不是一個“能用來構建交易算法的工具”。不過,深度學習領域的最新進展已經表明,在同一個問題上強化學習智能體通常能夠比普通的監督學習智能體學習到更多的特征。

出于這個原因,我做了相關的實驗來探究基于深度強化學習的交易智能體究竟能達到怎樣的收益率,當然了,結果也可能會是深度強化學習有著很強的局限性以至于并不適合做交易智能體,但不去嘗試誰又知道結果如何呢?

首先,我們將會改進深度強化學習模型的策略網絡并使輸入數據變得平穩,以便交易智能體能在很少的數據中學習到更多的特征。

接下來,我們將使用當下先進的特征工程方法來改善交易智能體的觀察空間,同時微調交易智能體的獎勵函數以幫助它發現更好的交易策略。

最后,在訓練并測試交易智能體獲得的收益率之前,我們將使用貝葉斯優化的方法來尋找能最大化收益率的超參數。

前方高能,系好安全帶,讓我們開始這場干貨滿滿的探索之旅吧。

關于深度強化學習模型的改進

在上一篇文章中,我們已經實現了深度強化學習模型的基本功能,

GitHub地址:

https://github.com/notadamking/Bitcoin-Trader-RL

當務之急是提高深度強化學習智能體的盈利能力,換句話說就是要對模型進行一些改進。

循環神經網絡

我們需要做的第一個改進就是使用循環神經網絡來改進策略網絡,也就是說,使用長短期記憶網絡網絡代替之前使用的多層感知機網絡。由于循環神經網絡隨著時間的推移可以一直保持內部狀態,因此我們不再需要滑動“回顧窗口“來捕捉價格變動之前的行為,循環神經網絡的循環本質可以在運行時自動捕捉這些行為。在每個時間步長中,輸入數據集中的新一個數據與上一個時間步長的輸出會被一起輸入到循環神經網絡中。

因而長短期記憶網絡可以一直維持一個內部狀態。在每個時間步長中,智能體會新記住一些新的數據關系,也會忘掉一些之前的數據關系,這個內部狀態也就會隨之更新。

循環神經網絡會接收上一個時間步長的輸出

循環神經網絡如何處理上一個時間步長的輸出與這一個時間步長的輸入

微星官方使用游戲筆記本進行為期一個月的挖礦實驗,以評估投資回報率:近日,微星官方發布博客《微星游戲筆記本電腦的挖礦實驗》。微星表示,人們渴望有一臺高效的挖礦設備,GPU芯片廠商供不應求,無法滿足消費市場的需求,使得礦工使用游戲筆記本來進行挖礦,特別是配有最新的NVIDIA GeForce RTX 30系列顯卡的筆記本。微星將使用MSI GE76 Raider游戲筆記本電腦進行為期一個月的挖礦實驗,以了解在此期間產生的BTC數量。該筆記本配備RTX 3080圖形處理器和獨家散熱設計。

微星將評估投資回報率(ROI),投資回報率根據購買價格/每日凈利潤得出的。例如,如果系統(或GPU)的購買價格為300美元,而日收入為2美元(已計入電費),則意味著ROI為150天。盡管就微星該實驗而言,游戲筆記本電腦的成本要比純挖礦設備貴很多。

該實驗將進行一個月,查看使用游戲筆記本電腦進行挖礦是否有利可圖,微星將更新后續結果博客。

據悉,微星是全球前三大主板廠商和顯卡生產商之一。[2021/3/10 18:33:32]

長短期記憶網絡實現代碼LSTM_model.py

介于循環神經網絡對于內部狀態得天獨厚的優勢,在這里,我們使用長短期記憶網絡策略更新了近端策略優化PPO2模型。

數據平穩性

在上一篇文章中我曾指出比特幣交易的數據是非平穩的,因此,任何機器學習模型都難以預測未來。

平穩時間序列是平均值,方差和自相關系數都恒定的時間序列。

而且,加密貨幣價格的時間序列有著很明顯的趨勢和季節效應,這兩者都會影響算法對時間序列預測的準確率,所以在這里,我們需要使用差分和變換的方法來處理輸入數據,從現有的時間序列中構建一個正常的數據分布來解決這個問題。

從原理上來說,差分過程就是給任意兩個時間步長內加密貨幣幣價的導數做差值。在理想情況下,這樣做可以消除輸入時間序列中存在的趨勢,但是,差分處理對季節效應并不奏效,處理后的數據仍然具有很強的季節效應。這就需要我們在差分處理之前進行對數處理來消除它,經過這樣的處理最終我們會得到平穩的輸入時間序列,如下方右圖所示。

從左到右分別為:

加密貨幣的收盤價,差分處理后的收盤價,對數處理和差分處理后的收盤價

對數處理和差分處理的代碼diff_and_log_time_series.py

處理后的輸入時間序列平穩性如何,我們可以使用增廣迪基-福勒檢驗驗證一下。

運行以下代碼:

增廣迪基-福勒檢驗的代碼adfuller_test.py

我們得到的p值為0.00,這意味著我們拒絕假設檢驗中的零假設并確認處理后的輸入時間序列是平穩的。

我們可以運行上面的增廣迪基-福勒檢驗代碼來檢驗輸入時間序列的平穩性。

在完成了這項工作之后,接下來我們將使用特征工程的方法進一步優化交易智能體的觀察空間。

特征工程

為了進一步提升交易智能體的收益率,我們需要做一些特征工程。

特征工程是使用該領域知識來生成額外的輸入數據從而優化機器學習模型的過程。

具體到交易智能體,我們將在輸入數據集中添加一些常見且有效的技術指標,以及Python數據分析程序庫StatsModels中季節效應預測模型SARIMAX的輸出。這些技術指標會為我們的輸入數據集帶來一些相關的,但可能會滯后的信息,這些信息能大大提升交易智能體預測的準確性。這些優化方法的組合可以為交易智能體提供一個非常好的觀察空間,讓智能體學習到更多的特征,從而獲得更多的收益。

分析師:比特幣自2011年以來的投資回報率達6271233%:Compound Capital Advisors的分析師Charlie Bilello提供的數據顯示,如果有人在2011年投資比特幣,他們將看到超過6271233%的回報率。相比之下,納斯達克指數作為第二大資產類別的回報率僅為512%,而黃金的回報率僅為24.3%。今年的避險資產表現尤其強勁,尤其是比特幣。從3月份的低點來看,比特幣已經上漲了440%,自今年年初以來目前的漲幅超過160%。(Coin Insider)[2020/12/18 15:40:32]

技術分析

為了選擇技術指標,我們將比較Python技術分析庫ta中可用的所有32個指標的相關性。可以使用數據分析工具pandas來計算相同類型的各個指標之間的相關性,然后在每種類型中僅選擇最不相關的指標作為特征。這樣,就可以在不給觀察空間帶來過多噪音干擾的情況下,最大程度地發掘這些技術指標的價值。

使用Python高級可視化庫seaborn做出的比特幣數據集上技術指標相關性的熱力圖

結果顯示,波動率指標以及一些動量指標都是高度相關的。在刪除所有重復的特征之后,我們將剩余的38個技術特征添加到交易智能體的觀察空間中。

在代碼中,我們需要創建一個名為add_indicators的函數來將這些特征添加到數據幀中,為了避免在每個時間步長中重復計算這些特征,我們只在交易智能體環境初始化的過程中調用add_indicators函數。

交易智能體環境初始化的代碼initialize_env.py

在這里,初始化交易智能體環境,在進行數據平穩性處理之前將特征添加到了數據幀中。

統計分析

接下來我們需要添加預測模型。

由于季節效應自回歸移動平均模型可以在每個時間步長中快速計算價格的預測值,在平穩數據集中運算非常準確,因此我們使用它來進行加密貨幣幣價預測。

除了上述這些優點之外,該模型實現起來非常簡單,它還可以給出預測值的置信區間,通常情況下這比單獨給出一個預測值能提供更多的信息。就比如說,當置信區間較小時,交易智能體就會更相信這個預測值的準確性,當置信區間很大時交易智能體就知道要承擔更大的風險。

加入SARIMA預測模型的代碼add_sarimax_predictions.py

這里我們將SARIMAX預測模型和置信區間添加到交易智能體的觀察空間中。

現在我們已經使用性能更好的循環神經網絡更新了策略,并使用特征工程的方法改進了交易智能體的觀察空間,是時候優化其他的部分了。

獎勵優化

有些人可能會覺得上一篇文章中的獎勵函數已經是最好的解決方案了,但是,通過進一步的研究我發現獎勵函數還有提升的空間。雖然我們之前使用的簡單獎勵函數已經能夠獲得收益,但它給出的投資策略非常不穩定,往往會導致資產的嚴重損失。為了改善這一點,除了考慮利潤的增加以外,我們還需要考慮其他獎勵的指標。

獎勵指標的一個簡單改進就是,不僅僅獎勵在比特幣價格上漲時持有比特幣帶來的利潤,還獎勵在比特幣價格下跌時拋售比特幣而避免的損失。就比如說,我們可以獎勵智能體買入比特幣而總資產增加的行為,以及賣出比特幣避免總資產減少的行為。

以太坊CMBI指數表現高于比特幣 累計回報率約14.5%:Coinmetrics最新報告顯示,近期以太坊CMBI指數的表現最為強勁,較比特幣CMBI指數高出近10%。以太坊累計回報率約為14.5%,而比特幣的累計回報率為4.9%(3月12日以來)。自3月12日加密市場崩盤以來,以太坊一直緊緊跟隨比特幣的價格走勢。不過,自從走勢稍穩后,以太坊已稍稍脫離比特幣走勢,有時獨立于比特幣之外。(AMBCrypto)[2020/4/15]

雖然這種獎勵指標在提高收益率方面非常出色,但這樣做并沒有考慮到高回報帶來的高風險。投資者早已發現這種簡單投資策略背后存在的漏洞,并將其改進成一種風險可調節的獎勵指標。

基于波動率的獎勵指標

這種風險可調節的獎勵指標中的典型就是夏普比率。它計算的是特定時間段內投資組合的超額收益與波動性的比率。具體的計算公式如下:

夏普比率的計算公式:/投資組合的標準差

從公式中我們可以得出,為了保持較高的夏普比率,投資組合必須同時保證高收益和低波動性。

作為一種獎勵指標,夏普比率經受住了時間的考驗,但它對于自動交易智能體來說并不是很完美,因為它會對上行標準差產生不利影響,而在比特幣交易環境中有時我們需要利用上行標準差,因為上行標準差通常都是很好的機會窗口。

而使用索提諾比率可以很好地解決這個問題。索提諾比率與夏普比率非常相似,只是它在風險上只考慮了下行標準差,而不是整體標準差。因此,索提諾比率并不會對上行標準差產生什么不利影響。因而我們給交易智能體的第一條獎勵指標就選擇索提諾比率,它的計算公式如下:

索提諾比率的計算公式:/投資組合的下行標準差

其他獎勵指標

我們選擇Calmar比率作為交易智能體的第二個獎勵指標。到目前為止,我們所有的獎勵指標都沒有考慮到比特幣幣價最大回撤率這個關鍵因素。

最大回撤率是指比特幣幣價從價格頂峰到價格低谷之間的價值差,用來描述買入比特幣后最糟糕的情況。

最大回撤率對我們的投資策略來說是致命的,因為只需一次幣價突然跳水,我們長時間累積的高收益就會化為烏有。

最大回撤率

為了消除最大回撤率帶來的負面影響,我們需要選用可以處理這種情況的獎勵指標,就比如說選用Calmar比率。該比率與夏普比率類似,只是它將分母上投資組合的標準差替換為最大回撤率。

Calmar比率的計算公式:/最大回撤率

我們最后一個獎勵指標是在對沖基金行業中廣泛使用的Omega比率。從理論上來說,在衡量風險與收益時,Omega比率應該優于Sortino比率和Calmar比率,因為它能夠在單個指標中使用收益的分布來評估風險。

計算Omega比率時,我們需要分別計算在特定基準之上或之下投資組合的概率分布,然后兩者相除計算比率。Omega比率越高,比特幣上漲潛力超過下跌潛力的概率就越高。

Omege比率的計算公式

Omega比率的計算公式看起來很復雜,不過不要擔心,在代碼中實現它并不難。

代碼實現

雖然說編寫每個獎勵指標的代碼聽起來很有意思且很有挑戰性,但這里為了方便大家的理解,我選擇使用Python量化金融程序包empyrical來計算它們。幸運的是,這個程序包中恰好包含了我們上面定義的三個獎勵指標,因而在每個時間步長中,我們只需要將該時間段內收益和大盤收益的列表發給Empyrical函數,它就會返回這三個比率。

動態 | 2019年比特幣投資年回報率高于標準普爾500指數和黃金:據AMBCrypto消息,加密貨幣交易商SFOX一份報告顯示,截至2019年年底,比特幣的投資者回報率為93.8%,其年回報率高于標準普爾500指數和黃金。報告指出,BTC被證明與標普500指數和黃金基本不相關,過去六個月其30日平均相關值分別為0.037和0.149。但該報告稱:“值得注意的是,這只是一個很小的數據集,目前BTC期權的隱含波動率已經達到了70%左右,因此這些數據是否會隨著新年趨勢持續下去還不清楚。” 再加上波動性,比特幣計算的2019年每單位資產波動性的平均回報率為1.74,而標準普爾500指數為2.54。因此,當這些資產的回報率根據風險水平進行調整時,標準普爾500指數在2019年的表現優于比特幣。不過,該報告稱,盡管比特幣和其他加密貨幣在年中遭遇了波動,但它們在年底時的30天歷史波動水平相對較低。[2020/1/8]

使用empyrical程序包計算三個獎勵指標的代碼risk_adjusted_reward.py

在代碼中,我們通過預先定義的獎勵函數設置了每個時間步長的獎勵。

到目前為止,我們已經確定了如何衡量一個交易策略的成功與否,現在是時候弄清楚哪些指標會帶來較高的收益。我們需要將這些獎勵函數輸入到自動超參數優化軟件框架Optuna中,然后使用貝葉斯優化來的方法為輸入數據集尋找最優的超參數。

工具集

俗話說,好馬配好鞍。任何一個優秀的技術人員都需要一套好用的工具,否則就會巧婦難為無米之炊。

但我并不是說我們要重復造輪子,我們應該學會使用程序員前輩用禿頭的代價為我們開發的工具,這樣他們的工作也算沒有白費。對于我們所開發的交易智能體,它要用到的最重要的工具就是自動超參數優化軟件框架Optuna,從原理上來說,它使用了樹結構的Parzen窗估計來實現貝葉斯優化,而這種估計方法是可以并行化運行的,這使得我們的顯卡有了用武之地,執行搜索需要的時間也會大大縮短。簡而言之,

貝葉斯優化是一種搜索超參數空間以找到能最大化給定目標函數的超參數的高效解決方案。

也就是說,貝葉斯優化能夠有效地改進任何黑箱模型。從工作原理上來說,貝葉斯優化通過使用替代函數或是替代函數的分布對要優化的目標函數進行建模。隨著時間的推移,算法不斷地檢索超參數空間以找到那些能夠最大化目標函數的超參數,分布的效果也會逐漸改善。

理論說了這么多,我們要如何把這些技術應用在比特幣自動交易智能體中呢?從本質上來講,我們可以使用這種技術來找到一組最優的超參數,使得智能體的收益率最高。這個過程就像是在超參數的汪洋大海中撈取一根效果最好的針,而貝葉斯優化就是帶我們找到這根針的磁鐵。讓我們開始吧。

使用Optuna優化超參數并不是什么難事。

首先,我們需要創建一個optuna實例,也就是裝載所有超參數試驗的容器。在每次試驗中我們需要調整超參數的設置來計算目標函數相應的損失函數值。在實例初始化完成后,我們需要向其中傳入目標函數然后調用study.optimize()函數開始優化,Optuna將使用貝葉斯優化的方法來尋找能夠最小化損失函數的超參數配置。

使用Optuna程序庫貝葉斯優化的代碼optimize_with_optuna.py

在這個例子中,目標函數就是在比特幣交易環境中訓練并測試智能體,而目標函數的損失值則定義為測試期間智能體平均收益的相反數,之所以給收益值加上負號,是因為平均收益越高越好,而在Optuna看來損失函數越低越好,一個負號剛好解決這個問題。optimize優化函數為目標函數提供了試驗對象,代碼中我們可以指定試驗對象中的變量設置。

分析 | 加密貨幣項目在推出主網后的回報率基本上為負:加密貨幣項目往往把啟動主網作為一個重要的里程碑。但在交易方面,主網上線前的幾天或幾周通常會推高價格,隨后則會迎來價格暴跌。一份博客分析顯示:“加密貨幣項目在推出主網后的回報率基本上為負。在跟蹤的14個項目中,有10個項目的7天回報率為負,平均回報率為-7.5%,與BTC基準相比則為-8.9%。” 這一發現或支持了一種理論,即由發布事件引起的炒作很快就會消散。再加上山寨幣的高風險和波動性,這可能會加劇損失。在主網推出時,山寨幣的流動性也會下降。(cryptovest)[2019/8/13]

優化目標函數的代碼optimize_objective_fn.py

optimize_ppo2優化智能體函數和optimize_envs優化智能體環境函數接收試驗對象作為輸入并返回包含要測試參數的字典。每個變量的搜索空間由suggest函數進行設置,我們需要在試驗中調用suggest函數并給函數中傳入指定的參數。

比如說,如果設置參數在對數尺度上服從均勻分布,即調用函數

trial.suggest_loguniform,

相當于給函數了一個16-2048之間的2的指數次方的新浮點數。

再者,如果設置參數在普通尺度上服從均勻分布,即調用函數

trial.suggest_uniform,

相當于給函數一個0.1到0.4之間的新浮點數。

相信你已經看出來了其中的規律,就是這樣來設置變量:

suggest_categorical,其中categorical為設置變量的策略,option_one和option_two分別為變量的兩個選項,在剛才的函數中這兩個選項為變量的范圍,弄懂了這個相信下面的代碼就難不倒你了。

化交易智能體的代碼optimize_ppo2.py

優化交易環境的代碼optimize_envs.py

代碼寫好后,我們在一臺高性能服務器上以CPU/顯卡協同運算的方式運行了優化函數。在設置中,Optuna創建了一個SQLite數據庫,我們可以從中加載優化的實例。該實例記錄了測試過程中性能最好的一次試驗,從中我們可以推算出智能體交易環境中最優的超參數集。

加載optuna實例的代碼load_optuna_study.py

到這里,我們已經改進了模型,改進了特征集,并優化了所有的超參數。但俗話說,是騾子是馬得拉出來遛遛。

那么,交易智能體在新的獎勵指標下表現如何呢?

在訓練過程中,我分別使用了利潤、Sortino比率、Calmar比率和Omega比率四個獎勵指標來優化智能體。接下來我們需要在測試環境中檢驗哪種獎勵指標訓練出來的智能體收益最高,當然了,測試環境中的數據都是智能體在訓練過程中從未見到過的比特幣價格走勢,這樣保證了測試的公平性。

收益比較

在查看結果之前,我們需要知曉一個成功的交易策略是什么樣的。出于這個原因,我們將針對一些常見且有效的比特幣交易策略進行基準測試。令人震驚的是,在過去的十年中一個最有效的比特幣交易策略就是買入并持有,而另外兩個不錯的交易策略則是使用簡單但有效的技術分析來生成買入/賣出信號,從而指導交易。

1、買入并持有

這種交易策略指盡可能多地購買比特幣并一直持有下去。雖然說這種交易策略并不是特別復雜,但在過去這樣做賺錢的機率很高。

2、相對強弱指數分歧divergence)

當相對強弱指數持續下跌且收盤價持續上漲時,這就是需要賣出的信號,而當相對強弱指數持續上漲且收盤價持續下跌時,就是需要買入的信號。

3、簡單移動平均線交叉

當長期簡單移動平均線超過短期簡單移動平均線時,這就是需要賣出的信號,而當短期簡單移動平均線超過長期簡單移動平均線時,就是需要買入的信號。

你可能會問,為什么要做這些簡單的基準測試呢?這樣做是為了通過比較證明我們的強化學習交易智能體可以在比特幣市場上發揮作用,如果智能體的收益連這些簡單的基準收益都超不過,那么我們就相當于花費了大量的開發時間和顯卡算力來進行了一場天馬行空的科學實驗。現在,讓我們來證明事實并非如此。

實驗結果

我們的數據集選用從加密貨幣數據網站CryptoDataDownload上下載的每小時收盤價位置價值數據,其中前80%的數據用來訓練智能體,后20%作為全新的數據進行測試,以了解智能體的收益能力。當前這種簡單的交叉驗證形式足以滿足我們的需求,而如果這個比特幣自動交易智能體真的走向生產就緒,我們就可以使用全部的數據集進行訓練,然后在每天新產生的數據集上進行測試。

廢話不多說,我們來看看結果。

可以看到,使用Omega比率作為獎勵指標的智能體在測試階段并沒有讓人眼前一亮的交易。

使用Omega比率作為獎勵指標的智能體在超過3500小時的交易時間里資產的總價值

分析智能體所進行的交易我們可以發現,很明顯Omega比率這種獎勵指標產生了過度交易的交易策略,以至于智能體未能抓住市場機會獲得收益。

使用Calmar比率作為獎勵指標的智能體與使用Omega比率作為獎勵指標的智能體相比略有改進,但最終結果非常相似。看起來像是我們投入了大量的時間和精力,只是為了讓事情變得更糟......

使用Calmar比率作為獎勵指標的智能體在超過3500小時的交易時間里資產的總價值

如果僅使用利潤作為獎勵指標效果如何呢?在上一篇文章中這種獎勵指標被證明有點失敗,這次做的所有修改和優化能否化腐朽為神奇呢?

在為期四個月的測試周期內,使用利潤作為獎勵指標的智能體平均收益達到賬戶初始金額的350%。你可能已經被這個結果嚇呆了。這應該就是強化學習能達到的巔峰了吧,對吧?

使用利潤作為獎勵指標的智能體在超過3500小時的交易時間里資產的總價值

并不是這樣的。使用Sortino比率作為獎勵指標的智能體平均收益達到了賬戶初始金額的850%。當我看到這個數字時,我都不敢相信自己的眼睛,以至于我立馬回去檢查代碼中是否存在問題。但經過徹底的檢查后,很明顯代碼中沒有任何錯誤,也就是說這些智能體已經知道如何進行比特幣交易。

使用Sortino比率作為獎勵指標的智能體在超過3500小時的交易時間里資產的總價值

看起來使用Sortino比率作為獎勵指標的智能體學習到了在最小化持有比特幣風險的前提下低價買入和高價賣出的重要性,同時它們還躲過了過度交易和投資不足兩大陷阱。雖然說智能體學到的具體交易策略我們不得而知,但是我們可以清楚地看到智能體已經學會通過交易比特幣獲得收益了。

如果你不信,請看下圖。

使用Sortino比率作為獎勵指標的智能體正在交易比特幣,

其中綠色的三角形表示買入信號,紅色的三角形表示賣出信號。

現在,我并沒有被實驗成功的興奮沖昏頭腦。我清楚地知道比特幣自動交易智能體還遠遠沒有達到生產就緒。話雖如此,但這些結果比我迄今為止看到的任何交易策略都要令人印象深刻。而且令人震驚的是,我們并沒有告訴智能體關于加密貨幣市場如何運作、如何在加密貨幣市場上賺錢這樣的先驗知識,而是僅靠智能體重復地試驗和試錯就達到了這么好的效果,不過,這里經過了很多很多次的試驗和試錯。

寫在最后

在本篇文章中,我們優化了基于強化學習的比特幣自動交易智能體,讓它在交易比特幣時做出更好的決策,從而獲得更多的收益!在這個過程中我們花費了大量的時間和精力,也遇到了很多的困難,我們把困難分解細化再逐個攻破,最終完成了智能體的優化,其中具體的操作步驟如下:

使用循環神經網絡升級現有模型,即升級成使用平穩性數據的長短期記憶網絡;

使用領域知識和統計分析進行特征工程,為智能體提供了40多個用來學習的新特征;

將投資的風險引入智能體的獎勵指標,而不只是關注利潤;

使用貝葉斯優化來尋找模型中最優的超參數;

使用常見的交易策略進行基準測試,以確保智能體的收益可以跑贏市場。

從理論上來說,這個高收益的交易智能體已經做得很不錯了。

但是,我收到了相當多的反饋,他們聲稱交易智能體只是在學習擬合曲線,因此,面對生產環境中的實時數據,交易智能體永遠不可能獲得收益。雖然我們在不同數據集上訓練/測試智能體的方法應該能夠解決這個問題,但是模型確實會有過度擬合數據集的可能,并且可能不會很好地推廣到實時數據。話雖這么說,但在我看來這些交易智能體學習到的遠遠不只是簡單的曲線擬合,因此,我認為它們能夠在實時交易的場景中獲得收益。

為了檢驗這個想法,接下來的一段時間里我會把這些基于強化學習的智能體帶到生產環節,為此,我們首先要更新智能體的運行環境以支持以太幣、萊特幣等其他加密貨幣,然后我們將升級智能體讓它可以在加密貨幣交易所CoinbasePro上實時交易。

這將會是一個激動人心的實驗,請不要錯過它。

需要強調的是,本篇文章中所有的方法和投資策略都是出于教育目的,不應被視為投資建議。我們的比特幣自動交易智能體也遠遠沒有達到實際生產層面,所以請管好自己的錢包。

參考資源:

1)基于Python語言和Tensorflow框架的循環神經網絡和長短期記憶網絡教程

https://adventuresinmachinelearning.com/recurrent-neural-networks-lstm-tutorial-tensorflow/

2)淺析基于Python語言的季節效應自回歸移動平均模型預測時間序列

https://machinelearningmastery.com/sarima-for-time-series-forecasting-in-python/

3)淺析基于Python語言的非平穩性時間序列處理

https://www.analyticsvidhya.com/blog/2018/09/non-stationary-time-series-python/

4)超參數優化算法

https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf

5)機器學習方法在金融領域中的最新進展

https://dwz.cn/iUahVt2u

V神來北京啦!6月29-30日,2019第二屆以太坊技術及應用大會將在北京重磅開啟,屆時V神將攜以太坊核心團隊與國內外區塊鏈大咖帶來眾多以太坊開發干貨,包括:

以太坊2.0進展及未來動向

信標鏈、鏈下、Casper、Plasma新動態及核心原理

安全、零知識證明、De-Fi、擴容、PoS算法等熱門話題

合約開發、Dapp開發、區塊鏈游戲開發與設計、數據存儲等技術實踐

開發工具與技術選型

國內區塊鏈的發展與以太坊的新機遇

由于干貨過于密集,小伙伴們要做好燒腦的心理準備哦!掃描下圖二維碼立享優惠,名額有限,先到先得!

大會第二天,「以太坊開發訓練營」也如期開幕,在前一天眾多嘉賓演講的洗禮之后,再和技術大牛一起coding!是不是更爽?具體詳情如下:

以太坊大會福利社現已全面開放!掃碼入群即可搶先獲得大會一手信息和優惠福利!相關疑問也可入群交流咨詢,務必備注“公司職位姓名”,否則不予通過!!!

推薦閱讀:

"偽努力"正在毀掉80%的當代區塊鏈開發者……

豪華嘉賓陣容曝光!6月底V神來的那個大會,還有優惠票嗎?

“算法穩定幣”是一個偽命題!

“篡改”視頻腳本,讓特朗普輕松“變臉”?AIDeepfake再升級

純粹,極致!他用兩個詞闡釋了UCloud|人物志

阿里騰訊進擊韓國互聯網

無良老板拖欠程序員工資,一怒開源沖上GitHubTOP1

Chrome成為互聯網看門人?!

Tags:比特幣OPT加密貨幣TIM比特幣是什么樣子的圖片OPTCM幣加密貨幣最新消息與新聞Antimony coin

ICP
彭博社:200多個國家出手,加密貨幣交易所迎來最大“生死考驗”_比特幣

比特幣和其他加密貨幣的受歡迎程度呈現出飆升之勢,部分原因是它們提供了一種規避政府對傳統金融體系監管的方式。然而,現在請準備好和大部分自主權吻別吧.

1900/1/1 0:00:00
BTC、ETH、EOS、LTC的關鍵時間節點:提前埋伏必賺錢_比特幣

文|內參君 數字貨幣的漲漲跌跌,讓人看不明白。但我們不得不承認當前數字貨幣市場還是“事件市”,每一次重大的事件和技術革新都可以刺激數字貨幣大漲或大跌.

1900/1/1 0:00:00
LEO 與 BNB 對比分析,誰更具有價值?_FIN

原文標題:《LEOandBNB:acomparison》原文作者:TheBlock 翻譯:0×33 LEO是加密貨幣交易所Bitfinex的母公司iFinex推出的一種交易所代幣.

1900/1/1 0:00:00
HT五浪模型之FastTrack極簡分析_TRA

作者:加密馬丁 一年前的今天,HT一路高歌沖到歷史性的高點,但是隨著比特幣大盤的回撤,HT開啟了長達6個月的熊市.

1900/1/1 0:00:00
閃電網絡重磅升級:“瞭望塔”大幅提升用戶體驗_OKU

閃電網絡的“瞭望塔”——人們期待已久的保護閃電網絡安全的下一步升級——即將到來。長期以來,瞭望塔一直被認為是比特幣閃電網絡層中缺失的一部分,因為這一部分對于打擊這個實驗性的、鏈下二層網絡上的欺詐.

1900/1/1 0:00:00
BTC變盤在即,HT強勢依舊_USDT

市場情緒:恐懼&貪婪指數61點(貪婪)6月11日BTC/USDT沖高回落,日線收中陰線,就線路來看,日線沖擊箱體上沿遇阻回落,依舊在箱體內震蕩,日K線平盤整理第七個交易日,短期均線粘合.

1900/1/1 0:00:00
ads