3.26K 浏览
0

定时平仓,可以的:

while True:
    q_close = api.get_quote(symbol)
    api.wait_update()
    time_condiction = q_close.datetime[11:16]==close_time
    if time_condiction:
        order_stoploss = api.insert_order(symbol=symbol, direction=direction_close, offset=offset, volume=volume, limit_price=market_price)
        api.wait_update()
        break

但是加上止损后,不行了:

for key, value in position_dict.items(): 
         offset = 'CLOSE'
        #print(exchange)
        if value.exchange_id == 'SHFE':
            offset = 'CLOSETODAY'
        q_close = api.get_quote(key)
        api.wait_update()
        time_condiction = q_close.datetime[11:16]==end_time
        #if pos_len < int(pos_full/2):
        #    time_condiction = True
         if value.pos_long_today > 0:
            direction_close = 'SELL'
            market_price = q_close.lower_limit
            open_price = 开仓价格(开仓后马上用last_price记录下来的)
            volume = value.pos_long_today
            stop_profit_condiction = (q_close.last_price-open_price)/open_price*1000 >= stop_profit_pct
            stop_loss_condiction = (open_price-q_close.last_price)/open_price*1000 >= stop_loss_pct
            #price_condiction = stop_profit_condiction or stop_loss_condiction
            price_condiction = stop_loss_condiction
            if price_condiction or time_condiction:
            #if time_condiction:
                api.insert_order(symbol=key, direction=direction_close, offset=offset, volume=volume, limit_price=market_price)
                api.wait_update()
                api.insert_order(symbol=key, direction=direction_close, offset=offset, volume=volume, limit_price=market_price)
            '''
            if stop_loss_condiction:
                print('止损')
            if stop_profit_condiction:
                print('止盈')
            '''
         if value.pos_short_today > 0:
            direction_close = 'BUY'
            market_price = q_close.upper_limit
            open_price = q_close.open
            volume = value.pos_short_today
            stop_profit_condiction = (open_price-q_close.last_price)/open_price*1000 >= stop_profit_pct
            stop_loss_condiction = (q_close.last_price-open_price)/open_price*1000 >= stop_loss_pct
            #price_condiction = stop_profit_condiction or stop_loss_condiction
            price_condiction = stop_loss_condiction
            if price_condiction or time_condiction:
            #if time_condiction:
                api.insert_order(symbol=key, direction=direction_close, offset=offset, volume=volume, limit_price=market_price)
                api.wait_update()
                api.insert_order(symbol=key, direction=direction_close, offset=offset, volume=volume, limit_price=market_price)
            '''
                print('方向:看跌')
                print('开仓价:',open_price)
                print('当前价:',q_close.last_price)
            if stop_loss_condiction:
                print('止损')
            if stop_profit_condiction:
                print('止盈')
            '''

ringo 已回答的问题 2020年12月11日