Login Page - Create Account

Support Board


Date/Time: Wed, 12 Feb 2025 04:30:31 +0000



Post From: Access to old Support Board

[2020-09-29 04:41:45]
Kiwi - Posts: 375
So I've attached the code file (.cpp) and the dll compiled with Sierra Chart 2175 here. I see I was in my 'compact is better' phase back in 2012.

The code was just:

#include "sierrachart.h"

SCDLLName("* Kiwi 12 Recovery *")

/*==========================================================================*/
SCSFExport scsf_RecalcChart(SCStudyInterfaceRef sc) {
if (sc.SetDefaults) {
sc.GraphName = "Recalc";
sc.StudyDescription = "Recalc Chart every x secs based on real time";
sc.Subgraph[0].Name = "Strobe";
sc.Subgraph[1].Name = "Time";
sc.Subgraph[0].DrawStyle=DRAWSTYLE_IGNORE;
sc.Subgraph[1].DrawStyle=DRAWSTYLE_IGNORE;
sc.Input[0].Name="Seconds between recalcs";
sc.Input[0].SetInt(60);
sc.Input[1].Name="Also reload chart data";
sc.Input[1].SetYesNo(0);
sc.UpdateAlways=1;
return;
}

if (sc.CurrentSystemDateTime.GetTime() % sc.Input[0].GetInt() == 0) {
if (sc.Subgraph[0][sc.ArraySize-1] < 999660) {
sc.Subgraph[0][sc.ArraySize-1] = 999666;
sc.Subgraph[1][sc.ArraySize-1] = sc.CurrentSystemDateTime.GetTime();
sc.FlagFullRecalculate = 1;
if (sc.Input[1].GetYesNo())
sc.FlagToReloadChartData = 1;
}
else
sc.Subgraph[0][sc.ArraySize-1] = 0;
}
}

/*==========================================================================*/
SCSFExport scsf_TInt(SCStudyGraphRef sc) {
if (sc.SetDefaults) {
sc.GraphName="TI";
sc.StudyDescription="Tick Interpretter";
sc.Subgraph[0].Name="TI+"; sc.Subgraph[0].DrawStyle = DRAWSTYLE_BAR;
sc.Subgraph[1].Name="TI-"; sc.Subgraph[1].DrawStyle = DRAWSTYLE_BAR;
sc.Subgraph[6].Name="Up Colour";
sc.Subgraph[7].Name="Dn Colour";
sc.Subgraph[8].Name="Neutral Colour";
sc.Input[2].Name="Cut Off 1"; sc.Input[2].SetInt(500);
sc.Input[3].Name="Cut Off 2"; sc.Input[3].SetInt(1100);
sc.DrawZeros=0;
return;
}

int& cutoff1 = sc.Input[2].IntValue;
int& cutoff2 = sc.Input[3].IntValue;
SCSubgraphRef value1 = sc.Subgraph[0], value2 = sc.Subgraph[1], answer = sc.Subgraph[5];

for ( int i=sc.UpdateStartIndex; i < sc.ArraySize; i++)
{
float medianprice = (sc.High[i] + sc.Low[i]) / 2;
answer[i] = 0;
if(sc.High[i] > cutoff1) answer[i] = answer[i] + (sc.High[i] - cutoff1);
if(medianprice > cutoff1) answer[i] = answer[i] + (medianprice - cutoff1);
if(sc.High[i] > cutoff2) answer[i] = answer[i] + 2.0*(sc.High[i] - cutoff2);
if(sc.Low[i] < -cutoff1) answer[i] = answer[i] - (-cutoff1 - sc.Low[i]);
if(medianprice < -cutoff1) answer[i] = answer[i] - (-cutoff1 - medianprice);
if(sc.Low[i] < -cutoff2) answer[i] = answer[i] - 2.0*(-cutoff2 - sc.Low[i]);

value1[i] = (answer[i-1] + 2.0*answer[i]) / 3.0;
//value2[i] = (answer[i-2] + 2.0*answer[i-1]) / 3.0;

if(value1[i] > 0)
sc.Subgraph[0].DataColor[i] = sc.Subgraph[1].DataColor[i] = sc.Subgraph[6].PrimaryColor;
else if(value1[i] < 0)
sc.Subgraph[0].DataColor[i] = sc.Subgraph[1].DataColor[i] = sc.Subgraph[7].PrimaryColor;
else
sc.Subgraph[0].DataColor[i] = sc.Subgraph[1].DataColor[i] = sc.Subgraph[8].PrimaryColor;
}
}


attachmentkiwi12_partial.cpp - Attached On 2020-09-29 04:40:18 UTC - Size: 3.28 KB - 325 views
attachmentkiwi12_partial_64.dll - Attached On 2020-09-29 04:40:42 UTC - Size: 897.5 KB - 317 views