Fundtrader使用過程中遇到的問題有如下:
問題1: api報錯
C:\Users\Administrator\anaconda3\envs\first\python.exe "C:/Users/Administrator/Desktop/fundtrader 2.2.0/fundtrader/main.py"
request : GET /api/v3/account?timestamp=1617330189743&signature=656bb2d44a3f217ab7331e6d52a270956e1f070d08aea555e29f68174d8bedf4 failed because 400:
headers: {'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json', 'X-MBX-APIKEY': 'cndT4vuA6HKzEr8OMGzAabHuMzdoIsfeFIVdfkJ1Jwy2UvQ3157ZB98OqRhAofgF'}
params: {}
data: {}
response:{"code":-1022,"msg":"Signature for this request is not valid."}
request : GET /api/v3/openOrders?timestamp=1617330189758&signature=c60f4b68f49524eaf1da71eb33e81d7917d98bd25534b0924522f7ddc9ccb952 failed because 400:
headers: {'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json', 'X-MBX-APIKEY': 'cndT4vuA6HKzEr8OMGzAabHuMzdoIsfeFIVdfkJ1Jwy2UvQ3157ZB98OqRhAofgF'}
params: {}
data: {}
response:{"code":-1022,"msg":"Signature for this request is not valid."}
request : GET /api/v3/account?timestamp=1617330198899&signature=15b9ad7651fa59162b12394f34bb8c07beeb9170da693669b5ee927c5a501897 failed because 400:
headers: {'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json', 'X-MBX-APIKEY': 'cndT4vuA6HKzEr8OMGzAabHuMzdoIsfeFIVdfkJ1Jwy2UvQ3157ZB98OqRhAofgF'}
params: {}
data: {}
response:{"code":-1022,"msg":"Signature for this request is not valid."}
解決方法
檢查自己的apikey和secret是否有這樣的問題
檢查自己是否復制錯誤、 是否含有空格、是否復制了多次, 可以打開項目下的howtrader文件下的connect_binance.json 和 connect_binances.json, 查看兩個文件中的apikey和secret是否跟交易所的一致。
-
自己生成apikey的時候是否有勾選上合約和現貨
api要求.jpg
問題2: 下單失敗
- 倉位模式不匹配,需要在app或者網頁那邊設置倉位模式為單向
- 檢查你的賬戶資金是否夠。如果報錯insuficient margin就是保證金不足
問題3. 沒有開倉
檢查你設置的open_spread_pct和open_rate_pct是否過高,他們要跟當前的價差和資金費率相比,只有當前的價差和資金費率都比你設置的open_spread_pct和open_rate_pct高他們才會開倉,否則不滿足開倉條件。
檢查你設置的trade_max_usd_every_time這個參數,他們的值是過小。這個是的意思是每次你下單的單子的最大值,如果你設置的這個值為20,那么你每次單子的數量就是20/你交易的品種價格,假設你交易的是UNI這個交易對,他的當前價值是30USDT, 那么你下單的數量為20/30 = 0.66個,但是交易所要求合約的交易的數量為至少1個UNI, 那么你設置的這個20就不能下單。一般這個最小值要太小的話,要根據交易對來看,但是交易設置這個值至少為50以上。
問題4: 如何防止爆倉
我建議一般現貨放75-80%的資金,合約放20-25%的資金。這樣你的資金利用率為80%左右,這樣最大限度保障你的收益。為了讓合約現貨的資金完全對沖,合約的資金乘以杠桿倍數要大于現貨的資金。如果你的合約是20%資金,那么要設置為5倍杠桿。我建議設置全倉,然后五倍杠桿。為了降低爆倉的風險,我建議平均分配下資金跑2-3個幣種,這樣他們只要不是同時上漲,那么爆倉的風險就很小。每天定時看一下,通過app查看下他們是否暴漲,然后如果漲得多了,可以適當調倉下,把爆倉的價格提高。如果你同時跑三個交易對,可以把close_before_liquidation_pct設置為1.5-2.5之間,這樣就是他們快到爆倉價前的1.5%-2.5%會平倉。
問題4: 如何進行倉位管理
程序中有initial_target_pos, 這個值是你開倉的最大值。如果你設置為300, 那么它就是你最多買這個幣為三百個,但是如果你已經完成了交易,你把策略停止,然后設置為200,那么它就會慢慢給你減倉。如果單個幣上漲比較多,你可以適當的減倉,然后把多余的保證金劃轉到合約。
另外如果跑的某個交易對,他們的資金費率下降的比較多,你可以選擇平倉,這時只需把initial_target_pos設置為零, 然后重新啟動策略,然后策略就會給你慢慢平倉。同時可以跑其他交易對。
另外單個客戶端,跑的交易對不要超過四個,如果超過四個,程序會效率不高,可能對沖不那么及時。如果你實在想跑多個比較多的交易對,建議你多開幾個客戶端。每個客戶端跑不同的交易對。
問題5: 控制臺報錯,下不了單
錯誤提示
{'code': -1021, 'msg': "Timestamp for this request was 1000ms ahead of the server's time."} 400
服務器的時鐘不準確,導致時間戳問題。需要調整下自己的服務器的時間戳,這個百度下就搞定了。
問題6:程序中看不懂英文
可以看項目下的 策略參數說明.md
文件
問題7: 如何調整杠桿和查看收益
在app設置,最好設置全倉和5倍杠桿,然后收益在合約那邊,點擊過濾選擇資金費率就可以了。
問題8:服務器選擇
最好選擇東京地區的服務器,最低配置要求2核4G的Window服務器。
問題9: 下單不成功
- 保證金不足的問題,需要劃轉下。
問題10 :如何想在價差小的時候平倉
程序自動平倉是在當前市場行情價差和資金費率分別小于你設置的close_spread_pct和close_rate_pct的時候,才會自動平倉。如果想平倉可以設置為一個小的數。但是如果不設置的也可以的,使用默認值為0也可以的。因為資金費率一般都是大于零的。蚊子腿也是肉。
問題11: 如何兌換busd
可以通過 BUSD/USDT交易對兌換
問題12: 爆倉和交易所減倉會賣出現貨嗎?
會的。爆倉和交易所減倉是兩個大的風險。爆倉的話,可能會虧損一些價差、滑點,已經清算的費用。減倉是交易所在合約沒有對手盤了,需要拿獲利較多的來進行平倉。如果你在app那邊看點與四個杠的豎線亮起,那么發生大波動的時候,你的倉位可能在減倉序列,但是一般不會減倉的,除非波動比較大。
如果發生爆倉或者減倉,如果你服務器沒有發生問題,交易所沒有宕機,那么程序會給你賣出相應的現貨的。
問題12:爆倉加如何算的
爆倉價是從交易所的獲取的。
問題13: 找不到庫
環境沒有安裝對,需要conda 激活你環境,然后進行處理。或者你運行的環境沒有安裝howtrader.
問題14: 沒有收到行情或者資產信息
需要檢查下你的websocket是否連接成功。
如何查看你的訂單成交信息
可以在軟件中查看,或者在app中查看。
問題15:現貨和合約的數量不完全相等
這個問題很正常。幣安要求現貨下單的價值是10USDT以上,而且合約要求的每個幣種最小的下單數量也是有要求的。只要他們相差的數量小于合約的最小下單要求或者他們相差的價值小于11USDT, 那么程序就是認為他們相當的。而且他們相差的數量不會對我們的盈虧沒有太大的影響。
問題15: 找不到藍牙的api
這個問題主要是pyqt5的藍牙api支持window 10一下的系統造成的。
解決問題方法,要找到你項目項目下的mytrader的文件夾, 類似下面的截圖。
首先找到你的項目下面的這個mytrader解析器環境的路徑
然后開始在對應目錄下找到mytrader中pyqt5的藍牙的庫,然后把它的名字修為:Qt5Bluetooth.dll1, 或者刪除也可以的。