溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中怎么提高比特幣的回報率

發(fā)布時間:2021-08-10 16:43:32 來源:億速云 閱讀:155 作者:Leah 欄目:編程語言

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Python中怎么提高比特幣的回報率,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

交叉指標(biāo)

在金融背景下,黃金交叉和死亡交叉指標(biāo)是一個衍生的的移動平均線,也被稱為交叉指標(biāo)。

例如移動平均線,這兩個交叉指標(biāo)中的任何一個將通過使用以下公式對特定時間段內(nèi)的市場收盤價進行平均來計算。

Python中怎么提高比特幣的回報率

在以上公式中,n對應(yīng)于使用的周期數(shù)

該概念將包括組合兩個移動平均值(短期和長期)以獲得加密貨幣趨勢。當(dāng)短期移動均線超過或回顧長期移動均線時,將出現(xiàn)買入或賣出信號。

從數(shù)學(xué)上講,如果您選擇5個周期的短期移動平均線和20個周期的長期移動平均線,則我們將通過以下條件獲得買入信號:

Python中怎么提高比特幣的回報率

MA(5)和MA(20)分別等于:

Python中怎么提高比特幣的回報率

Python中怎么提高比特幣的回報率

CPrice對應(yīng)于收盤價值

這些交叉指標(biāo)是方程式的一部分,可幫助檢測所研究的加密貨幣的全球趨勢。這些CI(交叉指標(biāo))在全球范圍內(nèi)被多個交易者和基金廣泛使用,以定義支撐,阻力位 ,  止損和目標(biāo)并了解潛在趨勢。

現(xiàn)在我們已經(jīng)涵蓋了一些背景知識,讓我們開始測試,看看它們?nèi)绾螏椭A(yù)測市場。如果要以相同的速度編寫代碼,則需要事先安裝一些配置和程序包。

先決條件

在開始之前,您需要在計算機上安裝Python 3版本和以下軟件包:

  • Pandas

  • NumPy

  • Yfinance

  • Plotly(這個您可以自主選擇安裝與否)

如果尚未安裝這些軟件包中的任何一個,則可以使用pip命令,如下所示。

pip install yfinance pip install plotly

一旦確保安裝了以下軟件包,我們就可以從我們的數(shù)據(jù)管道和數(shù)據(jù)模型開始。

數(shù)據(jù)管道和建模

現(xiàn)在,我們已經(jīng)確認以上軟件包已安裝在我們的機器中,我們可以定義數(shù)據(jù)處理了。

數(shù)據(jù)模型將分為3個不同的步驟:

  1. 鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)

  2. 我們將使用Yahoo Finance API查詢實時加密貨幣的數(shù)據(jù)。

  3. 定義一個時間段,為我們的計算字段創(chuàng)建新列,然后每秒更新這些值。

  4. 實時繪制此圖,并檢查我們的信號是否準確。

Python中怎么提高比特幣的回報率

現(xiàn)在我們可以開始編碼了!(如果您已經(jīng)有使用Python的經(jīng)驗,則可以跳到第二步。)

第一步:導(dǎo)入所需軟件包

您將開始使用以下代碼行導(dǎo)入以前安裝的軟件包:

# Raw Package import numpy as np import pandas as pd  #Data Source import yfinance as yf  #Data viz import plotly.graph_objs as go

上面的行是查詢numpy,pandas,yfinance和要導(dǎo)入的圖

第二步:獲取實時市場數(shù)據(jù)

現(xiàn)在,所需的不同軟件包已被上傳。我們將以BTC-USD對為例,通過Yahoo Finance API設(shè)置導(dǎo)入,可以擴展加密貨幣選擇的列表以及貨幣。

例如,如果您來自印度或加拿大,則可以使用INR或CAD;如果您來自印度或加拿大,則可以使用INR或CAD。兩者都將正常運行,以及您是否需要Ripple或Ethereum數(shù)據(jù)。

第三步:回到我們的API結(jié)構(gòu)

Yahoo Finance API將按此順序需要三個強制性參數(shù):

  • 股票代碼(1)

  • 開始日期+結(jié)束日期或期間(2)

  • 間隔(3)

對于我們的情況,股票代碼(參數(shù)1)將為BTC-USD對。此外,在此示例中,我們將選擇最后7天作為時間段(參數(shù)2)。并設(shè)置一個間隔(參數(shù)3)的90分鐘。

要調(diào)用數(shù)據(jù),您將必須使用以下結(jié)構(gòu):

Python中怎么提高比特幣的回報率

上面描述了獲取我們感興趣的數(shù)據(jù)的結(jié)構(gòu)

快速查找可能的時間間隔

我想快速介紹一下您可以使用yahoo finance API設(shè)置的不同間隔。

下面詳細列出了可能需要的間隔可能性:

Python中怎么提高比特幣的回報率

上面列出了可以選擇的不同間隔。

現(xiàn)在我們已經(jīng)定義了三個參數(shù),讓我們執(zhí)行查詢并檢查輸出:

data = yf.download(tickers='BTC-USD',period = '8d', interval = '90m')

上面的行將向Yahoo Finance API請求BTC-USD。

這是您必須獲得的輸出:

Python中怎么提高比特幣的回報率

每隔90分鐘輸出一次市場

現(xiàn)在,我們已經(jīng)下載并存儲了數(shù)據(jù),我們可以繼續(xù)并定義移動平均線,買賣信號。

部署我們的算法

現(xiàn)在,我們的實時數(shù)據(jù)已經(jīng)下載并存儲在名為“ data”的變量中。下一步包括計算我們的移動平均線并設(shè)置我們的買入和賣出信號。

我們將需要創(chuàng)建以下計算字段:

  • 馬(5)

  • 馬(20)

為此,我們將使用Python中包含的滾動函數(shù)來獲取n個最新周期的平均值。關(guān)于MA(5),我們將在過去90分鐘的最后5分鐘內(nèi)應(yīng)用我們的策略。這意味著我們將計算最近7小時30分鐘(5次乘以90分鐘)的平均收盤價。

Python中怎么提高比特幣的回報率

對于MA(20),我們將使用滾動功能,但我們將計算20個最近周期的平均值,而不是計算5個最近的90分鐘周期。

因此,讓我們在Python上進行編碼:

#Moving average using Python Rolling function data['MA5'] = data['Close'].rolling(5).mean() data['MA20'] = data['Close'].rolling(20).mean()

上面的代碼行使用Python滾動功能獲取移動平均值

上面的代碼一旦執(zhí)行,將為您的數(shù)據(jù)框創(chuàng)建2個新列,如下所示:

Python中怎么提高比特幣的回報率

現(xiàn)在您已經(jīng)定義了波段,必須創(chuàng)建2個額外的列。

我們終于可以部署我們的策略并對其進行測試。在下圖中,我將綠色標(biāo)記為良好的預(yù)測,將黑色預(yù)測為錯誤的預(yù)測。

Python中怎么提高比特幣的回報率

帶有買賣信號的預(yù)期輸出

現(xiàn)在您可以在家開發(fā)它了:

# Raw Package import numpy as np import pandas as pd #Data Source import yfinance as yf #Data viz import plotly.graph_objs as go  #Importing market data data = yf.download(tickers='BTC-USD',period = '8d', interval = '90m')  #Adding Moving average calculated field data['MA5'] = data['Close'].rolling(5).mean() data['MA20'] = data['Close'].rolling(20).mean()  #declare figure fig = go.Figure()  #Candlestick fig.add_trace(go.Candlestick(x=data.index,                 open=data['Open'],                 high=data['High'],                 low=data['Low'],                 close=data['Close'], name = 'market data'))  #Add Moving average on the graph fig.add_trace(go.Scatter(x=data.index, y= data['MA20'],line=dict(color='blue', width=1.5), name = 'Long Term MA')) fig.add_trace(go.Scatter(x=data.index, y= data['MA5'],line=dict(color='orange', width=1.5), name = 'Short Term MA'))  #Updating X axis and graph # X-Axes fig.update_xaxes(     rangeslider_visible=True,     rangeselector=dict(         buttons=list([             dict(count=3, label="3d", step="days", stepmode="backward"),             dict(count=5, label="5d", step="days", stepmode="backward"),             dict(count=7, label="WTD", step="days", stepmode="todate"),             dict(step="all")         ])     ) )  #Show fig.show()

上述就是小編為大家分享的Python中怎么提高比特幣的回報率了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI