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的时候是否有勾选上合约和现货
问题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, 或者删除也可以的。