测试过程:1、首先把快期模拟账户手动平仓,使仓位归0. 2、运行代码:发出金叉买入信号,要求平掉账号所有空单,然后下1手多单。
3、运行结果,因为账号本来就空仓,所以下一手多单正常完成。 4、信号死叉做空,要求先平掉账户多单,再下一首空单。运行结果,提示:平仓单错误,又下的一张空单正确。请老师指导。
if D.iloc[-2] < B.iloc[-2] and D.iloc[-1] > B.iloc[-1]: print("死叉") #获取持仓量,大于零就先平仓,再开空单1手,持仓量等于零,直接开空单1手 position = api.get_position(SYMBOL) if position.pos_long > 0: order1 = api.insert_order(symbol=SYMBOL, direction="SELL", offset="CLOSE", volume=position.pos_long,limit_price=klines.iloc[-1].close-1) order2 = api.insert_order(symbol=SYMBOL, direction="SELL", offset="OPEN", volume=1,limit_price=klines.iloc[-1].close - 1) else: order2 = api.insert_order(symbol=SYMBOL, direction="SELL", offset="OPEN", volume=1,limit_price = klines.iloc[-1].close-1) if D.iloc[-2] > B.iloc[-2] and D.iloc[-1] < B.iloc[-1]: print("金叉") #获取持仓量,大于零就先平仓,再开多单,等于零就直接开1手多单。 position = api.get_position(SYMBOL) if position.pos_short > 0: order1 = api.insert_order(symbol=SYMBOL, direction="BUY", offset="CLOSE",volume=position.pos_short,limit_price=klines.iloc[-1].close+1) order2 = api.insert_order(symbol=SYMBOL, direction="BUY", offset="OPEN", volume=1,limit_price=klines.iloc[-1].close + 1) else: order2 = api.insert_order(symbol=SYMBOL, direction="BUY", offset="OPEN", volume=1,limit_price = klines.iloc[-1].close+1)
李思恒 已回答的问题 2021年6月22日
天勤是个好平台,论坛客服力量应当加强,感觉问题回复不够及时,问题解答不够详细。