AssignValueColor changes all colors of chart into a single color, and it won't assign value to start counting bars in the title area.

Mr_Wheeler

Member
What's it suppose to look like.

ssA9LND.png



How it looks now.

psanVz5.png


Code:
declare lower;

#zero line
plot ZeroLine = 0;
ZeroLine.SetDefaultColor(GetColor(0));

input Klength = 20; 
input price = close;
input ATRmult = 1.5;

def vClose = close;
def nan = Double.NaN;
def bn = BarNumber();



def K = (Highest(high, Klength) + Lowest(low, Klength)) /
2 + ExpAverage(close, Klength);
plot Momo = Inertia(price - K / 2, Klength);
Momo.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
Momo.SetLineWeight(3);
Momo.AssignValueColor(if Momo > Momo[1] and Momo > 0
then Color.CYAN
else if Momo > 0 and Momo < Momo[1]
then Color.BLUE
else if Momo < 0 and Momo < Momo[1]
then Color.WHITE
else Color.YELLOW);



#These code lines give & retract value

def barUp = vClose > vClose[1];
def barDown = vClose < vClose[1];
def barUpCount = CompoundValue(1, if barUp then barUpCount[1] + 1 else 0, 0);
def barDownCount = CompoundValue(1, if barDown then barDownCount[1] - 1 else 0, 0);


#asign value to colored bars
Momo.AssignValueColor(Color.CYAN);
Momo.AssignValueColor(Color.blue);


#creates label to tell you to buy or hold
AddLabel(yes, if barUpCount [+2] then "Buy!Buy!Buy!Buy!Buy!Buy!" else if barDownCount [+2] then "TAKE PROFIT NOW!_____TAKE PROFIT NOW!" else "Stand by", if barUpCount [+2] then Color.GREEN else if barDownCount[+2] then Color.WHITE else Color.ORANGE);
 

Mr_Wheeler

Member
Still All blue.

Code:
declare lower;

#zero line
plot ZeroLine = 0;
ZeroLine.SetDefaultColor(GetColor(0));

input Klength = 20;
input price = close;
input ATRmult = 1.5;

def vClose = close;
def nan = Double.NaN;
def bn = BarNumber();



def K = (Highest(high, Klength) + Lowest(low, Klength)) /
2 + ExpAverage(close, Klength);
plot Momo = Inertia(price - K / 2, Klength);
Momo.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
Momo.SetLineWeight(3);
Momo.AssignValueColor(if Momo > Momo[1] and Momo > 0
then Color.CYAN
else if Momo > 0 and Momo < Momo[1]
then Color.BLUE
else if Momo < 0 and Momo < Momo[1]
then Color.WHITE
else Color.YELLOW);

#These code lines give & retract value

Momo.AssignValueColor(Color.CYAN);
Momo.AssignValueColor(Color.blue);


def momoUp = vClose > vClose[1];
def momoDown = vClose < vClose[1];

def momoUpCount = CompoundValue(1, if momoUp then momoUpCount[1] + 1 else 0, 0);
def momoDownCount = CompoundValue(1, if momoDown then momoDownCount[1] - 1 else 0, 0);



#creates label to tell you to buy or hold
AddLabel(yes, if momoUpCount [+2] then "Buy!Buy!Buy!Buy!Buy!Buy!" else if momoDownCount [+2] then "TAKE PROFIT NOW!_____TAKE PROFIT NOW!" else "Stand by", if momoUpCount [+2] then Color.GREEN else if momoDownCount[+2] then Color.WHITE else Color.ORANGE);
 

SleepyZ

Well-known member
Still All blue.

Code:
declare lower;

#zero line
plot ZeroLine = 0;
ZeroLine.SetDefaultColor(GetColor(0));

input Klength = 20;
input price = close;
input ATRmult = 1.5;

def vClose = close;
def nan = Double.NaN;
def bn = BarNumber();



def K = (Highest(high, Klength) + Lowest(low, Klength)) /
2 + ExpAverage(close, Klength);
plot Momo = Inertia(price - K / 2, Klength);
Momo.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
Momo.SetLineWeight(3);
Momo.AssignValueColor(if Momo > Momo[1] and Momo > 0
then Color.CYAN
else if Momo > 0 and Momo < Momo[1]
then Color.BLUE
else if Momo < 0 and Momo < Momo[1]
then Color.WHITE
else Color.YELLOW);

#These code lines give & retract value

Momo.AssignValueColor(Color.CYAN);
Momo.AssignValueColor(Color.blue);


def momoUp = vClose > vClose[1];
def momoDown = vClose < vClose[1];

def momoUpCount = CompoundValue(1, if momoUp then momoUpCount[1] + 1 else 0, 0);
def momoDownCount = CompoundValue(1, if momoDown then momoDownCount[1] - 1 else 0, 0);



#creates label to tell you to buy or hold
AddLabel(yes, if momoUpCount [+2] then "Buy!Buy!Buy!Buy!Buy!Buy!" else if momoDownCount [+2] then "TAKE PROFIT NOW!_____TAKE PROFIT NOW!" else "Stand by", if momoUpCount [+2] then Color.GREEN else if momoDownCount[+2] then Color.WHITE else Color.ORANGE);
Delete the following two lines of code in above post. You have 3 momo assignvaluecolor codes. You can only have one.

Ruby:
Momo.AssignValueColor(Color.CYAN);
Momo.AssignValueColor(Color.blue);
 

Mr_Wheeler

Member
Is there a what you can add a 2nd functionality to a plot?

I'm not sure if there's code such as "IF" that's required.

This is the code that I have.

Code:
plot MomoDOWN = Inertia(price - B / 2, Blength);

I need add the following.

Code:
 = if mode == mode.histogram and barUpCount > 0 then barUpCount else nan;
 

Joshua

Active member
I don't think so, at least not directly... but you could add a painting strategy constant as an input, check the input throughout the code's logic and make any adjustments at that level, and then set painting strategy to the input's value when you plot. The set painting strategy function also accepts logical expressions, they just can't be dynamic.
 
Last edited:

halcyonguy

Well-known member
VIP
Is there a what you can add a 2nd functionality to a plot?

I'm not sure if there's code such as "IF" that's required.

This is the code that I have.

Code:
plot MomoDOWN = Inertia(price - B / 2, Blength);

I need add the following.

Code:
 = if mode == mode.histogram and barUpCount > 0 then barUpCount else nan;

i'm not sure about histogram, but i have experimented with lines and dashes for paintingstrategy and curve, after seeing this post

maybe this will help.
i added notes to the end this study i made, describing several similar situations.
https://usethinkscript.com/threads/...remove-it-once-price-hits-it.5257/#post-75706


Code:
# ========================================

# i used curve,  because curve.dash line always looks like a dash line

# this works,  but points are drawn much thicker than if a line.
#  and paint.dash looks solid when zoomed out.  didn't use this

# paint , line , points
#input lines = {default LINE, POINTS};
#def paint = if lines == lines.POINTS then PaintingStrategy.POINTS else  PaintingStrategy.LINE;
# plot x1 =
#x1.SetPaintingStrategy(paint);


# this doesn't work
# chg line if price crosses it
#def paint1hi = if d1hix > 0 then PaintingStrategy.POINTS else  PaintingStrategy.LINE;

#signal.SetPaintingStrategy(if crossingType == CrossingType.above
#    then PaintingStrategy.BOOLEAN_ARROW_UP
#    else PaintingStrategy.BOOLEAN_ARROW_DOWN);

# ========================================

# input crossed_line = {"invisible", "dots", default "dashes", "solid"};
# this works , but the PaintingStrategy.dashes  line looks like a solid line when zoomed out
# --------------------
#input test_price_line1 = no;
#plot line1x = if ( test_price_line1 and (crslin == 2 or crslin == 3 or crslin == 4)) then line1 else na;
#line1x.SetDefaultColor(Color.LIGHT_GREEN);
#line1x.HideBubble();
#line1x.SetPaintingStrategy(if crossed_line == crossed_line."dots" then PaintingStrategy.points
#  else if crossed_line == crossed_line."dashes" then PaintingStrategy.dashes
#  else if crossed_line == crossed_line."solid" then PaintingStrategy.line
#  else PaintingStrategy.squares);
# -------------------

# this works.  curve.dash  looks like a dash always
#plot L1_dash = if crslin == 2 then line1 else na;
#L1_dash.SetStyle(curve.short_dash);
#L1_dash.SetDefaultColor(Color.LIGHT_GREEN);
#L1_dash.HideBubble();
#plot L1_solid = if crslin == 3 then line1 else na;
#L1_solid.SetStyle(curve.firm);
#L1_solid.SetDefaultColor(Color.LIGHT_GREEN);
#L1_solid.HideBubble();


# this doesn't work
#plot line1x = if (crslin == 2 or crslin == 3) then line1 else na;
#line1x.SetDefaultColor(Color.LIGHT_GREEN);
#line1x.HideBubble();
#line1x.SetStyle(if crossed_line == crossed_line."dashes" then curve.short_dash else if crossed_line == crossed_line."solid" then curve.firm else curve.long_dash);

# ------------------------

#z1hi.SetPaintingStrategy(paint1hi);
#z1hi.SetPaintingStrategy(if d1hix > 0 then PaintingStrategy.points else PaintingStrategy.line);

# this has error
#z1hi.SetStyle(if d1hix > 0 then Curve.POINTS else Curve.FIRM);

# [URL]https://tlc.thinkorswim.com/center/reference/thinkScript/Constants/Curve[/URL]
#x.SetStyle(Curve.FIRM);
#x.SetStyle(Curve.LONG_DASH);
#x.SetStyle(Curve.MEDIUM_DASH);
#x.SetStyle(Curve.SHORT_DASH);
#x.SetStyle(Curve.POINTS);

i saw a post of sleepyz that listed something similar, for choosing line type
https://usethinkscript.com/threads/horizontal-lines.3472/page-7#post-72782
post122, page 7
..

side note,
this may be of interest
robert
using a number for a paintingstrategy(#)
https://usethinkscript.com/threads/horizontal-lines.3472/#post-14529
 
Last edited:

Similar threads

Top