在本指南中,我們將介紹API的一些核心功能,以幫助您啟動和運行。本指南假設您已經啟用了Haasonline實例的LocalAPI功能。
# 要求
python 3.6+
virtualenv
Haasonline Trading Platform 3.1.14+
# 設置我們的環境
我們要做的第一件事是設置一個虛擬環境用于我們的項目。首先我們將創建一個文件夾,然后從文件夾中創建一個虛擬環境。
```
From our favorite terminal on mac,linux, or windows
virtualenv --python=python3 .env
```
然后我們需要將環境更改為生成的環境
```
On Windows We Do
.env/Scripts/activate.bat
```
```
On linux/mac we do
source .env/bin/activate
```
在我們設置環境之后,我們想要安裝haasomeapi依賴項
```
In our terminal we do
pip install haasomeapi
```
# 連接到Haasonline本地接口
現在我們已經有了庫和環境設置,我們希望繼續創建一個名為main.py的文件并保存。我們假設您將本地api ip設置為127.0.0.1,將端口設置為9000。
在文件內部添加以下行,忽略三個“>”
```
from haasomeapi.HaasomeClient import HaasomeClient
from haasomeapi.enums.EnumOrderType import EnumOrderType
from haasomeapi.enums.EnumCustomBotType import EnumCustomBotType
from haasomeapi.enums.EnumBotTradeAmount import EnumBotTradeAmount
haasomeClient = HaasomeClient("[http://127.0.0.1:9000](http://127.0.0.1:9000/)", "secretkeyhere")
```
我們在這里做的是導入我們的api庫,然后創建一個到本地api的初始連接。我們可以通過在我們之前添加的三個代碼下編寫以下代碼來驗證連接和憑據輸入是否正確。這將驗證我們提供的密鑰是否正確。如果拋出異常,那么我們知道ip和port沒有正確設置。
```
try:
testCredsResult = haasomeClient.test_credentials()
if testCredsResult.result == EnumErrorCode.SUCCESS:
print("Connection Succesfull and Secret Is Correct")
else:
print("Connection Failed but Ip and Port are correct")
except:
print("Connection Failed - Check Ip and Port)
```
# The HaasomeClientResponse Class
在我們繼續之前,我們需要理解,與普通庫不同,此庫中的函數不會直接返回其對象。相反,他們都返回HaasomeClientResponse。該類包含以下定義。但最重要的是錯誤代碼字段和結果字段。結果可以是任何類,因此請確保根據函數返回的文檔說明來處理它。
```
class HaasomeClientResponse:
""" Standard Haas API Response Object
Contains the Haas Local API Response
:param errorCode: :class:~haasomeapi.enums.EnumErrorCode: Error Code Returned if any
:param errorMessage: str: Error message returned from the server if any
:param result: any: Can contain anything so check functiona definition
"""
def init(self, errorcode: EnumErrorCode, errormessage: str, result):
self.errorCode: EnumErrorCode = errorcode
self.errorMessage: str = errormessage
self.result = result
```
# 獲取可用帳戶并使用一個
現在我們需要做的是獲取所有激活帳戶的列表并選擇要使用的帳戶。為簡單起見,我們將使用返回列表中第一個的任何內容。我們可以通過以下方式實現這一目標
```
Get a dict of all enabled accounts
accounts = haasomeClient.accountDataApi.get_enabled_accounts()
Display our current accounts
print (accounts.result)
Select the First Guid
accountGuid = accounts.keys[0]
```
# 執行簡單的現貨交易
現在讓我們繼續并在binance上執行一個簡單的買賣訂單(我們假設我們選擇的accountguid是一個binance帳戶)。參數的格式為(ACCOUNT_GUID,PRIMARY_COIN,SECONDARY_COIN,PRICE,AMOUNT)。這些函數將返回模板guid。重要的是要注意,在Haasonline訂單中有一個名為“Template”的父類,因此所有訂單實際上都是模板。
```
Place a spot buy order
spotBuy = haasomeClient.tradeApi.place_spot_buy_order(accountGuid, "BNB", "BTC", 0.0020852, 20)
Place a spot sell order
spotSell = haasomeClient.tradeApi.place_spot_sell_order(accountguid, "BNB", "BTC", 0.0020852, 20)
```
# 檢查我們的訂單狀態?
我們已經創建了基本訂單,但現在我們需要檢查訂單的狀態。我們有幾種方法可以解決這個問題。首先,我們可以獲得所有賬戶上所有未結訂單的清單,或查看未結訂單狀態。
```
Get All Open Orders
allOrders = haasome.accountDataApi.get_all_open_orders()
Get Open Orders From account
orders = haasome.accountDataApi.get_open_orders(accountguid)
Get the order status specifically
orderStatus = haasome.accountDataApi.get_template_status(spotBuy.result)
Then we check to see if the order is completed
if orderStatus.result == EnumOrderStatus.COMPLETED:
print("Order Completed")
```
# 創建一個剝頭皮機器人
本快速入門指南的最后一部分將向您展示如何創建和回測基本的剝頭皮機器人并對其進行回測。首先我們需要創建一個scalper bot來執行此操作,我們從customBotApi調用函數new_custom_bot。參數的格式為(ACCOUNT_GUID,BOT_TYPE,BOT_NAME,PRIMARY_CURRENCY,SECONDARY_CURRENCY,CONTRACT_NAME(可選))
```
newScalper = haasomeClient.customBotApi.new_custom_bot(accountGuid, EnumCustomBotType.SCALPER_BOT,"SuperCoolTutorialBot", "BNB", "BTC", "")
```
# 配置新的剝頭皮機器人
現在我們已經創建了一個新的scalper bot,我們將要配置它,這可以使用customBotApi中的setup_scalper_bot函數完成。該函數的格式為(ACCOUNT_GUID,BOT_GUID,BOT_NAME,PRIMARY_CURRENCY,SECONDARY_CURRENCY,TEMPLATE_GUID,CONTRACT_NAME,LEVERAGE,AMOUNT_TYPE,TRADE_AMOUNT,POSITION,FEE,TARGET_PERCENTAGE,SAFETY_THRESHOLD)
```
newScalperEdited = haasomeClient.customBotApi.setup_scalper_bot(accountGuid, newScalper.result.guid, [newScalper.result.name](http://newscalper.result.name/), newScalper.result.primaryCurrency, newScalper.result.secondaryCurrency, "LOCKEDLIMITORDERGUID", "", 0.0, EnumBotTradeAmount.STATIC, 100, "BTC", 0.1, 1.0, 1.0)
```
# 激活剝頭皮機器人
現在剩下要做的就是激活我們的scalper bot,我們可以使用customBotApi中的activate_custom_bot函數輕松完成。該函數的格式為(BOT_GUID,WITH_EXTRA)
```
isActivated = haasomeClient.customBotApi.activate_custom_bot(newScalper.result.guid, False)
```
# 獲取機器人的狀態
在機器人運行之后,我們偶爾會想要獲取機器人的狀態,它當前的ROI是什么等。為此,我們只需要一個新的機器人對象,它將包含本地api的所有這些信息,我們通過調用customBotApi中的get_custom_bot函數。該函數的格式為(BOT_GUID,BOT_TYPE)
```
newBotInfo = haasomeClient.customBotApi.get_custom_bot(newScalper.result.guid, EnumCustomBotType.SCALPER_BOT)
```
# 停用機器人
最后,我們要使用customBotApi中的deactivate_custom_bot函數停用機器人。該函數的格式為(BOT_GUID,WITH_EXTRA)
```
isDeactivated = haasomeClient.customBotApi.activate_custom_bot(newScalper.result.guid, False)
```
# 最后附注
希望這足以讓您使用haasomeapi來控制您的Haasonline交易平臺。HaasomeApi功能齊全,可實現haasonline local api目前提供的所有端點。我們可以使用api做更多的事情,你可以在文檔中找到所有這些。