Skip to content

给出的这个例子似乎无法平仓 #2

@goodluck028

Description

@goodluck028

Order openLimitOrder;
Order openMarketOrder;
private void OnBar(Instrument instrument,Bar bar)
{
openLimitOrder = BuyLimitOrder(instrument, 1, bar.Open, "buy limit order");
Send(openLimitOrder);//买限价单
AddReminder(Clock.DateTime.AddMinutes(1),"cancel buy limit order");//添加定时器,下单1分钟后还未成交的话做撤单处理
openMarketOrder = BuyOrder(instrument, 2, "buy market order");//买市价单
Send(openMarketOrder);
}
protected override void OnOrderFilled(Order order)
{
if (order.Text == "buy market order")
{
closeLimitOrder = SellLimitOrder(order.Instrument, order.Qty, order.Price + order.Instrument.TickSize * 2);
Send(closeLimitOrder);
}
}
protected override void OnReminder(DateTime dateTime, object data)
{
if (data != null && data.ToString() == "cancel buy limit order")
{//是撤单定时器触发的
if (!openLimitOrder.IsDone)
{//openLimitOrder还未成交
Cancel(openLimitOrder);
}
}
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions