AwesomeOscillator AO Color Change without crossing the Zero axis

TrainDoodle

New member
New user to this forum - it's quite impressive, cant wait to spend some serious time reading and learning. I've done my best researching and don't see that this has been discussed on here before.

Is there a way to generate a signal based on a color change on the AwesomeOscillator oscillator without a cross of the Zero line being required?

Thanks a million pips in advance.

Bj9JABs.png
 

BenTen

Administrative
Staff member
Staff
VIP
Not the perfect solution. I forgot how to display only the first transition (from red to green and vice versa).

Code:
#
# TD Ameritrade IP Company, Inc. (c) 2007-2020
#

declare lower;
declare zerobase;

plot AO = Average(hl2, 5) - Average(hl2, 34);
plot Zero = 0;

AO.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
AO.SetLineWeight(3);
AO.DefineColor("Up", Color.UPTICK);
AO.DefineColor("Down", Color.DOWNTICK);
AO.AssignValueColor(if AO > AO[1] then AO.color("Up") else if AO < AO[1] then AO.color("Down") else GetColor(1));
Zero.SetDefaultColor(GetColor(5));

def bullish = AO > AO[1];
def bearish = AO < AO[1];

# Plot arrows
plot UpSignal = if bullish then 0 else Double.NaN;
UpSignal.SetDefaultColor(Color.Orange);
UpSignal.SetPaintingStrategy(PaintingStrategy.ARROW_UP);

plot DownSignal = if bearish then 0 else Double.NaN;
DownSignal.SetDefaultColor(Color.Orange);
DownSignal.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
 

TrainDoodle

New member
This generates an arrow on every bar.
Im trying to generate the arrow on the switch over from green to red or red to green.

For example

G,G,G,R,R the arrow would be down on the the first R only.
G,G,R,G,G the arrow world be down on the R and Up on the first G following the R
With no arrow present when A0 = A0[1]

Also looking for this signal to generate alerts through the scan.

I really do appreciate anything thought that goes into this, Im the kind of person that feels bad even asking questions.
 

rad14733

Well-known member
VIP
Change ARROW_UP and ARROW_DOWN to BOOLEAN_ARROW_UP and BOOLEAN_ARROW_DOWN... That should do it... 💡 (y)

Hmmm... Nope...!!! I'll check further unless BenTen beats me to it...
 
Last edited:

TrainDoodle

New member
MACD Histogram is one of the more common used indicators that incorporates color changes without the zero line being crossed, (Two shades of Green and two shades of Red) looking through code for it to see if there are answers hidden there.
 
Last edited:

Pensar

Well-known member
VIP
@TrainDoodle Here are two different arrow plot methods. Use the code @BenTen posted, and replace the code below "#Plot Arrows" with one or the other.

This code plots an arrow on each color change, regardless if the AO is above or below 0 -
Code:
# Plot arrows
plot UpSignal = if !bullish[1] && bullish then 0 else Double.NaN;
UpSignal.SetDefaultColor(Color.Orange);
UpSignal.SetPaintingStrategy(PaintingStrategy.ARROW_UP);

plot DownSignal = if !bearish[1] && bearish then 0 else Double.NaN;
DownSignal.SetDefaultColor(Color.Orange);
DownSignal.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);

This code plots an arrow on each color change, but only up arrows when below 0 and down arrows when above 0 -
Code:
# Plot arrows
plot UpSignal = if AO < 0 && !bullish[1] && bullish then AO else Double.NaN;
UpSignal.SetDefaultColor(Color.Orange);
UpSignal.SetPaintingStrategy(PaintingStrategy.ARROW_UP);

plot DownSignal = if AO > 0 && !bearish[1] && bearish then AO else Double.NaN;
DownSignal.SetDefaultColor(Color.Orange);
DownSignal.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
 

TrainDoodle

New member
People who write code are amazing.
Thank you all so much this worked exactly as I was hoping.

No that it is displaying perfectly how do I get the scan to give me a notification when the "DownSignal" or the "UpSignal" is true?
They can be combined into an or statement.

I know how to enter the custom scans into the thinkscript editor
 

rad14733

Well-known member
VIP
@Pensar Great work... I had similar code half done last night but fell asleep with my fingers on the keyboard... I was working on setting a state and then decided on a solution more in line with your code but sleep won out over desire...

@TrainDoodle We members here work very hard, at no benefit to ourselves, in an effort to help fellow members not only succeed at trading but to also encourage them to learn Thinkscript and give back to the community... I used to run a programming forum that had the same mission and we were far more responsive to those who joined in as givers rather than merely being takers... It is very rewarding to see folks roll up their sleeves and learn to help themselves and others... Not making any accusations, merely stating facts based on experience... I hope you find the code Pensar posted useful... ;)
 

rad14733

Well-known member
VIP
@rad14733 It's funny because my credit card WAS in my hand when I opened the site up just now
I'm sure BenTen would be appreciative of any donations to help keep this site up and running... What I was referring to is that contributing members don't receive any monetary compensation but, rather, see member requests and stumbling blocks as logic problems... I help because that's how I'm wired... 🤓
 

Similar threads

Top