您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關Python中怎么提高比特幣的回報率,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
在金融背景下,黃金交叉和死亡交叉指標是一個衍生的的移動平均線,也被稱為交叉指標。
例如移動平均線,這兩個交叉指標中的任何一個將通過使用以下公式對特定時間段內的市場收盤價進行平均來計算。
在以上公式中,n對應于使用的周期數
該概念將包括組合兩個移動平均值(短期和長期)以獲得加密貨幣趨勢。當短期移動均線超過或回顧長期移動均線時,將出現買入或賣出信號。
從數學上講,如果您選擇5個周期的短期移動平均線和20個周期的長期移動平均線,則我們將通過以下條件獲得買入信號:
MA(5)和MA(20)分別等于:
CPrice對應于收盤價值
這些交叉指標是方程式的一部分,可幫助檢測所研究的加密貨幣的全球趨勢。這些CI(交叉指標)在全球范圍內被多個交易者和基金廣泛使用,以定義支撐,阻力位 , 止損和目標并了解潛在趨勢。
現在我們已經涵蓋了一些背景知識,讓我們開始測試,看看它們如何幫助預測市場。如果要以相同的速度編寫代碼,則需要事先安裝一些配置和程序包。
在開始之前,您需要在計算機上安裝Python 3版本和以下軟件包:
Pandas
NumPy
Yfinance
Plotly(這個您可以自主選擇安裝與否)
如果尚未安裝這些軟件包中的任何一個,則可以使用pip命令,如下所示。
pip install yfinance pip install plotly
一旦確保安裝了以下軟件包,我們就可以從我們的數據管道和數據模型開始。
現在,我們已經確認以上軟件包已安裝在我們的機器中,我們可以定義數據處理了。
數據模型將分為3個不同的步驟:
鴻蒙官方戰略合作共建——HarmonyOS技術社區
我們將使用Yahoo Finance API查詢實時加密貨幣的數據。
定義一個時間段,為我們的計算字段創建新列,然后每秒更新這些值。
實時繪制此圖,并檢查我們的信號是否準確。
現在我們可以開始編碼了!(如果您已經有使用Python的經驗,則可以跳到第二步。)
您將開始使用以下代碼行導入以前安裝的軟件包:
# 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和要導入的圖
現在,所需的不同軟件包已被上傳。我們將以BTC-USD對為例,通過Yahoo Finance API設置導入,可以擴展加密貨幣選擇的列表以及貨幣。
例如,如果您來自印度或加拿大,則可以使用INR或CAD;如果您來自印度或加拿大,則可以使用INR或CAD。兩者都將正常運行,以及您是否需要Ripple或Ethereum數據。
Yahoo Finance API將按此順序需要三個強制性參數:
股票代碼(1)
開始日期+結束日期或期間(2)
間隔(3)
對于我們的情況,股票代碼(參數1)將為BTC-USD對。此外,在此示例中,我們將選擇最后7天作為時間段(參數2)。并設置一個間隔(參數3)的90分鐘。
要調用數據,您將必須使用以下結構:
上面描述了獲取我們感興趣的數據的結構
快速查找可能的時間間隔
我想快速介紹一下您可以使用yahoo finance API設置的不同間隔。
下面詳細列出了可能需要的間隔可能性:
上面列出了可以選擇的不同間隔。
現在我們已經定義了三個參數,讓我們執行查詢并檢查輸出:
data = yf.download(tickers='BTC-USD',period = '8d', interval = '90m')
上面的行將向Yahoo Finance API請求BTC-USD。
這是您必須獲得的輸出:
每隔90分鐘輸出一次市場
現在,我們已經下載并存儲了數據,我們可以繼續并定義移動平均線,買賣信號。
現在,我們的實時數據已經下載并存儲在名為“ data”的變量中。下一步包括計算我們的移動平均線并設置我們的買入和賣出信號。
我們將需要創建以下計算字段:
馬(5)
馬(20)
為此,我們將使用Python中包含的滾動函數來獲取n個最新周期的平均值。關于MA(5),我們將在過去90分鐘的最后5分鐘內應用我們的策略。這意味著我們將計算最近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滾動功能獲取移動平均值
上面的代碼一旦執行,將為您的數據框創建2個新列,如下所示:
現在您已經定義了波段,必須創建2個額外的列。
我們終于可以部署我們的策略并對其進行測試。在下圖中,我將綠色標記為良好的預測,將黑色預測為錯誤的預測。
帶有買賣信號的預期輸出
現在您可以在家開發它了:
# 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中怎么提高比特幣的回報率了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。