Support Board
Date/Time: Fri, 31 Jul 2026 18:03:58 +0000
Post From: Subgraph value label no longer renders after recent update to 2919
| [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 |
