精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Python優(yōu)化比特幣交易機(jī)器人

WpOh_rgznai100 ? 來(lái)源:未知 ? 2019-06-16 10:53 ? 次閱讀

上個(gè)月,AI 工程師 Adam King 結(jié)合人工智能在預(yù)測(cè)方面得天獨(dú)厚的優(yōu)勢(shì),提出使用深度強(qiáng)化學(xué)習(xí)構(gòu)建加密貨幣自動(dòng)交易的程序。在展示模型中,程序的收益率竟達(dá)到了驚人的 60 倍(只討論技術(shù),無(wú)關(guān)投資建議)。

但在當(dāng)時(shí),這個(gè)展示模型略顯粗糙。雖然能獲得收益,但它并不穩(wěn)定。使用它可能讓你賺得盆滿缽盈,也有可能讓你賠得一無(wú)所有,頗有些“富貴險(xiǎn)中求”的意味。

不穩(wěn)定的問(wèn)題一直困擾著 Adam 小哥,經(jīng)過(guò)一個(gè)月的蟄伏,小哥提出將特征工程和貝葉斯優(yōu)化兩大殺器引入模型。這些改進(jìn)會(huì)奏效么?收益率又能提升多少呢?一起來(lái)看看Adam 小哥的最新力作吧!

在上一篇文章中,我們使用深度強(qiáng)化學(xué)習(xí)創(chuàng)建了一個(gè)可以賺錢(qián)的比特幣自動(dòng)交易智能體。雖然這個(gè)智能體能夠做到自動(dòng)交易比特幣獲得收益,但它的收益率并沒(méi)有讓人眼前一亮,今天我們會(huì)大幅度改進(jìn)這個(gè)比特幣交易智能體,從而提高它的收益率。

需要注意的是,本篇文章的目的是測(cè)試當(dāng)下最先進(jìn)的深度強(qiáng)化學(xué)習(xí)技術(shù)是否能與區(qū)塊鏈相結(jié)合,創(chuàng)造出一個(gè)可以盈利的比特幣自動(dòng)交易智能體。目前看來(lái)業(yè)界都還沒(méi)有意識(shí)到深度強(qiáng)化學(xué)習(xí)在自動(dòng)交易方面強(qiáng)大的潛力,反而認(rèn)為它并不是一個(gè)“能用來(lái)構(gòu)建交易算法的工具”。不過(guò),深度學(xué)習(xí)領(lǐng)域的最新進(jìn)展已經(jīng)表明,在同一個(gè)問(wèn)題上強(qiáng)化學(xué)習(xí)智能體通常能夠比普通的監(jiān)督學(xué)習(xí)智能體學(xué)習(xí)到更多的特征。

出于這個(gè)原因,我做了相關(guān)的實(shí)驗(yàn)來(lái)探究基于深度強(qiáng)化學(xué)習(xí)的交易智能體究竟能達(dá)到怎樣的收益率,當(dāng)然了,結(jié)果也可能會(huì)是深度強(qiáng)化學(xué)習(xí)有著很強(qiáng)的局限性以至于并不適合做交易智能體,但不去嘗試誰(shuí)又知道結(jié)果如何呢?

首先,我們將會(huì)改進(jìn)深度強(qiáng)化學(xué)習(xí)模型的策略網(wǎng)絡(luò)( policy network )并使輸入數(shù)據(jù)變得平穩(wěn),以便交易智能體能在很少的數(shù)據(jù)中學(xué)習(xí)到更多的特征。

接下來(lái),我們將使用當(dāng)下先進(jìn)的特征工程方法來(lái)改善交易智能體的觀察空間,同時(shí)微調(diào)交易智能體的獎(jiǎng)勵(lì)函數(shù)( reward function )以幫助它發(fā)現(xiàn)更好的交易策略。

最后,在訓(xùn)練并測(cè)試交易智能體獲得的收益率之前,我們將使用貝葉斯優(yōu)化的方法來(lái)尋找能最大化收益率的超參數(shù)。

前方高能,系好安全帶,讓我們開(kāi)始這場(chǎng)干貨滿滿的探索之旅吧。

關(guān)于深度強(qiáng)化學(xué)習(xí)模型的改進(jìn)

在上一篇文章中,我們已經(jīng)實(shí)現(xiàn)了深度強(qiáng)化學(xué)習(xí)模型的基本功能,

GitHub 地址:

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

當(dāng)務(wù)之急是提高深度強(qiáng)化學(xué)習(xí)智能體的盈利能力,換句話說(shuō)就是要對(duì)模型進(jìn)行一些改進(jìn)。

循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)

我們需要做的第一個(gè)改進(jìn)就是使用循環(huán)神經(jīng)網(wǎng)絡(luò)來(lái)改進(jìn)策略網(wǎng)絡(luò),也就是說(shuō),使用長(zhǎng)短期記憶網(wǎng)絡(luò)( Long Short-Term Memory ,LSTM )網(wǎng)絡(luò)代替之前使用的多層感知機(jī)( Multi-Layer Perceptron,MLP )網(wǎng)絡(luò)。由于循環(huán)神經(jīng)網(wǎng)絡(luò)隨著時(shí)間的推移可以一直保持內(nèi)部狀態(tài),因此我們不再需要滑動(dòng)“回顧窗口“來(lái)捕捉價(jià)格變動(dòng)之前的行為,循環(huán)神經(jīng)網(wǎng)絡(luò)的循環(huán)本質(zhì)可以在運(yùn)行時(shí)自動(dòng)捕捉這些行為。在每個(gè)時(shí)間步長(zhǎng)中,輸入數(shù)據(jù)集中的新一個(gè)數(shù)據(jù)與上一個(gè)時(shí)間步長(zhǎng)的輸出會(huì)被一起輸入到循環(huán)神經(jīng)網(wǎng)絡(luò)中。

因而長(zhǎng)短期記憶網(wǎng)絡(luò)可以一直維持一個(gè)內(nèi)部狀態(tài)。在每個(gè)時(shí)間步長(zhǎng)中,智能體會(huì)新記住一些新的數(shù)據(jù)關(guān)系,也會(huì)忘掉一些之前的數(shù)據(jù)關(guān)系,這個(gè)內(nèi)部狀態(tài)也就會(huì)隨之更新。

循環(huán)神經(jīng)網(wǎng)絡(luò)會(huì)接收上一個(gè)時(shí)間步長(zhǎng)的輸出

循環(huán)神經(jīng)網(wǎng)絡(luò)如何處理上一個(gè)時(shí)間步長(zhǎng)的輸出與這一個(gè)時(shí)間步長(zhǎng)的輸入

長(zhǎng)短期記憶網(wǎng)絡(luò)實(shí)現(xiàn)代碼 LSTM_model.py

介于循環(huán)神經(jīng)網(wǎng)絡(luò)對(duì)于內(nèi)部狀態(tài)得天獨(dú)厚的優(yōu)勢(shì),在這里,我們使用長(zhǎng)短期記憶網(wǎng)絡(luò)策略更新了近端策略?xún)?yōu)化 PPO2 模型。

數(shù)據(jù)平穩(wěn)性

在上一篇文章中我曾指出比特幣交易的數(shù)據(jù)是非平穩(wěn)的(Non-Stationary,即存在一些趨勢(shì),而不能僅僅看作是隨機(jī)的波動(dòng)),因此,任何機(jī)器學(xué)習(xí)模型都難以預(yù)測(cè)未來(lái)。

平穩(wěn)時(shí)間序列是平均值,方差和自相關(guān)系數(shù)(與其自身的滯后相關(guān))都恒定的時(shí)間序列。

而且,加密貨幣價(jià)格的時(shí)間序列有著很明顯的趨勢(shì)和季節(jié)效應(yīng)(季節(jié)效應(yīng)是指與季節(jié)相關(guān)聯(lián)的股市非正常收益,是股市中的一種“異像”,是與市場(chǎng)有效性相悖的情況),這兩者都會(huì)影響算法對(duì)時(shí)間序列預(yù)測(cè)的準(zhǔn)確率,所以在這里,我們需要使用差分和變換的方法來(lái)處理輸入數(shù)據(jù),從現(xiàn)有的時(shí)間序列中構(gòu)建一個(gè)正常的數(shù)據(jù)分布來(lái)解決這個(gè)問(wèn)題。

從原理上來(lái)說(shuō),差分過(guò)程就是給任意兩個(gè)時(shí)間步長(zhǎng)內(nèi)加密貨幣幣價(jià)的導(dǎo)數(shù)(即收益率)做差值。在理想情況下,這樣做可以消除輸入時(shí)間序列中存在的趨勢(shì),但是,差分處理對(duì)季節(jié)效應(yīng)并不奏效,處理后的數(shù)據(jù)仍然具有很強(qiáng)的季節(jié)效應(yīng)。這就需要我們?cè)诓罘痔幚碇斑M(jìn)行對(duì)數(shù)處理來(lái)消除它,經(jīng)過(guò)這樣的處理最終我們會(huì)得到平穩(wěn)的輸入時(shí)間序列,如下方右圖所示。

從左到右分別為:

加密貨幣的收盤(pán)價(jià),差分處理后的收盤(pán)價(jià),對(duì)數(shù)處理和差分處理后的收盤(pán)價(jià)

對(duì)數(shù)處理和差分處理的代碼 diff_and_log_time_series.py

處理后的輸入時(shí)間序列平穩(wěn)性如何,我們可以使用增廣迪基-福勒檢驗(yàn)( Augmented Dickey-Fuller test )驗(yàn)證一下。

運(yùn)行以下代碼:

增廣迪基-福勒檢驗(yàn)的代碼 adfuller_test.py

我們得到的 p 值為 0.00 ,這意味著我們拒絕假設(shè)檢驗(yàn)中的零假設(shè)并確認(rèn)處理后的輸入時(shí)間序列是平穩(wěn)的。

我們可以運(yùn)行上面的增廣迪基-福勒檢驗(yàn)代碼來(lái)檢驗(yàn)輸入時(shí)間序列的平穩(wěn)性。

在完成了這項(xiàng)工作之后,接下來(lái)我們將使用特征工程的方法進(jìn)一步優(yōu)化交易智能體的觀察空間。

特征工程

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

特征工程是使用該領(lǐng)域知識(shí)來(lái)生成額外的輸入數(shù)據(jù)從而優(yōu)化機(jī)器學(xué)習(xí)模型的過(guò)程。

具體到交易智能體,我們將在輸入數(shù)據(jù)集中添加一些常見(jiàn)且有效的技術(shù)指標(biāo),以及 Python 數(shù)據(jù)分析程序庫(kù) StatsModels 中季節(jié)效應(yīng)預(yù)測(cè)模型 SARIMAX 的輸出。這些技術(shù)指標(biāo)會(huì)為我們的輸入數(shù)據(jù)集帶來(lái)一些相關(guān)的,但可能會(huì)滯后的信息,這些信息能大大提升交易智能體預(yù)測(cè)的準(zhǔn)確性。這些優(yōu)化方法的組合可以為交易智能體提供一個(gè)非常好的觀察空間,讓智能體學(xué)習(xí)到更多的特征,從而獲得更多的收益。

技術(shù)分析

為了選擇技術(shù)指標(biāo),我們將比較 Python 技術(shù)分析庫(kù) ta 中可用的所有 32 個(gè)指標(biāo)( 58 個(gè)特征)的相關(guān)性。可以使用數(shù)據(jù)分析工具 pandas 來(lái)計(jì)算相同類(lèi)型的各個(gè)指標(biāo)(如動(dòng)量,體積,趨勢(shì),波動(dòng)率)之間的相關(guān)性,然后在每種類(lèi)型中僅選擇最不相關(guān)的指標(biāo)作為特征。這樣,就可以在不給觀察空間帶來(lái)過(guò)多噪音干擾的情況下,最大程度地發(fā)掘這些技術(shù)指標(biāo)的價(jià)值。

使用 Python 高級(jí)可視化庫(kù) seaborn 做出的比特幣數(shù)據(jù)集上技術(shù)指標(biāo)相關(guān)性的熱力圖

結(jié)果顯示,波動(dòng)率指標(biāo)以及一些動(dòng)量指標(biāo)都是高度相關(guān)的。在刪除所有重復(fù)的特征(每個(gè)類(lèi)型中相關(guān)性的絕對(duì)平均值大于 0.5 的特征)之后,我們將剩余的 38 個(gè)技術(shù)特征添加到交易智能體的觀察空間中。

在代碼中,我們需要?jiǎng)?chuàng)建一個(gè)名為 add_indicators(添加指標(biāo))的函數(shù)來(lái)將這些特征添加到數(shù)據(jù)幀中,為了避免在每個(gè)時(shí)間步長(zhǎng)中重復(fù)計(jì)算這些特征,我們只在交易智能體環(huán)境初始化的過(guò)程中調(diào)用 add_indicators 函數(shù)。

交易智能體環(huán)境初始化的代碼 initialize_env.py

在這里,初始化交易智能體環(huán)境,在進(jìn)行數(shù)據(jù)平穩(wěn)性處理之前將特征添加到了數(shù)據(jù)幀中。

統(tǒng)計(jì)分析

接下來(lái)我們需要添加預(yù)測(cè)模型。

由于季節(jié)效應(yīng)自回歸移動(dòng)平均模型(Seasonal Auto Regressive Integrated Moving Average,SARIMA)可以在每個(gè)時(shí)間步長(zhǎng)中快速計(jì)算價(jià)格的預(yù)測(cè)值,在平穩(wěn)數(shù)據(jù)集中運(yùn)算非常準(zhǔn)確,因此我們使用它來(lái)進(jìn)行加密貨幣幣價(jià)預(yù)測(cè)。

除了上述這些優(yōu)點(diǎn)之外,該模型實(shí)現(xiàn)起來(lái)非常簡(jiǎn)單,它還可以給出預(yù)測(cè)值的置信區(qū)間,通常情況下這比單獨(dú)給出一個(gè)預(yù)測(cè)值能提供更多的信息。就比如說(shuō),當(dāng)置信區(qū)間較小時(shí),交易智能體就會(huì)更相信這個(gè)預(yù)測(cè)值的準(zhǔn)確性,當(dāng)置信區(qū)間很大時(shí)交易智能體就知道要承擔(dān)更大的風(fēng)險(xiǎn)。

加入 SARIMA 預(yù)測(cè)模型的代碼 add_sarimax_predictions.py

這里我們將 SARIMAX 預(yù)測(cè)模型和置信區(qū)間添加到交易智能體的觀察空間中。

現(xiàn)在我們已經(jīng)使用性能更好的循環(huán)神經(jīng)網(wǎng)絡(luò)更新了策略,并使用特征工程的方法改進(jìn)了交易智能體的觀察空間,是時(shí)候優(yōu)化其他的部分了。

獎(jiǎng)勵(lì)優(yōu)化

有些人可能會(huì)覺(jué)得上一篇文章中的獎(jiǎng)勵(lì)函數(shù)(即獎(jiǎng)勵(lì)資產(chǎn)總價(jià)值不斷增加)已經(jīng)是最好的解決方案了,但是,通過(guò)進(jìn)一步的研究我發(fā)現(xiàn)獎(jiǎng)勵(lì)函數(shù)還有提升的空間。雖然我們之前使用的簡(jiǎn)單獎(jiǎng)勵(lì)函數(shù)已經(jīng)能夠獲得收益,但它給出的投資策略非常不穩(wěn)定,往往會(huì)導(dǎo)致資產(chǎn)的嚴(yán)重?fù)p失。為了改善這一點(diǎn),除了考慮利潤(rùn)的增加以外,我們還需要考慮其他獎(jiǎng)勵(lì)的指標(biāo)。

獎(jiǎng)勵(lì)指標(biāo)的一個(gè)簡(jiǎn)單改進(jìn)就是,不僅僅獎(jiǎng)勵(lì)在比特幣價(jià)格上漲時(shí)持有比特幣帶來(lái)的利潤(rùn),還獎(jiǎng)勵(lì)在比特幣價(jià)格下跌時(shí)拋售比特幣而避免的損失。就比如說(shuō),我們可以獎(jiǎng)勵(lì)智能體買(mǎi)入比特幣而總資產(chǎn)增加的行為,以及賣(mài)出比特幣避免總資產(chǎn)減少的行為。

雖然這種獎(jiǎng)勵(lì)指標(biāo)在提高收益率方面非常出色,但這樣做并沒(méi)有考慮到高回報(bào)帶來(lái)的高風(fēng)險(xiǎn)。投資者早已發(fā)現(xiàn)這種簡(jiǎn)單投資策略背后存在的漏洞,并將其改進(jìn)成一種風(fēng)險(xiǎn)可調(diào)節(jié)的獎(jiǎng)勵(lì)指標(biāo)。

基于波動(dòng)率的獎(jiǎng)勵(lì)指標(biāo)

這種風(fēng)險(xiǎn)可調(diào)節(jié)的獎(jiǎng)勵(lì)指標(biāo)中的典型就是夏普比率(Sharpe Ratio,又被稱(chēng)為夏普指數(shù))。它計(jì)算的是特定時(shí)間段內(nèi)投資組合的超額收益與波動(dòng)性的比率。具體的計(jì)算公式如下:

夏普比率的計(jì)算公式:(投資組合的收益-大盤(pán)的收益)/投資組合的標(biāo)準(zhǔn)差

從公式中我們可以得出,為了保持較高的夏普比率,投資組合必須同時(shí)保證高收益和低波動(dòng)性(也就是風(fēng)險(xiǎn))。

作為一種獎(jiǎng)勵(lì)指標(biāo),夏普比率經(jīng)受住了時(shí)間的考驗(yàn),但它對(duì)于自動(dòng)交易智能體來(lái)說(shuō)并不是很完美,因?yàn)樗鼤?huì)對(duì)上行標(biāo)準(zhǔn)差( upside volatility )產(chǎn)生不利影響,而在比特幣交易環(huán)境中有時(shí)我們需要利用上行標(biāo)準(zhǔn)差,因?yàn)樯闲袠?biāo)準(zhǔn)差(即比特幣價(jià)格瘋狂上漲)通常都是很好的機(jī)會(huì)窗口。

而使用索提諾比率( Sortino Ratio )可以很好地解決這個(gè)問(wèn)題。索提諾比率與夏普比率非常相似,只是它在風(fēng)險(xiǎn)上只考慮了下行標(biāo)準(zhǔn)差,而不是整體標(biāo)準(zhǔn)差。因此,索提諾比率并不會(huì)對(duì)上行標(biāo)準(zhǔn)差產(chǎn)生什么不利影響。因而我們給交易智能體的第一條獎(jiǎng)勵(lì)指標(biāo)就選擇索提諾比率,它的計(jì)算公式如下:

索提諾比率的計(jì)算公式:(投資組合的收益-大盤(pán)的收益)/投資組合的下行標(biāo)準(zhǔn)差

其他獎(jiǎng)勵(lì)指標(biāo)

我們選擇 Calmar 比率作為交易智能體的第二個(gè)獎(jiǎng)勵(lì)指標(biāo)。到目前為止,我們所有的獎(jiǎng)勵(lì)指標(biāo)都沒(méi)有考慮到比特幣幣價(jià)最大回撤率(drawdown)這個(gè)關(guān)鍵因素。

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

最大回撤率對(duì)我們的投資策略來(lái)說(shuō)是致命的,因?yàn)橹恍枰淮螏艃r(jià)突然跳水,我們長(zhǎng)時(shí)間累積的高收益就會(huì)化為烏有。

最大回撤率

為了消除最大回撤率帶來(lái)的負(fù)面影響,我們需要選用可以處理這種情況的獎(jiǎng)勵(lì)指標(biāo),就比如說(shuō)選用 Calmar 比率。該比率與夏普比率類(lèi)似,只是它將分母上投資組合的標(biāo)準(zhǔn)差替換為最大回撤率。

Calmar 比率的計(jì)算公式:(投資組合的收益-大盤(pán)的收益)/最大回撤率

我們最后一個(gè)獎(jiǎng)勵(lì)指標(biāo)是在對(duì)沖基金行業(yè)中廣泛使用的 Omega 比率。從理論上來(lái)說(shuō),在衡量風(fēng)險(xiǎn)與收益時(shí),Omega 比率應(yīng)該優(yōu)于 Sortino 比率和 Calmar 比率,因?yàn)樗軌蛟趩蝹€(gè)指標(biāo)中使用收益的分布來(lái)評(píng)估風(fēng)險(xiǎn)。

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

Omege 比率的計(jì)算公式

Omega 比率的計(jì)算公式看起來(lái)很復(fù)雜,不過(guò)不要擔(dān)心,在代碼中實(shí)現(xiàn)它并不難。

代碼實(shí)現(xiàn)

雖然說(shuō)編寫(xiě)每個(gè)獎(jiǎng)勵(lì)指標(biāo)的代碼聽(tīng)起來(lái)很有意思且很有挑戰(zhàn)性,但這里為了方便大家的理解,我選擇使用Python 量化金融程序包 empyrical來(lái)計(jì)算它們。幸運(yùn)的是,這個(gè)程序包中恰好包含了我們上面定義的三個(gè)獎(jiǎng)勵(lì)指標(biāo),因而在每個(gè)時(shí)間步長(zhǎng)中,我們只需要將該時(shí)間段內(nèi)收益和大盤(pán)收益的列表發(fā)給 Empyrical 函數(shù),它就會(huì)返回這三個(gè)比率。

使用 empyrical 程序包計(jì)算三個(gè)獎(jiǎng)勵(lì)指標(biāo)的代碼 risk_adjusted_reward.py

在代碼中,我們通過(guò)預(yù)先定義的獎(jiǎng)勵(lì)函數(shù)設(shè)置了每個(gè)時(shí)間步長(zhǎng)的獎(jiǎng)勵(lì)。

到目前為止,我們已經(jīng)確定了如何衡量一個(gè)交易策略的成功與否,現(xiàn)在是時(shí)候弄清楚哪些指標(biāo)會(huì)帶來(lái)較高的收益。我們需要將這些獎(jiǎng)勵(lì)函數(shù)輸入到自動(dòng)超參數(shù)優(yōu)化軟件框架 Optuna 中,然后使用貝葉斯優(yōu)化來(lái)的方法為輸入數(shù)據(jù)集尋找最優(yōu)的超參數(shù)。

工具集

俗話說(shuō),好馬配好鞍。任何一個(gè)優(yōu)秀的技術(shù)人員都需要一套好用的工具,否則就會(huì)巧婦難為無(wú)米之炊。

但我并不是說(shuō)我們要重復(fù)造輪子,我們應(yīng)該學(xué)會(huì)使用程序員前輩用禿頭的代價(jià)為我們開(kāi)發(fā)的工具,這樣他們的工作也算沒(méi)有白費(fèi)。對(duì)于我們所開(kāi)發(fā)的交易智能體,它要用到的最重要的工具就是自動(dòng)超參數(shù)優(yōu)化軟件框架 Optuna,從原理上來(lái)說(shuō),它使用了樹(shù)結(jié)構(gòu)的 Parzen 窗估計(jì)(Tree-structured Parzen Estimators,TPEs)來(lái)實(shí)現(xiàn)貝葉斯優(yōu)化,而這種估計(jì)方法是可以并行化運(yùn)行的,這使得我們的顯卡有了用武之地,執(zhí)行搜索需要的時(shí)間也會(huì)大大縮短。簡(jiǎn)而言之,

貝葉斯優(yōu)化是一種搜索超參數(shù)空間以找到能最大化給定目標(biāo)函數(shù)的超參數(shù)的高效解決方案。

也就是說(shuō),貝葉斯優(yōu)化能夠有效地改進(jìn)任何黑箱模型。從工作原理上來(lái)說(shuō),貝葉斯優(yōu)化通過(guò)使用替代函數(shù)( surrogate functions )或是替代函數(shù)的分布對(duì)要優(yōu)化的目標(biāo)函數(shù)進(jìn)行建模。隨著時(shí)間的推移,算法不斷地檢索超參數(shù)空間以找到那些能夠最大化目標(biāo)函數(shù)的超參數(shù),分布的效果也會(huì)逐漸改善。

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

使用 Optuna 優(yōu)化超參數(shù)并不是什么難事。

首先,我們需要?jiǎng)?chuàng)建一個(gè) optuna 實(shí)例,也就是裝載所有超參數(shù)試驗(yàn)的容器。在每次試驗(yàn)中我們需要調(diào)整超參數(shù)的設(shè)置來(lái)計(jì)算目標(biāo)函數(shù)相應(yīng)的損失函數(shù)值。在實(shí)例初始化完成后,我們需要向其中傳入目標(biāo)函數(shù)然后調(diào)用 study.optimize() 函數(shù)開(kāi)始優(yōu)化,Optuna 將使用貝葉斯優(yōu)化的方法來(lái)尋找能夠最小化損失函數(shù)的超參數(shù)配置。

使用 Optuna 程序庫(kù)貝葉斯優(yōu)化的代碼 optimize_with_optuna.py

在這個(gè)例子中,目標(biāo)函數(shù)就是在比特幣交易環(huán)境中訓(xùn)練并測(cè)試智能體,而目標(biāo)函數(shù)的損失值則定義為測(cè)試期間智能體平均收益的相反數(shù),之所以給收益值加上負(fù)號(hào),是因?yàn)槠骄找嬖礁咴胶茫?Optuna 看來(lái)?yè)p失函數(shù)越低越好,一個(gè)負(fù)號(hào)剛好解決這個(gè)問(wèn)題。optimize 優(yōu)化函數(shù)為目標(biāo)函數(shù)提供了試驗(yàn)對(duì)象,代碼中我們可以指定試驗(yàn)對(duì)象中的變量設(shè)置。

優(yōu)化目標(biāo)函數(shù)的代碼 optimize_objective_fn.py

optimize_ppo2 優(yōu)化智能體函數(shù)和 optimize_envs 優(yōu)化智能體環(huán)境函數(shù)接收試驗(yàn)對(duì)象作為輸入并返回包含要測(cè)試參數(shù)的字典。每個(gè)變量的搜索空間由 suggest 函數(shù)進(jìn)行設(shè)置,我們需要在試驗(yàn)中調(diào)用 suggest 函數(shù)并給函數(shù)中傳入指定的參數(shù)。

比如說(shuō),如果設(shè)置參數(shù)在對(duì)數(shù)尺度上服從均勻分布,即調(diào)用函數(shù)

trial.suggest_loguniform('n_steps',16,2048),

相當(dāng)于給函數(shù)了一個(gè) 16-2048 之間的 2 的指數(shù)次方(如16,32,64,…,1024,2048)的新浮點(diǎn)數(shù)。

再者,如果設(shè)置參數(shù)在普通尺度上服從均勻分布,即調(diào)用函數(shù)

trial.suggest_uniform('cliprange',0.1,0.4),

相當(dāng)于給函數(shù)一個(gè) 0.1 到 0.4 之間的新浮點(diǎn)數(shù)(如0.1,0.2,0.3,0.4)。

相信你已經(jīng)看出來(lái)了其中的規(guī)律,就是這樣來(lái)設(shè)置變量:

suggest_categorical('categorical',['option_one','option_two']),其中 categorical 為設(shè)置變量的策略, option_one 和 option_two 分別為變量的兩個(gè)選項(xiàng),在剛才的函數(shù)中這兩個(gè)選項(xiàng)為變量的范圍,弄懂了這個(gè)相信下面的代碼就難不倒你了。

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

優(yōu)化交易環(huán)境的代碼 optimize_envs.py

代碼寫(xiě)好后,我們?cè)谝慌_(tái)高性能服務(wù)器上以 CPU/顯卡協(xié)同運(yùn)算的方式運(yùn)行了優(yōu)化函數(shù)。在設(shè)置中,Optuna 創(chuàng)建了一個(gè) SQLite 數(shù)據(jù)庫(kù),我們可以從中加載優(yōu)化的實(shí)例。該實(shí)例記錄了測(cè)試過(guò)程中性能最好的一次試驗(yàn),從中我們可以推算出智能體交易環(huán)境中最優(yōu)的超參數(shù)集。

加載 optuna 實(shí)例的代碼 load_optuna_study.py

到這里,我們已經(jīng)改進(jìn)了模型,改進(jìn)了特征集,并優(yōu)化了所有的超參數(shù)。但俗話說(shuō),是騾子是馬得拉出來(lái)遛遛。

那么,交易智能體在新的獎(jiǎng)勵(lì)指標(biāo)下表現(xiàn)如何呢?

在訓(xùn)練過(guò)程中,我分別使用了利潤(rùn)、Sortino 比率、Calmar 比率和 Omega 比率四個(gè)獎(jiǎng)勵(lì)指標(biāo)來(lái)優(yōu)化智能體。接下來(lái)我們需要在測(cè)試環(huán)境中檢驗(yàn)?zāi)姆N獎(jiǎng)勵(lì)指標(biāo)訓(xùn)練出來(lái)的智能體收益最高,當(dāng)然了,測(cè)試環(huán)境中的數(shù)據(jù)都是智能體在訓(xùn)練過(guò)程中從未見(jiàn)到過(guò)的比特幣價(jià)格走勢(shì),這樣保證了測(cè)試的公平性。

收益比較

在查看結(jié)果之前,我們需要知曉一個(gè)成功的交易策略是什么樣的。出于這個(gè)原因,我們將針對(duì)一些常見(jiàn)且有效的比特幣交易策略進(jìn)行基準(zhǔn)測(cè)試。令人震驚的是,在過(guò)去的十年中一個(gè)最有效的比特幣交易策略就是買(mǎi)入并持有,而另外兩個(gè)不錯(cuò)的交易策略則是使用簡(jiǎn)單但有效的技術(shù)分析來(lái)生成買(mǎi)入/賣(mài)出信號(hào),從而指導(dǎo)交易。

1、買(mǎi)入并持有

這種交易策略指盡可能多地購(gòu)買(mǎi)比特幣并一直持有下去(也就是區(qū)塊鏈社區(qū)中的江湖黑話“ HODL ”)。雖然說(shuō)這種交易策略并不是特別復(fù)雜,但在過(guò)去這樣做賺錢(qián)的機(jī)率很高。

2、相對(duì)強(qiáng)弱指數(shù)分歧(Relative Strength Index(RSI) divergence )

當(dāng)相對(duì)強(qiáng)弱指數(shù)持續(xù)下跌且收盤(pán)價(jià)持續(xù)上漲時(shí),這就是需要賣(mài)出的信號(hào),而當(dāng)相對(duì)強(qiáng)弱指數(shù)持續(xù)上漲且收盤(pán)價(jià)持續(xù)下跌時(shí),就是需要買(mǎi)入的信號(hào)。

3、簡(jiǎn)單移動(dòng)平均線( Simple Moving Average,SMA )交叉

當(dāng)長(zhǎng)期簡(jiǎn)單移動(dòng)平均線超過(guò)短期簡(jiǎn)單移動(dòng)平均線時(shí),這就是需要賣(mài)出的信號(hào),而當(dāng)短期簡(jiǎn)單移動(dòng)平均線超過(guò)長(zhǎng)期簡(jiǎn)單移動(dòng)平均線時(shí),就是需要買(mǎi)入的信號(hào)。

你可能會(huì)問(wèn),為什么要做這些簡(jiǎn)單的基準(zhǔn)測(cè)試呢?這樣做是為了通過(guò)比較證明我們的強(qiáng)化學(xué)習(xí)交易智能體可以在比特幣市場(chǎng)上發(fā)揮作用,如果智能體的收益連這些簡(jiǎn)單的基準(zhǔn)收益都超不過(guò),那么我們就相當(dāng)于花費(fèi)了大量的開(kāi)發(fā)時(shí)間和顯卡算力來(lái)進(jìn)行了一場(chǎng)天馬行空的科學(xué)實(shí)驗(yàn)。現(xiàn)在,讓我們來(lái)證明事實(shí)并非如此。

實(shí)驗(yàn)結(jié)果

我們的數(shù)據(jù)集選用從加密貨幣數(shù)據(jù)網(wǎng)站 CryptoDataDownload 上下載的每小時(shí)收盤(pán)價(jià)位置價(jià)值( OHCLV )數(shù)據(jù),其中前 80% 的數(shù)據(jù)用來(lái)訓(xùn)練智能體,后 20% 作為全新的數(shù)據(jù)進(jìn)行測(cè)試,以了解智能體的收益能力。當(dāng)前這種簡(jiǎn)單的交叉驗(yàn)證形式足以滿足我們的需求,而如果這個(gè)比特幣自動(dòng)交易智能體真的走向生產(chǎn)就緒,我們就可以使用全部的數(shù)據(jù)集進(jìn)行訓(xùn)練,然后在每天新產(chǎn)生的數(shù)據(jù)集上進(jìn)行測(cè)試。

廢話不多說(shuō),我們來(lái)看看結(jié)果。

可以看到,使用 Omega 比率作為獎(jiǎng)勵(lì)指標(biāo)的智能體在測(cè)試階段并沒(méi)有讓人眼前一亮的交易。

使用 Omega 比率作為獎(jiǎng)勵(lì)指標(biāo)的智能體在超過(guò) 3500 小時(shí)的交易時(shí)間里資產(chǎn)的總價(jià)值

分析智能體所進(jìn)行的交易我們可以發(fā)現(xiàn),很明顯 Omega 比率這種獎(jiǎng)勵(lì)指標(biāo)產(chǎn)生了過(guò)度交易(over-trade)的交易策略,以至于智能體未能抓住市場(chǎng)機(jī)會(huì)獲得收益。

使用 Calmar 比率作為獎(jiǎng)勵(lì)指標(biāo)的智能體與使用 Omega 比率作為獎(jiǎng)勵(lì)指標(biāo)的智能體相比略有改進(jìn),但最終結(jié)果非常相似。看起來(lái)像是我們投入了大量的時(shí)間和精力,只是為了讓事情變得更糟......

使用 Calmar 比率作為獎(jiǎng)勵(lì)指標(biāo)的智能體在超過(guò) 3500 小時(shí)的交易時(shí)間里資產(chǎn)的總價(jià)值

如果僅使用利潤(rùn)作為獎(jiǎng)勵(lì)指標(biāo)效果如何呢?在上一篇文章中這種獎(jiǎng)勵(lì)指標(biāo)被證明有點(diǎn)失敗,這次做的所有修改和優(yōu)化能否化腐朽為神奇呢?

在為期四個(gè)月的測(cè)試周期內(nèi),使用利潤(rùn)作為獎(jiǎng)勵(lì)指標(biāo)的智能體平均收益達(dá)到賬戶(hù)初始金額的350%。你可能已經(jīng)被這個(gè)結(jié)果嚇呆了。這應(yīng)該就是強(qiáng)化學(xué)習(xí)能達(dá)到的巔峰了吧,對(duì)吧?

使用利潤(rùn)作為獎(jiǎng)勵(lì)指標(biāo)的智能體在超過(guò) 3500 小時(shí)的交易時(shí)間里資產(chǎn)的總價(jià)值

并不是這樣的。使用 Sortino 比率作為獎(jiǎng)勵(lì)指標(biāo)的智能體平均收益達(dá)到了賬戶(hù)初始金額的850%。當(dāng)我看到這個(gè)數(shù)字時(shí),我都不敢相信自己的眼睛,以至于我立馬回去檢查代碼中是否存在問(wèn)題。但經(jīng)過(guò)徹底的檢查后,很明顯代碼中沒(méi)有任何錯(cuò)誤,也就是說(shuō)這些智能體已經(jīng)知道如何進(jìn)行比特幣交易。

使用 Sortino 比率作為獎(jiǎng)勵(lì)指標(biāo)的智能體在超過(guò) 3500 小時(shí)的交易時(shí)間里資產(chǎn)的總價(jià)值

看起來(lái)使用 Sortino 比率作為獎(jiǎng)勵(lì)指標(biāo)的智能體學(xué)習(xí)到了在最小化持有比特幣風(fēng)險(xiǎn)的前提下低價(jià)買(mǎi)入和高價(jià)賣(mài)出的重要性,同時(shí)它們還躲過(guò)了過(guò)度交易和投資不足兩大陷阱。雖然說(shuō)智能體學(xué)到的具體交易策略我們不得而知,但是我們可以清楚地看到智能體已經(jīng)學(xué)會(huì)通過(guò)交易比特幣獲得收益了。

如果你不信,請(qǐng)看下圖。

使用 Sortino 比率作為獎(jiǎng)勵(lì)指標(biāo)的智能體正在交易比特幣,

其中綠色的三角形表示買(mǎi)入信號(hào),紅色的三角形表示賣(mài)出信號(hào)。

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

寫(xiě)在最后

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

使用循環(huán)神經(jīng)網(wǎng)絡(luò)升級(jí)現(xiàn)有模型,即升級(jí)成使用平穩(wěn)性數(shù)據(jù)的長(zhǎng)短期記憶網(wǎng)絡(luò);

使用領(lǐng)域知識(shí)和統(tǒng)計(jì)分析進(jìn)行特征工程,為智能體提供了 40 多個(gè)用來(lái)學(xué)習(xí)的新特征;

將投資的風(fēng)險(xiǎn)引入智能體的獎(jiǎng)勵(lì)指標(biāo),而不只是關(guān)注利潤(rùn);

使用貝葉斯優(yōu)化來(lái)尋找模型中最優(yōu)的超參數(shù);

使用常見(jiàn)的交易策略進(jìn)行基準(zhǔn)測(cè)試,以確保智能體的收益可以跑贏市場(chǎng)。

從理論上來(lái)說(shuō),這個(gè)高收益的交易智能體已經(jīng)做得很不錯(cuò)了。

但是,我收到了相當(dāng)多的反饋,他們聲稱(chēng)交易智能體只是在學(xué)習(xí)擬合曲線,因此,面對(duì)生產(chǎn)環(huán)境中的實(shí)時(shí)數(shù)據(jù),交易智能體永遠(yuǎn)不可能獲得收益。雖然我們?cè)诓煌瑪?shù)據(jù)集上訓(xùn)練/測(cè)試智能體的方法應(yīng)該能夠解決這個(gè)問(wèn)題,但是模型確實(shí)會(huì)有過(guò)度擬合數(shù)據(jù)集的可能,并且可能不會(huì)很好地推廣到實(shí)時(shí)數(shù)據(jù)。話雖這么說(shuō),但在我看來(lái)這些交易智能體學(xué)習(xí)到的遠(yuǎn)遠(yuǎn)不只是簡(jiǎn)單的曲線擬合,因此,我認(rèn)為它們能夠在實(shí)時(shí)交易的場(chǎng)景中獲得收益。

為了檢驗(yàn)這個(gè)想法,接下來(lái)的一段時(shí)間里我會(huì)把這些基于強(qiáng)化學(xué)習(xí)的智能體帶到生產(chǎn)環(huán)節(jié),為此,我們首先要更新智能體的運(yùn)行環(huán)境以支持以太幣、萊特幣等其他加密貨幣,然后我們將升級(jí)智能體讓它可以在加密貨幣交易所 Coinbase Pro 上實(shí)時(shí)交易。

這將會(huì)是一個(gè)激動(dòng)人心的實(shí)驗(yàn),請(qǐng)不要錯(cuò)過(guò)它。

需要強(qiáng)調(diào)的是,本篇文章中所有的方法和投資策略都是出于教育目的,不應(yīng)被視為投資建議。我們的比特幣自動(dòng)交易智能體也遠(yuǎn)遠(yuǎn)沒(méi)有達(dá)到實(shí)際生產(chǎn)層面,所以請(qǐng)管好自己的錢(qián)包。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    210

    文章

    28231

    瀏覽量

    206614
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4783

    瀏覽量

    84473
  • 比特幣
    +關(guān)注

    關(guān)注

    57

    文章

    7002

    瀏覽量

    140361

原文標(biāo)題:回報(bào)率850%? 這個(gè)用Python優(yōu)化的比特幣交易機(jī)器人簡(jiǎn)直太燒腦了...

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    究竟比特是什么

    12月5日央行等五部委宣布禁止金融機(jī)構(gòu)開(kāi)展比特業(yè)務(wù),但表示比特交易作為一種互聯(lián)網(wǎng)上的商品買(mǎi)賣(mài)行為,普通民眾在自擔(dān)風(fēng)險(xiǎn)的前提下?lián)碛袇⑴c的自
    發(fā)表于 12-15 11:17

    比特交易所系統(tǒng)開(kāi)發(fā)如何適應(yīng)海外市場(chǎng)?

    比特交易所系統(tǒng)開(kāi)發(fā)如何適應(yīng)海外市場(chǎng)?近日央視攜《對(duì)話》欄目幫助電視機(jī)前的觀眾們更好的探尋區(qū)塊鏈?zhǔn)鞘裁础?huì)為我們的生活帶來(lái)哪些改變、這項(xiàng)技術(shù)具體應(yīng)該如何應(yīng)用。目前大家對(duì)區(qū)塊鏈的技術(shù)非常關(guān)注,之前國(guó)內(nèi)
    發(fā)表于 05-28 14:55

    回收螞蟻礦機(jī),回收比特大陸礦機(jī),收購(gòu)比特礦機(jī)

    礦機(jī)的盛況已經(jīng)不再。前途未卜 比特的“挖礦”過(guò)程是通過(guò)利用較高算力來(lái)解決一系列復(fù)雜的數(shù)學(xué)問(wèn)題,來(lái)證明“礦工”使用了這個(gè)過(guò)程并將交易記錄放到區(qū)塊鏈上。如果礦工們能成功地驗(yàn)證這個(gè)方程式,他就能得到相應(yīng)
    發(fā)表于 06-01 10:32

    圈熊市之下如何進(jìn)行投資?炒機(jī)器人小秘為你答疑

    ` 在數(shù)字貨幣市場(chǎng)中是否存在智能化的量化交易機(jī)器人或系統(tǒng),而這些炒機(jī)器人又是否真實(shí)有效是很大投資者迫切想要了解的,現(xiàn)在有一款智能數(shù)資
    發(fā)表于 06-30 16:10

    時(shí)代周刊:為什么比特是自由的源泉?

    ***基金會(huì)的調(diào)查,世界上有超過(guò)50%的人口處于獨(dú)裁統(tǒng)治之下。如果我們能夠投入更多的時(shí)間和資源研發(fā)更好用的錢(qián)包、更多交易所以及更通俗易懂的比特科普素材,那么我們就能給40億的生活帶
    發(fā)表于 01-01 23:23

    機(jī)器人Python仿真軟件介紹

    相關(guān)知識(shí)機(jī)器人Python仿真軟件介紹軟件安裝使用Python的第一步現(xiàn)在,我們將嘗試使該機(jī)器人移動(dòng)。 有關(guān)的RoBIOS命令是int VWSetSpeed(int linSpeed,
    發(fā)表于 12-20 07:53

    機(jī)器人路線規(guī)劃

    有人會(huì)用labview調(diào)用python嗎,或者有其他方法能實(shí)現(xiàn)這個(gè)要求?我在labview做了一個(gè)磁場(chǎng)發(fā)生的程序,驅(qū)動(dòng)磁機(jī)器人運(yùn)動(dòng),而且我這個(gè)機(jī)器人是繞著一個(gè)向量旋轉(zhuǎn)向前的,就輸入幅值頻率那些就可以
    發(fā)表于 11-18 16:21

    比特是不是電子貨幣_(tái)比特怎么交易

    本文開(kāi)始詳細(xì)的介紹了比特的特征,其次介紹了比特的幾個(gè)易平臺(tái)和分析了比特是不是電子貨幣,最后
    發(fā)表于 01-30 16:25 ?1w次閱讀

    比特ETN代表著比特交易所交易基金的一個(gè)軟開(kāi)端

    美國(guó)的投資者如果想在不購(gòu)買(mǎi)加密貨幣的情況下交易比特,就可以通過(guò)比特交易所交易票據(jù)(ETN)獲
    發(fā)表于 08-17 14:52 ?2262次閱讀

    比特OTC場(chǎng)外交易市場(chǎng)具有哪些特點(diǎn)?

    隨著各大交易所的關(guān)閉,嚴(yán)管之下,比特逐漸由場(chǎng)內(nèi)交易交易所)轉(zhuǎn)為場(chǎng)外交易。目前以社交群為載體的
    發(fā)表于 09-29 15:25 ?4939次閱讀

    阿爾法套利寶最好用的比特智能交易機(jī)器人

    是準(zhǔn)確的,但有太多的東西無(wú)法實(shí)現(xiàn),這就是為什么比特交易機(jī)器人蓬勃發(fā)展的原因。(一)什么是比特
    發(fā)表于 02-22 17:36 ?693次閱讀

    比特交易究竟是如何運(yùn)作的

    比特使用UTXO(未使用的交易輸出)模型,而不是賬戶(hù)/余額系統(tǒng)。這意味著區(qū)塊鏈并不直接跟蹤每個(gè)比特地址的
    發(fā)表于 04-06 09:00 ?6268次閱讀
    <b class='flag-5'>比特</b><b class='flag-5'>幣</b><b class='flag-5'>交易</b>究竟是如何運(yùn)作的

    如何利用機(jī)器人在加密貨幣交易中獲得實(shí)際利潤(rùn)

    目前有幾種類(lèi)型的交易機(jī)器人,包括套利機(jī)器人在內(nèi),能從不同交易所的價(jià)格差異中套利。通常每個(gè)交易所的比特
    發(fā)表于 09-05 14:17 ?1102次閱讀

    比特機(jī)器人完成A輪1億人民幣融資

    近日,三維視覺(jué)機(jī)器人研發(fā)商視比特機(jī)器人完成A輪1億人民幣融資,投資方為和玉資本(領(lǐng)投)、圖靈創(chuàng)投。 據(jù)了解,視比特
    的頭像 發(fā)表于 09-14 16:19 ?2280次閱讀

    Freqtrade:簡(jiǎn)單的加密貨幣自動(dòng)交易機(jī)器人

    Freqtrade 是一個(gè)用 Python 編寫(xiě)的免費(fèi)開(kāi)源加密貨幣交易機(jī)器人。它旨在支持所有主要交易所并通過(guò) Telegram 或 webUI 進(jìn)行控制。功能包含回測(cè)、繪圖和資金管理工
    的頭像 發(fā)表于 10-30 10:45 ?2405次閱讀