Login Page - Create Account

Support Board


Date/Time: Sat, 01 Mar 2025 09:06:08 +0000



Post From: ACSIL howto get working OrderID/FilledPrice in ReplayMode (Sim)

[2018-12-17 05:30:34]
Sierra Chart Engineering - Posts: 104368
3. Here is the code example:

SCSFExport scsf_GetOrderFillEntryExample(SCStudyInterfaceRef sc) 
{ 
  //Define references to the Subgraphs and Inputs for easy reference. 
  //In this particular example, these are not used but this study is configured as a typical trading study. 
  SCSubgraphRef BuyEntrySubgraph = sc.Subgraph[0]; 
  SCSubgraphRef BuyExitSubgraph = sc.Subgraph[1]; 
  SCSubgraphRef SellEntrySubgraph = sc.Subgraph[2]; 
  SCSubgraphRef SellExitSubgraph = sc.Subgraph[3]; 
 
  SCInputRef Enabled = sc.Input[0]; 
 
  if (sc.SetDefaults) 
  { 
    // Set the study configuration and defaults. 
 
    sc.GraphName = "GetOrderFillEntry Example"; 
 
    BuyEntrySubgraph.Name = "Buy Entry"; 
    BuyEntrySubgraph.DrawStyle = DRAWSTYLE_ARROW_UP; 
    BuyEntrySubgraph.PrimaryColor = RGB(0, 255, 0); 
    BuyEntrySubgraph.LineWidth = 2; 
    BuyEntrySubgraph.DrawZeros = false; 
 
    BuyExitSubgraph.Name = "Buy Exit"; 
    BuyExitSubgraph.DrawStyle = DRAWSTYLE_ARROW_DOWN; 
    BuyExitSubgraph.PrimaryColor = RGB(255, 128, 128); 
    BuyExitSubgraph.LineWidth = 2; 
    BuyExitSubgraph.DrawZeros = false; 
 
    SellEntrySubgraph.Name = "Sell Entry"; 
    SellEntrySubgraph.DrawStyle = DRAWSTYLE_ARROW_DOWN; 
    SellEntrySubgraph.PrimaryColor = RGB(255, 0, 0); 
    SellEntrySubgraph.LineWidth = 2; 
    SellEntrySubgraph.DrawZeros = false; 
 
    SellExitSubgraph.Name = "Sell Exit"; 
    SellExitSubgraph.DrawStyle = DRAWSTYLE_ARROW_UP; 
    SellExitSubgraph.PrimaryColor = RGB(128, 255, 128); 
    SellExitSubgraph.LineWidth = 2; 
    SellExitSubgraph.DrawZeros = false; 
 
    Enabled.Name = "Enabled"; 
    Enabled.SetYesNo(0); 
    Enabled.SetDescription("This input enables the study and allows it to function. Otherwise, it does nothing."); 
 
    // This is false by default. Orders will be simulated. 
    sc.SendOrdersToTradeService = false; 
 
    sc.AllowMultipleEntriesInSameDirection = false; 
 
    //This must be equal to or greater than the order quantities you will be  submitting orders for. 
    sc.MaximumPositionAllowed = 10000; 
 
    sc.SupportReversals = true; 
    sc.AllowOppositeEntryWithOpposingPositionOrOrders = true; 
 
    //  This variable controls whether to use or not use attached orders that are configured on the Trade Window for the chart. 
    sc.SupportAttachedOrdersForTrading = false; 
 
    //This variable controls whether to use the "Use Attached Orders" setting on the Trade Window for the chart 
    sc.UseGUIAttachedOrderSetting = false; 
 
    sc.CancelAllOrdersOnEntriesAndReversals = false; 
    sc.AllowEntryWithWorkingOrders = false; 
    sc.CancelAllWorkingOrdersOnExit = true; 
    sc.AllowOnlyOneTradePerBar = false; 
 
    //This needs to be set to true when a trading study uses trading functions. 
    sc.MaintainTradeStatisticsAndTradesData = true; 
 
    sc.AutoLoop = true; 
    sc.GraphRegion = 0; 
 
    return; 
  } 
 
  //These must be outside of the sc.SetDefaults code block since they have a dependency upon an actual chart object existing 
  sc.SupportTradingScaleIn = 0; 
  sc.SupportTradingScaleOut = 0; 
 
 
  if (!Enabled.GetYesNo()) 
    return; 
 
  if (sc.LastCallToFunction) 
    return;//nothing to do 
 
  int& PriorOrderFillEntrySize = sc.GetPersistentInt(1); 
 
  int CurrentOrderFillEntrySize = sc.GetOrderFillArraySize(); 
 
  if (CurrentOrderFillEntrySize != PriorOrderFillEntrySize) 
  { 
    PriorOrderFillEntrySize = CurrentOrderFillEntrySize; 
    if (CurrentOrderFillEntrySize > 0) 
    { 
      s_SCOrderFillData OrderFillData; 
 
      sc.GetOrderFillEntry(CurrentOrderFillEntrySize - 1, OrderFillData); 
      SCString OrderFillMessage; 
 
      uint32_t OrderQuantity = OrderFillData.Quantity; 
 
      OrderFillMessage.Format("New order fill: InternalOrderID = %u,  FillPrice = %f, Quantity = %u", OrderFillData.InternalOrderID, OrderFillData.FillPrice, OrderQuantity); 
 
      sc.AddMessageToLog(OrderFillMessage, 0); 
 
    } 
 
  } 
}

Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing