I have some conditional orders I use every day that are supposed to fire based on a study that I use which has a custom script. Here is that script that is creating the Study that I am using as a trigger condition:
I am setting a Conditional Order to trigger a buy if the 5 minute candle closes above the upper plotted line. See here for the Conditional Order window:
I have a series of "Chart" tool windows open at any given time, one on the minute time frame and one on the five minute. Would anyone be able to tell me why occasionally the above order fires based on a 1 minute time frame instead of the five minute time frame? Sometimes they don't even fire at all. I have not saved these, so there is none of the code cut off problem that I know is present in TOS, I draft these each morning. I want to try and rely on this each day, but when they fire inconsistently it is difficult. Are there parameters I am missing or should be looking out for? Any help is appreciated and I can add more photos if needed.
#orb_colors_03
#Mobius original
#csricksdds 2/20
#I like your ORB indicator with the labels that show when above/below...so that the labels don't show only when above/below can you add one showing Yellow "Trading within ORB" when it's trading within?
#Thanks to halcyonguy I have made a few changes to suit myself.
#https://usethinkscript.com/threads/shaded-opening-range-no-breakout.17922/
#Shaded Opening Range (No Breakout)
# 2020-01
# halcyonguy
#Revamped by C. Ricks 2/12/24
def na = Double.NaN;
# pick an agg time
input orb_time = AggregationPeriod.fifteen_min;
def orb_min = orb_time/60000;
def per = orb_min;
input show_ORB_label = yes;
input show_arrows = yes;
# open/close times (ET)
input start = 0930;
input end = 1600;
def daytime = if secondsfromTime(start) >= 0 and secondstillTime(end) > 0 then 1 else 0;
def getgg = getaggregationPeriod();
def getaggmin = round(getgg/60,0);
addlabel(0,getaggmin);
# test if agg time is > than chart time
def aggok = if getaggmin <= orb_min then 1 else 0;
def durationsec = per * 60;
def secondspassed = secondsfromTime(start);
# simulated firstbar , based on orb time
def firstbar = if secondspassed >= 0 and secondspassed < durationsec then 1 else 0;
#addchartbubble(yes,low,per + "" + firstbar + "" + agg);
def afterfirst = if ( daytime and !firstbar ) then 1 else 0;
# is this the first bar after open ?
def openbar = if secondspassed >= 0 and secondspassed <= getgg then 1 else 0;
def ehi = high(period = orb_time);
def elo = low(period = orb_time);
# looks at firstbar , which is orbtime , NOT bar[1]
def perhigh = if !daytime then na else if firstbar then ehi else perhigh[1];
def perlow = if !daytime then na else if firstbar then elo else perlow[1];
# .....................................................
addlabel(1, " ", color.Yellow);
addlabel((close > perhigh),"Price Above ORB", color.green);
addlabel((close < perlow),"Price Below ORB", color.red);
addlabel((close <= perhigh and close >= perlow),"Price Inside ORB", color.yellow);
addlabel(1, " ", color.Yellow);
# .....................................................
# plot dots for first bar timeframe
plot hidots = if firstbar then perhigh else na;
plot lodots = if firstbar then perlow else na;
hidots.setpaintingStrategy(paintingStrategy.Dashes);
lodots.setpaintingStrategy(paintingStrategy.Dashes);
hidots.setDefaultColor(color.yellow);
lodots.setDefaultColor(color.yellow);
# plot line after first bar
plot hiline = if !firstbar then perhigh else na;
plot loline = if !firstbar then perlow else na;
hiline.setpaintingStrategy(paintingStrategy.LINE);
loline.setpaintingStrategy(paintingStrategy.LINE);
hiline.setDefaultColor(color.yellow);
loline.setDefaultColor(color.yellow);
#DefineGlobalColor("orb",color.magenta);
#DefineGlobalColor("orb_after",color.gray);
DefineGlobalColor("orb",color.red);
DefineGlobalColor("orb_after",color.green);
plot static = hiline;
static.AssignValueColor(Color.Yellow);
def limit = !IsNaN(close) and IsNaN(close [-1] ) && LowestAll(BarNumber());
AddChartBubble(limit, static, "ORB HI", Color.Yellow);
plot static2 = loline;
static2.AssignValueColor(Color.Yellow);
def limit2 = !IsNaN(close) and IsNaN(close [-1] ) && LowestAll(BarNumber());
AddChartBubble(limit2, static2, "ORB LO", Color.YELLOW);
##End Code
I am setting a Conditional Order to trigger a buy if the 5 minute candle closes above the upper plotted line. See here for the Conditional Order window:
I have a series of "Chart" tool windows open at any given time, one on the minute time frame and one on the five minute. Would anyone be able to tell me why occasionally the above order fires based on a 1 minute time frame instead of the five minute time frame? Sometimes they don't even fire at all. I have not saved these, so there is none of the code cut off problem that I know is present in TOS, I draft these each morning. I want to try and rely on this each day, but when they fire inconsistently it is difficult. Are there parameters I am missing or should be looking out for? Any help is appreciated and I can add more photos if needed.