Here is the ThinkScript code:
def hlPivot;
if (atrReversal !=0)
{
hlPivot = percentageReversal / 100 + WildersAverage(TrueRange(high, close, low), atrLength) / close * atrReversal;
} else
{
hlPivot= percentageReversal / 100;
}
The issue I have with converting it is that "WildersAverage" and "TrueRange" are built in to ThinkScript but not NinjaScript. (As far as I'm aware.) Here are the ThinkScript pages describing the calculations for WildersAverage and TrueRange:
This is the best I've been able to replicate in NinjaScript using the ThinkScript formulas to calculate WildersAverage and TrueRange:
// TrueRange (high, low, close)
double TrueRange;
for (int i = 0; i < Bars.Count; i++)
{
double value1 = High[0] - Low[0];
double value2 = Math.Abs(High[0] - Close[1]);
double value3 = Math.Abs(Close[1] - Low[0]);
double TrueRange = Math.Max(value1, Math.Max(value2, value3));
TrueRangeSeries.Add(TrueRange);
}
// Wilder's Average (TrueRange, atrLength)
double MAWilders1 = SMA(TrueRange, atrLength)[0];
double[] result = {MAWilders1};
double alpha = 1.0 / atrLength;
for (int i = 1; i < TrueRange && i < atrLength; i++)
{
double MAWilders = alpha * TrueRange[i] + (1 - alpha) * result[i-1];
result = result.Concat(new[] {MAWilders}).ToArray();
}
// Define hlPivot
if (atrReversal != 0)
{
hlPivot = percentageReversal / 100 + MAWilders(TrueRange, atrLength) / Close[0] * atrReversal;
} else
{
hlPivot = percentageReversal / 100;
}
I was hoping somebody could point me in the right direction with this, or even tell me if it's possible at all.
Please excuse what may be very obvious mistakes here (I've only been coding for about a week)

Comment