• If this is your first visit, you will have to register before you can post. To view messages, please scroll below and select the forum that you would like to visits. Questions? Be sure to check out the Forum FAQ.

Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

BuyToCover stop order ignored

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    BuyToCover stop order ignored

    Hi All,

    I am having a problem with setting a stop loss which seems to be due to a gap down in price on the bar after my entry signal triggers. What seems to be happening is that on the close of bar X my short signal triggers so I enter my short. I then calculate my stoploss by adding a number of ticks above my AvgFillPrice. The problem is that on the bar after my entry signal, price has gapped down, so that when my stoploss is entered it is below the Close of the trigger bar. I need to run CalculateOnBarClose = true;

    Below is my stoploss code
    protectedoverridevoid OnExecution(IExecution execution)
    {
    if (order1 != null && order1 == execution.Order && Position.MarketPosition == MarketPosition.Short)
    {
    order1Target = ExitShortLimit(
    0, true, 1, order1.AvgFillPrice - profitTarget * TickSize, "order1Target", "order1");
    order1StopLoss = ExitShortStop(
    0, true, 1, order1.AvgFillPrice + stopLoss * TickSize, "order1StopLoss", "order1");
    }
    elseif (order2 != null && order2 == execution.Order && Position.MarketPosition == MarketPosition.Short)
    {
    Print(Time[
    0] + " " + Close[0]);
    order2StopLoss = ExitShortStop(
    0, true, 1, order2.AvgFillPrice + stopLoss * TickSize, "order2StopLoss", "order2");
    }
    }
    I have attached a screenshot to show the price action, aswell as my output window with TraceOrders=true;

    How can I get around this issue?
    Attached Files

    #2
    Hello DarkPool,
    As a workaround you can initially place the stop order like
    Code:
    order1StopLoss = ExitShortStop(0, true, 1, Math.Max(Close[0], order1.AvgFillPrice + stopLoss * TickSize), "order1StopLoss", "order1");
    and subsequently change it to your original price (from OnBarUpdate or OnMarketData)
    Code:
    order1StopLoss = ExitShortStop(0, true, 1, order1.AvgFillPrice + stopLoss * TickSize, "order1StopLoss", "order1");
    Please let me know if I can assist you any further.
    Joydeep M.NinjaTrader Customer Service

    Comment

    Latest Posts

    Collapse

    Topics Statistics Last Post
    Started by Seastragg, Today, 04:41 PM
    0 responses
    2 views
    0 likes
    Last Post Seastragg  
    Started by n8dogg59, Today, 03:07 PM
    0 responses
    4 views
    0 likes
    Last Post n8dogg59  
    Started by Newtrader101, Today, 10:31 AM
    1 response
    19 views
    0 likes
    Last Post koganam
    by koganam
     
    Started by nepenthean, Today, 12:36 PM
    1 response
    10 views
    0 likes
    Last Post NinjaTrader_ChrisL  
    Started by sun0781, Yesterday, 05:02 PM
    1 response
    25 views
    0 likes
    Last Post NinjaTrader_ChrisL  
    Working...
    X