Python中怎么提高比特幣的回報率
這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Python中怎么提高比特幣的回報率,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
交叉指標(biāo)
在金融背景下,黃金交叉和死亡交叉指標(biāo)是一個衍生的的移動平均線,也被稱為交叉指標(biāo)。
例如移動平均線,這兩個交叉指標(biāo)中的任何一個將通過使用以下公式對特定時間段內(nèi)的市場收盤價進行平均來計算。
在以上公式中,n對應(yīng)于使用的周期數(shù)
該概念將包括組合兩個移動平均值(短期和長期)以獲得加密貨幣趨勢。當(dāng)短期移動均線超過或回顧長期移動均線時,將出現(xiàn)買入或賣出信號。
從數(shù)學(xué)上講,如果您選擇5個周期的短期移動平均線和20個周期的長期移動平均線,則我們將通過以下條件獲得買入信號:
MA(5)和MA(20)分別等于:
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個不同的步驟:
鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)
我們將使用Yahoo Finance API查詢實時加密貨幣的數(shù)據(jù)。
定義一個時間段,為我們的計算字段創(chuàng)建新列,然后每秒更新這些值。
實時繪制此圖,并檢查我們的信號是否準確。
現(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):
上面描述了獲取我們感興趣的數(shù)據(jù)的結(jié)構(gòu)
快速查找可能的時間間隔
我想快速介紹一下您可以使用yahoo finance API設(shè)置的不同間隔。
下面詳細列出了可能需要的間隔可能性:
上面列出了可以選擇的不同間隔。
現(xiàn)在我們已經(jīng)定義了三個參數(shù),讓我們執(zhí)行查詢并檢查輸出:
data = yf.download(tickers='BTC-USD',period = '8d', interval = '90m')
上面的行將向Yahoo Finance API請求BTC-USD。
這是您必須獲得的輸出:
每隔90分鐘輸出一次市場
現(xiàn)在,我們已經(jīng)下載并存儲了數(shù)據(jù),我們可以繼續(xù)并定義移動平均線,買賣信號。
部署我們的算法
現(xiàn)在,我們的實時數(shù)據(jù)已經(jīng)下載并存儲在名為“ data”的變量中。下一步包括計算我們的移動平均線并設(shè)置我們的買入和賣出信號。
我們將需要創(chuàng)建以下計算字段:
為此,我們將使用Python中包含的滾動函數(shù)來獲取n個最新周期的平均值。關(guān)于MA(5),我們將在過去90分鐘的最后5分鐘內(nèi)應(yīng)用我們的策略。這意味著我們將計算最近7小時30分鐘(5次乘以90分鐘)的平均收盤價。
對于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個新列,如下所示:
現(xiàn)在您已經(jīng)定義了波段,必須創(chuàng)建2個額外的列。
我們終于可以部署我們的策略并對其進行測試。在下圖中,我將綠色標(biāo)記為良好的預(yù)測,將黑色預(yù)測為錯誤的預(yù)測。
帶有買賣信號的預(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è)資訊頻道。