Support Board
Date/Time: Wed, 27 Nov 2024 13:52:10 +0000
Post From: Percent Change Since Open study - not starting from zero
[2014-08-28 07:43:43] |
Sierra Chart Engineering - Posts: 104368 |
Below is the source code for the study. Make changes to it as you require. Here is the documentation for compiling source code into a DLL: https://www.sierrachart.com/index.php?page=doc/doc_BuildCustomStudiesDLL.html /*==========================================================================*/ SCSFExport scsf_PercentChangeSinceOpen(SCStudyInterfaceRef sc) { SCSubgraphRef PercentChange = sc.Subgraph[0]; SCSubgraphRef ZeroLine = sc.Subgraph[1]; SCInputRef StartTime = sc.Input[0]; if (sc.SetDefaults) { sc.GraphName = "Percent Change Since Open"; sc.AutoLoop = 1; sc.GraphRegion = 1; sc.ValueFormat = 2; PercentChange.Name = "Percent Change"; PercentChange.PrimaryColor = RGB(0,255,0); PercentChange.DrawStyle = DRAWSTYLE_LINE; PercentChange.LineWidth = 1; PercentChange.DrawZeros= true; ZeroLine. Name= "Zero Line"; ZeroLine.PrimaryColor = RGB(255,255,0); ZeroLine.DrawStyle = DRAWSTYLE_LINE; ZeroLine.LineWidth = 1; ZeroLine.DrawZeros= true; StartTime.Name = "Start Time"; StartTime.SetCustomInputStrings("Trading Day Start Time;First Bar In Chart"); StartTime.SetCustomInputIndex(0); return; } float& OpenValue = sc.PersistVars->f1; SCDateTime& SessionStart = sc.PersistVars->scdt1; if (sc.Index == 0) { OpenValue = sc.Open[0]; SessionStart = sc.GetTradingDayStartDateTimeOfBar(sc.BaseDateTimeIn[0]); } SCDateTime BarSessionStart = sc.GetTradingDayStartDateTimeOfBar(sc.BaseDateTimeIn[sc.Index]); if (BarSessionStart != SessionStart) { if(StartTime.GetIndex() == 0) OpenValue = sc.Open[sc.Index]; SessionStart = BarSessionStart; } if(OpenValue == 0) PercentChange[sc.Index] = 0; else PercentChange[sc.Index] = (sc.Close[sc.Index] - OpenValue) / OpenValue * 100.0f; } 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 |