Support Board
Date/Time: Fri, 07 Feb 2025 02:49:26 +0000
Post From: Calculation Precedence And Auto looping
[2020-05-15 08:54:09] |
Flipper - Posts: 65 |
Code for the first Manual looping study SCSFExport scsf_ManualLoopExample(SCStudyInterfaceRef sc) { SCSubgraphRef NumberSubgraph = sc.Subgraph[0]; if (sc.SetDefaults) { // Set the configuration and defaults sc.GraphName = "Manual Loop Example"; sc.AutoLoop = 0; // no auto-looping NumberSubgraph.Name = "Number"; return; } int& num = sc.GetPersistentInt(0); int& LastBarIndexProcessed = sc.GetPersistentInt(1); SCString MessageText; // Do data processing for (int Index = sc.UpdateStartIndex; Index < sc.ArraySize; Index++) { num = Index; NumberSubgraph[Index] = sc.Volume[Index]; // One Time Processing per Bar if (Index == 0) LastBarIndexProcessed = -1; if (Index == LastBarIndexProcessed) return; LastBarIndexProcessed = Index; MessageText.Format("STUDY-1 Index: %d, num: %d Subgraph value last Bar: %.2f ", Index, num, NumberSubgraph[Index]); sc.AddMessageToLog(MessageText, 0); } } And Code for the second Study which references the first manual looping study. SCSFExport scsf_ExampleReference(SCStudyInterfaceRef sc) { SCSubgraphRef ReferenceSubgraph = sc.Subgraph[0]; SCInputRef StudyReference = sc.Input[0]; SCString MessageText; if (sc.SetDefaults) { sc.GraphName = "Example Reference"; sc.AutoLoop = 1; sc.CalculationPrecedence = LOW_PREC_LEVEL; ReferenceSubgraph.Name = "ReferanceSubgraph"; StudyReference.Name = "Auto Loop Study Reference"; StudyReference.SetStudySubgraphValues(0, 0); return; } sc.GetStudyArrayUsingID(StudyReference.GetStudyID(), StudyReference.GetSubgraphIndex(), ReferenceSubgraph); int num_FromLoopStudy = sc.GetPersistentIntFromChartStudy(sc.ChartNumber, StudyReference.GetStudyID(), 0); // One Time Processing per Bar int& LastBarIndexProcessed = sc.GetPersistentInt(1); if (sc.Index == 0) LastBarIndexProcessed = -1; if (sc.Index == LastBarIndexProcessed) return; LastBarIndexProcessed = sc.Index; MessageText.Format("STUDY-2 Index: %d, num: %d Subgraph value last Bar: %.2f, Subgraph One Bar ago: %.2f", sc.Index, num_FromLoopStudy, ReferenceSubgraph[sc.Index], ReferenceSubgraph[sc.Index-1]); sc.AddMessageToLog(MessageText, 0); } Date Time Of Last Edit: 2020-05-15 08:55:06
|