您好,登錄后才能下訂單哦!
本篇內容介紹了“利用 Python 監控 Uniswap 加密貨幣價格的方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Uniswap是一個基于以太坊的交易所協議,允許任何人交換ERC20代幣。普遍上講,交易代幣要求買賣雙方創造委托訂單,而Uniswap則是自動創建一個交易市場。Uniswap旨在幫助解決去中心化交易所的流動性問題,是一種去中心化的交易所。
在過去的幾個月里,我在 Uniswap 上新上市的幣上觀察到了一個非常有趣的規律,尤其是那些被炒作的幣種。在新幣上市后的前 10-15 分鐘內,價格上漲非常高,不過在接下來的幾個小時內大幅下跌,然后在接下來的 24 小時內上漲超過 50%。不要以為你可以在價格低的時候買進,然后10分鐘后高價賣出。因為以太坊網絡擁堵的原因,這段時間的gas費用非常高(數百美元)。
Superfarm 是之前比較受歡迎的一個新項目,在 Telegram 上擁有超過 86,000 名成員,在 Twitter 上擁有超過 88,000 名關注者。所以我決定來測試一下這個規律,或者說我決定進行推測。在最初的幾分鐘里,價格飆升至 2 美元左右,然后跌至 1 美元左右,因此我決定投資 0.98 eth(按當前價格計算約 1.5K 美元)。
第二天,如果價格要上漲,我必須觀察價格才能退出我在 Superfarm 代幣上的頭寸。每分鐘檢查價格真的是在浪費時間,所以我決定制作一個腳本來監控價格,如果價格達到某個目標,它會通知我。
為了查看 Uniswap 的價格,我使用了 uniswap-python 庫。
!pip install uniswap-python
如果你想知道我為什么使用它,pip 前面的感嘆號是因為我已經在 Jupyter Notebook 中進行了編碼,并且我已經從 Notebook 單元安裝了所有必要的 python 庫。
eth = "0x0000000000000000000000000000000000000000" dai = "0x6B175474E89094C44Da98b954EedeAC495271d0F" sup = "0xe53EC727dbDEB9E2d5456c3be40cFF031AB40A55" address = "0x0000000000000000000000000000000000000000" # if you're not making transactions private_key = None # if you're not going to make transactions provider = <the url of your provider> # if you use Infura will be like 'https://mainnet.infura.io/v3/########' uniswap_wrapper = Uniswap(address, private_key, version=2, providerprovider=provider) # use Uniswap v2
第一個變量包含我們想要在 Uniswap 上獲得加密貨幣的以太坊地址校驗和。
要獲取加密貨幣的以太坊地址校驗和,您可以使用 Coingecko 首先獲取合約地址:
然后你就可以使用下面網站輕松從合約地址中獲取以太坊地址校驗和。
https://ethsum.netlify.app/
如果您不太熟悉什么是以太坊地址校驗和,您可以將其視為一個標識符,基于這個加密貨幣標識符 Uniswap 將能夠為您提供價格。
provider(web3 provider)是一個運行 geth 或 parity 節點的網站,它與以太坊網絡交互。要獲得provider,您可以使用 Infura。如果您使用 Infura,必須注冊然后創建一個新項目,在設置選項卡上您可以看到提供商 URL:
要獲得以 eth 表示的 Superfarm 幣價格:
sup_price = uniswap_wrapper.get_token_eth_input_price(sup, 10 ** 18) print(sup_price / 10**18) # 0.000901625376604887
10 ** 18代表Superfarm 幣的數量,它必須是一個整數值,如果我們選擇小數量值將是0(由于近似),所以我們需要一個大數量。我們將獲得 10 ** 18個 Superfarm 幣的 eth 價格。
如果我們想以美元計算 1 個 Superfarm 幣的價格,我們可以使用 Dai 穩定幣(1 Dai ~= 1 美元)。我們可以請求相同數量的 Superfarm 和 Dai 幣,然后分割它們。
def get_sup_price_in_dollars(): sup_price = uniswap_wrapper.get_token_eth_input_price(sup, 10 ** 18) dai_price = uniswap_wrapper.get_token_eth_input_price(dai, 10 ** 18) return round(sup_price / dai_price, 4) print(get_sup_price_in_dollars()) # 1.357 --> the price in dollars for 1 Superfarm coin
為了在我的桌面上推送通知,我使用了plyer庫:
!pip install plyer
這是監控 Superfarm 價格和自前一個值以來的變化的函數:
from plyer import notification def notify(price: int, new_price: int): notification.notify( title = 'Superfarm price whatcher', message = f"Total value of SUPER = {new_price}, change: {round(new_price - price, 3)}", timeout = 10, app_icon = '/home/kederrac/Pictures/uniswap.ICO', )
如您所見,我還添加了一個應用程序圖標,為了能夠使用應用程序圖標,我還必須將 .png 圖片轉換為 .ico 格式,安裝 dbus-python 庫(如果您使用的是 Windows,則不需要)。
!pip install dbus-python
現在讓我們把它們放在一起:
import time price = get_sup_price_in_dollars() notify(price, price) while True: new_price = get_sup_price_in_dollars() if abs(price - new_price) > 0.05: notify(price, new_price) price = new_price time.sleep(10)
在這里,我每 10 秒調用一次 get_sup_price_in_dollars() 函數來檢查價格是否發生變化,如果變化大于 0.05 美元,將推送通知,您可以更改變化的最小值以獲得通知,或者您 可以設置要通知的最低價格目標。
結果如下:
(在 ubuntu 20.04 上)
(在 windows 10 上)
這對于實時價格通知非常有幫助,這種方法的另一優點是速度,與必須使用 Coingecko 相比,您將獲得數分鐘的時間,如果您使用 Uniswap 網絡界面,時間將更快。
在這里你可以看到我一開始所說的規律:
“利用 Python 監控 Uniswap 加密貨幣價格的方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。