q=1
while 1:
# q==1,,且当前无持多单且没有活动的开多单,买开多1
if q==1:
BK = api.insert_order(SYMBOL,’BUY’,’OPEN’,volume=lots,limit_price=newprice-3*miniprice)
q=0
sp = 1
api.wait_update()
print(‘open long ‘,BK.insert_date_time)
# if 一分钟买开单未成交,撤单
if BK.status == ‘ALIVE’ and klines.iloc[-1][‘datetime’] – BK.insert_date_time >= 60*10**9:
api.cancel_order(BK)
api.wait_update()
print(‘order canceled ‘)
# 如果持有多单,下止盈单
if BK.status == ‘FINISHED’ and position.pos_long>0 and sp== 1:
SP = api.insert_order(SYMBOL,’SELL’,’CLOSE’,volume=lots,limit_price=BK.limit_price+3*miniprice)
api.wait_update()
print(‘有多单,下止盈单 ‘)
# 如果持有多单且浮亏>=100 撤掉已委托止盈单,重下按超价下平仓单
if SP.status == ‘ALIVE’ and position.position_profit_long <= -20:
api.cancel_order(SP)
api.wait_update()
print(‘order canceled ‘)
if SP.status != ‘ALIVE’:
stplong = api.insert_order(SYMBOL,’SELL’,’CLOSE’,volume=lots,limit_price=newprice-3*miniprice)
api.wait_update()
print(“stop long position”)