Support Board
Date/Time: Thu, 30 Jul 2026 11:34:40 +0000
Subgraph value label no longer renders after recent update to 2919
View Count: 332
| [2026-06-15 01:00:32] |
| User708541 - Posts: 205 |
|
Subgraph value label with LL_VALUE_ALIGN_VALUES_SCALE no longer renders after recent update (worked on 2915, not 2919) Custom ACSIL study. A subgraph configured with LineLabel = LL_DISPLAY_VALUE | LL_VALUE_ALIGN_VALUES_SCALE (UI: Value label = "Right Side Value Scale") stopped displaying its value in the right-side values scale after updating from 2915 to 2919. The subgraph carries a value only on the last bar or two (DrawZeros = false elsewhere); it's a current-value indicator, not a continuous line. Confirmed: the value is present and correct (shows in the Region Data Line), it's within the visible scale range, and the subgraph draws (a guide segment appears at the right height). A built-in MACD added to the same region, same scale, with the identical "Right Side Value Scale" value-label setting, renders its tag normally — the only apparent difference is that the MACD has a value on every bar. Tested with no effect: draw styles Point, Line, and "Subgraph Name and Value Labels Only"; all six horizontal alignment options; value written to sc.ArraySize-1. Reproduces on a clean chart. What changed in the values-scale handling, and what's now required for a sparse/DrawZeros=false subgraph to display its value on the scale? |
| [2026-06-15 13:46:43] |
| Sierra_Chart Engineering - Posts: 24344 |
|
We are unaware of any changes which would cause this problem. We need a way to be able to test this. 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, use the Teton service: Sierra Chart Teton Futures Order Routing |
| [2026-06-15 15:59:14] |
| User708541 - Posts: 205 |
|
Do you need something from me?
|
| [2026-06-15 21:02:10] |
| TriStar Trading - Posts: 198 |
|
I have the same issue when going from 2918 to 2919 but only on a select few of my custom studies. The select few were all written at the same time. Below is the cpp for one of the programs. All it does is plot lines for values entered as inputs. I have other custom studies that work just fine. Let me know if this helps or you need anything more. Thanks, Mike #include "sierrachart.h" SCDLLName("TriStar_FuseLines_vPROD") SCSFExport scsf_TriStar_FuseLines_vPROD(SCStudyInterfaceRef sc) { // Subgraphs for the 5 level lines SCSubgraphRef Fuse = sc.Subgraph[0]; SCSubgraphRef FuseR1 = sc.Subgraph[1]; SCSubgraphRef FuseR2 = sc.Subgraph[2]; SCSubgraphRef FuseR3 = sc.Subgraph[3]; SCSubgraphRef GBX = sc.Subgraph[4]; // Input references for level values SCInputRef FuseValue = sc.Input[0]; SCInputRef FuseR1Value = sc.Input[1]; SCInputRef FuseR2Value = sc.Input[2]; SCInputRef FuseR3Value = sc.Input[3]; SCInputRef GbxValue = sc.Input[4]; // Input references for display options SCInputRef ShowValues = sc.Input[5]; SCInputRef ShowNames = sc.Input[6]; // Input references for level names SCInputRef FuseName = sc.Input[7]; SCInputRef FuseR1Name = sc.Input[8]; SCInputRef FuseR2Name = sc.Input[9]; SCInputRef FuseR3Name = sc.Input[10]; SCInputRef GbxName = sc.Input[11]; if (sc.SetDefaults) { sc.GraphName = "TST Fuse Lines vPROD"; sc.AutoLoop = 0; // Manual looping sc.GraphRegion = 0; sc.DrawStudyUnderneathMainPriceGraph = 1; sc.GlobalDisplayStudySubgraphsNameAndValue = 0; sc.DisplayStudyName = 0; sc.DisplayStudyInputValues = 0; sc.ScaleRangeType = SCALE_SAMEASREGION; Fuse.Name = "Fuse"; Fuse.DrawStyle = DRAWSTYLE_LINE; Fuse.PrimaryColor = RGB(255, 0, 255); Fuse.LineWidth = 1; Fuse.DrawZeros = false; FuseR1.Name = "Fuse R1"; FuseR1.DrawStyle = DRAWSTYLE_LINE; FuseR1.PrimaryColor = RGB(255, 0, 255); FuseR1.LineWidth = 1; FuseR1.DrawZeros = false; FuseR2.Name = "Fuse R2"; FuseR2.DrawStyle = DRAWSTYLE_LINE; FuseR2.PrimaryColor = RGB(255, 0, 255); FuseR2.LineWidth = 1; FuseR2.DrawZeros = false; FuseR3.Name = "Fuse R3"; FuseR3.DrawStyle = DRAWSTYLE_LINE; FuseR3.PrimaryColor = RGB(255, 0, 255); FuseR3.LineWidth = 1; FuseR3.DrawZeros = false; GBX.Name = "Globex Fuse"; GBX.DrawStyle = DRAWSTYLE_LINE; GBX.PrimaryColor = RGB(255, 0, 255); GBX.LineWidth = 1; GBX.DrawZeros = false; FuseValue.Name = "Fuse Value"; FuseValue.SetFloat(0.0f); FuseR1Value.Name = "Fuse R1 Value"; FuseR1Value.SetFloat(0.0f); FuseR2Value.Name = "Fuse R2 Value"; FuseR2Value.SetFloat(0.0f); FuseR3Value.Name = "Fuse R3 Value"; FuseR3Value.SetFloat(0.0f); GbxValue.Name = "Globex Fuse Value"; GbxValue.SetFloat(0.0f); ShowValues.Name = "Show Values"; ShowValues.SetYesNo(1); ShowNames.Name = "Show Names"; ShowNames.SetYesNo(1); FuseName.Name = "Fuse Short Name"; FuseName.SetString("Fuse"); FuseR1Name.Name = "Fuse R1 Short Name"; FuseR1Name.SetString("R1"); FuseR2Name.Name = "Fuse R2 Short Name"; FuseR2Name.SetString("R2"); FuseR3Name.Name = "Fuse R3 Short Name"; FuseR3Name.SetString("R3"); GbxName.Name = "Globex Short Name"; GbxName.SetString("GBX"); return; } // Authorization check if (sc.IsUserAllowedForSCDLLName == false) { if (sc.Index == 0) sc.AddMessageToLog("This study requires authorization. Please contact TriStar Trading at mike32769@proton.me for access.", 1); return; } // Rebuild labels and names only during full recalculation if (sc.IsFullRecalculation) { int labelFlags = 0; if (ShowValues.GetYesNo()) { labelFlags |= LL_DISPLAY_VALUE; labelFlags |= LL_VALUE_ALIGN_RIGHT; labelFlags |= LL_VALUE_REVERSE_COLORS_INV; } if (ShowNames.GetYesNo()) { labelFlags |= LL_DISPLAY_NAME; labelFlags |= LL_NAME_ALIGN_FAR_RIGHT; Fuse.ShortName = FuseName.GetString(); FuseR1.ShortName = FuseR1Name.GetString(); FuseR2.ShortName = FuseR2Name.GetString(); FuseR3.ShortName = FuseR3Name.GetString(); GBX.ShortName = GbxName.GetString(); } else { Fuse.ShortName = ""; FuseR1.ShortName = ""; FuseR2.ShortName = ""; FuseR3.ShortName = ""; GBX.ShortName = ""; } Fuse.LineLabel = labelFlags; FuseR1.LineLabel = labelFlags; FuseR2.LineLabel = labelFlags; FuseR3.LineLabel = labelFlags; GBX.LineLabel = labelFlags; } // Cache input values once per call const float fuseVal = FuseValue.GetFloat(); const float fuseR1Val = FuseR1Value.GetFloat(); const float fuseR2Val = FuseR2Value.GetFloat(); const float fuseR3Val = FuseR3Value.GetFloat(); const float gbxVal = GbxValue.GetFloat(); int start = sc.UpdateStartIndex; if (start < 0) start = 0; for (int i = start; i < sc.ArraySize; ++i) { Fuse = fuseVal; FuseR1 = fuseR1Val; FuseR2 = fuseR2Val; FuseR3 = fuseR3Val; GBX = gbxVal; } } |
Private File |
| [2026-06-15 23:47:03] |
| TriStar Trading - Posts: 198 |
|
I assigned the line label directly like this and it worked. Fuse.LineLabel = LL_DISPLAY_NAME | LL_NAME_ALIGN_CENTER | LL_NAME_ALIGN_FAR_RIGHT | LL_DISPLAY_VALUE | LL_VALUE_ALIGN_CENTER | LL_VALUE_ALIGN_RIGHT | LL_VALUE_REVERSE_COLORS_INV; FWIW? This is the only place I have used this in all my code: |= See the code above for reference in its use. |
| [2026-06-16 03:27:54] |
| Sierra_Chart Engineering - Posts: 24344 |
|
We are checking on this.
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, use the Teton service: Sierra Chart Teton Futures Order Routing |
| [2026-06-16 07:16:28] |
| Sierra_Chart Engineering - Posts: 24344 |
|
We are working on the problem but will not have it resolved until tomorrow. Also this code is completely wrong: for (int i = start; i < sc.ArraySize; ++i)
{ Fuse = fuseVal; FuseR1 = fuseR1Val; FuseR2 = fuseR2Val; FuseR3 = fuseR3Val; GBX = gbxVal; } If it compiles, the compiler is not detecting a problem when it should. It needs to be: for (int i = start; i < sc.ArraySize; ++i)
{ Fuse.Data[i] = fuseVal; FuseR1.Data[i] = fuseR1Val; FuseR2.Data[i] = fuseR2Val; FuseR3.Data[i] = fuseR3Val; GBX.Data[i] = gbxVal; } 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, use the Teton service: Sierra Chart Teton Futures Order Routing Date Time Of Last Edit: 2026-06-16 07:17:07
|
| [2026-06-16 20:44:07] |
| Sierra_Chart Engineering - Posts: 24344 |
|
This should now be resolved in version 2920.
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, use the Teton service: Sierra Chart Teton Futures Order Routing |
To post a message in this thread, you need to log in with your Sierra Chart account:
