Login Page - Create Account

Support Board


Date/Time: Mon, 23 Dec 2024 14:47:57 +0000



ACSIL: accessing the DailyChange (DChg)

View Count: 1545

[2015-10-02 07:23:10]
User44052 - Posts: 34
At the top of every chart, SC displays the "Daily Change" (it shows in the chart's Region 1 as "DChg").

Is this variable accessible through ACSIL? If so, how?

Thanks in advance.
[2015-10-02 08:24:29]
Sierra Chart Engineering - Posts: 104368
You can calculate this as follows:

float DailyChange = sc.SymbolData->LastTradePrice - sc.SymbolData->SettlementPrice;
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
[2015-10-03 08:25:01]
User44052 - Posts: 34
Hi.

The solution given seems to work only when the market is open. Running my study today (on the weekend) seems to reference the very last SettlementPrice for the entire chart.

I need to reference it dynamically, i.e. as it changes each day.

Any thoughts?
Date Time Of Last Edit: 2015-10-03 08:25:14
[2015-10-03 08:35:57]
Sierra Chart Engineering - Posts: 104368
Therefore, you will want to use this function:
sc.GetOHLCForDate

Refer to the ACSIL Functions page for the details for this function.
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
[2015-10-05 22:01:31]
User44052 - Posts: 34
Thanks for the suggestions. This is how I ended up doing this:

  float myDailyChange;

  float myOpen, myHigh, myLow;
  float previousDayClose;
  
  SCDateTime todaysDate = sc.BaseDateTimeIn[sc.Index].GetDate();
  SCDateTime previousTradingDay;

  if (todaysDate.GetDayOfWeek() == MONDAY)
  {
    previousTradingDay = todaysDate - 3;
  }
  else
  {
    previousTradingDay = todaysDate - 1;
  }

  sc.GetOHLCForDate(previousTradingDay, myOpen, myHigh, myLow, previousDayClose);

  myDailyChange = sc.Close[sc.Index] - previousDayClose;
[2015-10-06 02:48:58]
ejtrader - Posts: 688
this code might not account for holidays.

I think there should be a function for getting a valid trading day.
[2015-10-06 19:31:23]
User44052 - Posts: 34
You're absolutely right, ejtrader - thanks!

And yes, I did find a built-in study (called "Period OHLC-Variable Period") which looks like it will work.

Thanks again.

To post a message in this thread, you need to log in with your Sierra Chart account:

Login

Login Page - Create Account