모형 회수 환경
[Exchange.GetAccount]에서 얻은 계정 정보는 Balance 값이 어떻게 계산되는가?
초기 자본 50000, 100배의 레버리지, 상장 초기 자본 500%, 보증금 점유율은 이론적으로 5%이고, 사용 가능한 usdt는 초기 자본 95%이며, 실제 인쇄 된 데이터는 3937입니다.
初始资金*开仓5倍 = 50000 * 5 = 250000 ,100杠杆,即保证金使用开仓规模的1/100 , 即2500。


function main() {
exchange.SetContractType("swap")
exchange.SetMarginLevel(100)
var acc = exchange.GetAccount()
Log(acc)
//下单
var t = exchange.GetTicker()
exchange.SetDirection("buy")
exchange.Buy(t.Sell + 1000, acc.Balance * 5 / t.Last)
Log(exchange.GetAccount())
}
Balance是当前可用保证金。偏差考虑资金费率因素。
'''backtest
start: 2021-09-25 00:00:00
end: 2021-10-25 23:59:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
'''
def main():
exchange.SetContractType("swap")
exchange.SetMarginLevel(100)
acc = exchange.GetAccount()
t = exchange.GetTicker()
exchange.SetDirection("buy")
exchange.Buy(t.Sell + 1000, acc.Balance * 5 / t.Last)
while True:
acc = exchange.GetAccount()
pos = exchange.GetPosition()
Log("Account.Balance: {}, Position.Profit: {}".format(acc.Balance, pos[0].Profit))
Sleep(3600000*8)
麻烦帮忙看看,我这代码是否有问题
class Trade():
def init(self):
exchange.SetContractType("swap")
exchange.SetMarginLevel(100)
def OnOrder(self):
acc = exchange.GetAccount()
t = exchange.GetTicker()
exchange.SetDirection("buy")
exchange.Buy(t.Sell + 1000, acc.Balance * 5 / t.Last)
Log(acc)
def main():
trade = Trade()
trade.OnOrder()
while True:
acc = exchange.GetAccount()
pos = exchange.GetPosition()
Log("Account.Balance: {}, Position.Profit: {}".format(acc.Balance, pos[0].Profit))
Sleep(3600000*8)
盈利越高,Balance数值怎么会越低
- 1
