2.52K 浏览
0

策略代码中,设计了入场信号反向止损和移动止损两种止损方式,有时会遇到两种方式同时下单,回测时就会报错,然后策略停止运行,实盘或者模拟时,也会报错,但策略不会停止运行,要怎么解决?

cornerman 已回答的问题 2021年9月18日
0

非官方,交流,共同进步,如果多合约的话可以试试这种写法,我自己的异步代码可运行,你可以多加点判断条件啥的,把你的两种止损都加进去,我这里是对价买入,挂止盈价单,如果损失达到止损点,撤单(target_pos自动撤,不需要cancel)挂对价止损

stop_point = *
profit_point = *
def get_price(direction):

    price = quote.last_price  # 初始值

    if position.pos == 0 and direction == "BUY":
        price = quote.ask_price1

    elif position.pos == 0 and direction == "SELL":
        price = quote.bid_price1

    elif position.pos > 0 and direction == "SELL" and (
            position.position_price_long - quote.last_price) < stop_point * quote.price_tick:
        price = position.position_price_long + profit_point * quote.price_tick

    elif position.pos < 0 and direction == "BUY" and (
            quote.last_price - position.position_price_short) < stop_point * quote.price_tick:
        price = position.position_price_short - profit_point * quote.price_tick

    elif position.pos > 0 and direction == "SELL" and (
            position.position_price_long - quote.last_price) >= stop_point * quote.price_tick:
        price = quote.bid_price1

    elif position.pos < 0 and direction == "BUY" and (
            quote.last_price - position.position_price_short) >= stop_point * quote.price_tick:
        price = quote.ask_price1

    return price

target_pos = TargetPosTask(api, symbol, price=get_price)
cornerman 已回答的问题 2021年9月18日
您正在查看2个答案中的1个,单击此处查看所有答案。