The Kilinger chart is plotting the arrows above instead of on the Zero Line and making the chart small.
It works on normal stocks but not on futures.
Does the kilinger work with futures or is something wrong in my code?
declare lower;
input MALength = 13;
def DM = high - low;
def Trend = if hlc3 > hlc3[1] then 1 else -1;
def CM = DM + if Trend == Trend[1] then CM[1] else DM[1];
def VForce = if CM != 0 then Trend * 100 * volume * AbsValue(2 * DM / CM - 1) else VForce[1];
plot KVOsc = ExpAverage(VForce, 34) - ExpAverage(VForce, 55);
plot TriggerLine = Average(KVOsc, MALength);
plot ZeroLine = 0;
KVOsc.SetDefaultColor(GetColor(8));
TriggerLine.SetDefaultColor(GetColor(1));
ZeroLine.SetDefaultColor(GetColor(5));
plot ArrowUp0 = if KVOsc crosses above zeroline
then low
else Double.NaN;
ArrowUp0.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
ArrowUp0.SetLineWeight(3);
ArrowUp0.SetDefaultColor(Color.GREEN);
plot ArrowDN0 = if KVOsc crosses below zeroline
then high
else Double.NaN;
ArrowDN0.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
ArrowDN0.SetLineWeight(3);
ArrowDN0.SetDefaultColor(Color.RED);
plot ArrowUp1 = if KVOsc crosses above triggerLine
then low
else Double.NaN;
ArrowUp1.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
ArrowUp1.SetLineWeight(3);
ArrowUp1.SetDefaultColor(Color.yellow);
plot ArrowDN1 = if KVOsc crosses below triggerLine
then high
else Double.NaN;
ArrowDN1.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
ArrowDN1.SetLineWeight(3);
ArrowDN1.SetDefaultColor(Color.yellOW);
plot ArrowUp2 = if triggerline crosses above zeroLine
then low
else Double.NaN;
ArrowUp2.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
ArrowUp2.SetLineWeight(3);
ArrowUp2.SetDefaultColor(Color.yellow);
plot ArrowDN2 = if triggerline crosses below zeroline
then high
else Double.NaN;
ArrowDN2.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
ArrowDN2.SetLineWeight(3);
ArrowDN2.SetDefaultColor(Color.yellOW);
It works on normal stocks but not on futures.
Does the kilinger work with futures or is something wrong in my code?
declare lower;
input MALength = 13;
def DM = high - low;
def Trend = if hlc3 > hlc3[1] then 1 else -1;
def CM = DM + if Trend == Trend[1] then CM[1] else DM[1];
def VForce = if CM != 0 then Trend * 100 * volume * AbsValue(2 * DM / CM - 1) else VForce[1];
plot KVOsc = ExpAverage(VForce, 34) - ExpAverage(VForce, 55);
plot TriggerLine = Average(KVOsc, MALength);
plot ZeroLine = 0;
KVOsc.SetDefaultColor(GetColor(8));
TriggerLine.SetDefaultColor(GetColor(1));
ZeroLine.SetDefaultColor(GetColor(5));
plot ArrowUp0 = if KVOsc crosses above zeroline
then low
else Double.NaN;
ArrowUp0.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
ArrowUp0.SetLineWeight(3);
ArrowUp0.SetDefaultColor(Color.GREEN);
plot ArrowDN0 = if KVOsc crosses below zeroline
then high
else Double.NaN;
ArrowDN0.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
ArrowDN0.SetLineWeight(3);
ArrowDN0.SetDefaultColor(Color.RED);
plot ArrowUp1 = if KVOsc crosses above triggerLine
then low
else Double.NaN;
ArrowUp1.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
ArrowUp1.SetLineWeight(3);
ArrowUp1.SetDefaultColor(Color.yellow);
plot ArrowDN1 = if KVOsc crosses below triggerLine
then high
else Double.NaN;
ArrowDN1.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
ArrowDN1.SetLineWeight(3);
ArrowDN1.SetDefaultColor(Color.yellOW);
plot ArrowUp2 = if triggerline crosses above zeroLine
then low
else Double.NaN;
ArrowUp2.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
ArrowUp2.SetLineWeight(3);
ArrowUp2.SetDefaultColor(Color.yellow);
plot ArrowDN2 = if triggerline crosses below zeroline
then high
else Double.NaN;
ArrowDN2.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
ArrowDN2.SetLineWeight(3);
ArrowDN2.SetDefaultColor(Color.yellOW);