Futures Tick Charts or time based

Billions

Active member
2019 Donor
VIP
Can someone help me knocking my head around the best time frame for futures tick charts or time based ? Any thoughts?
 

tradebyday

Active member
Depends on the asset for tick charts. Also you may like range bars (not renko). For ES I like 10,000tick and 4,000 tick. For RTY I like 1,000tick or 5min. Been testing 20tick range bars and 50tick range bars and I am liking what I see on most tickers.
 

Playstation

Active member
VIP
@Billions I believe your question should be "best ticks count for tick charts" or "Time frame for time based charts".
I'm a ticks charts user for index,oil,gold futures, and I believe that's where you see the real price action. I don't like using timeframes on futures as the products move much faster throughout the day compared to stocks. However, this may not apply in softs and financials.

As for the tick counts, I believe you need to adjust as you deem fit to your style. Some prefer to use the default TOS ones, like 512, 1600,3200 etc. Nothing wrong, so long as you are comfortable with the entry and exit. I prefer to use 500/1000/1600/3200.
 

Billions

Active member
2019 Donor
VIP
@Billions I believe your question should be "best ticks count for tick charts" or "Time frame for time based charts".
I'm a ticks charts user for index,oil,gold futures, and I believe that's where you see the real price action. I don't like using timeframes on futures as the products move much faster throughout the day compared to stocks. However, this may not apply in softs and financials.

As for the tick counts, I believe you need to adjust as you deem fit to your style. Some prefer to use the default TOS ones, like 512, 1600,3200 etc. Nothing wrong, so long as you are comfortable with the entry and exit. I prefer to use 500/1000/1600/3200.
thank you for your help
 

Trading51

Active member
2019 Donor
hi @Trading51 I would like to know about scalping and also for the day I never swing futures as of now
Scalping now is fine now that the average rotations have narrowed a few weeks back it was a higher risk, you can use tick charts, I use time and I like for trapped prices as my main methodology and I use the slope of any indicator or good smoothed average, what indicators do you use and ill see if ii can craft something for what you are doing, for ES scalping 2-5 min and the 15 min as a guide.
 

Billions

Active member
2019 Donor
VIP
Scalping now is fine now that the average rotations have narrowed a few weeks back it was a higher risk, you can use tick charts, I use time and I like for trapped prices as my main methodology and I use the slope of any indicator or good smoothed average, what indicators do you use and ill see if ii can craft something for what you are doing, for ES scalping 2-5 min and the 15 min as a guide.
I'm using 1600 tick and 3200 tick I use Top Ultimate breakout and MA(50,20,10) and Macd any help I would Appreciate
 

Zlotko

Member
VIP
Would it be possible to make this TickQ Oscillator and the Cummulative tick to work on Extended hours?


# $TICK/Q Oscillator with Divergence
# Mobius
# V01.03.2020

declare lower;

input length = 5;
input AvgType = AverageType.HULL;

def o = open("$TICK/Q ");
def h = high("$TICK/Q ");
def l = low("$TICK/Q ");
def c = close("$TICK/Q ");
def x = BarNumber();
def nan = Double.NaN;
AddChart(h, l, c, o, ChartType.CANDLE, Color.YELLOW);
AddChart(h, l, o, c, ChartType.CANDLE, Color.CYAN);
def RTH = GetTime() >= RegularTradingStart(GetYYYYMMDD()) and
GetTime() <= RegularTradingEnd(GetYYYYMMDD());
plot "0" = if !RTH then Double.NaN else 0;
"0".SetDefaultColor(Color.MAGENTA);
"0".HideBubble();
"0".HideTitle();
plot avg = MovingAverage(AvgType, c, length);
avg.AssignValueColor(if avg < 0
then color.red
else color.green);
avg.HideBubble();
avg.HideTitle();
addCloud(0, avg, color.red, color.green);
plot upArrow = if avg crosses above 0
then l
else double.nan;
upArrow.SetPaintingStrategy(PaintingStrategy.Arrow_UP);
upArrow.SetDefaultColor(Color.Green);
upArrow.SetLineWeight(3);
upArrow.HideBubble();
upArrow.HideTitle();
plot dnArrow = if avg crosses below 0
then h
else double.nan;
dnArrow.SetPaintingStrategy(PaintingStrategy.Arrow_DOWN);
dnArrow.SetDefaultColor(Color.Red);
dnArrow.SetLineWeight(3);
dnArrow.HideBubble();
dnArrow.HideTitle();
def hh = if avg crosses above 0
then h
else if avg > 0 and h > hh[1]
then h
else hh[1];
def xh = if h == hh
then x
else xh[1];
plot hp = if x == highestAll(xh)
then hh
else nan;
hp.SetStyle(Curve.Points);
hp.SetDefaultColor(Color.red);
hp.SetLineWeight(3);
hp.HideBubble();
hp.HideTitle();
def xh1 = if !isNaN(dnArrow)
then getValue(xh, 2)
else xh1[1];
plot hp1 = if x == highestAll(xh1)
then h
else nan;
hp1.SetStyle(Curve.Points);
hp1.SetDefaultColor(Color.red);
hp1.SetLineWeight(3);
hp1.HideBubble();
hp1.HideTitle();
plot hd = if x == highestAll(xh1)
then h
else if x == highestAll(xh)
then h
else nan;
hd.EnableApproximation();
hd.SetDefaultColor(Color.red);
hd.HideBubble();
hd.HideTitle();
def ll = if avg crosses below 0
then l
else if avg < 0 and l < ll[1]
then l
else ll[1];
def xl = if l == ll
then x
else xl[1];
plot lp = if x == highestAll(xl)
then ll
else nan;
lp.SetStyle(Curve.Points);
lp.SetDefaultColor(Color.green);
lp.SetLineWeight(3);
lp.HideBubble();
lp.HideTitle();
def xl1 = if !isNaN(dnArrow)
then xl[1]
else xl1[1];
plot lp1 = if x == highestAll(xl1)
then l
else nan;
lp1.SetStyle(Curve.Points);
lp1.SetDefaultColor(Color.green);
lp1.SetLineWeight(3);
lp1.HideBubble();
lp1.HideTitle();
plot ld = if x == highestAll(xl1)
then l
else if x == highestAll(xl)
then l
else nan;
ld.EnableApproximation();
ld.SetDefaultColor(Color.green);
ld.HideBubble();
ld.HideTitle();
# End Code TICK/Q Oscillator with Divergence

========================================================================
========================================================================

#CummulativeTick

#hint: The CumulativeTick indicator is designed to be run on a 20 day 5 minute chart of the /ES, /NQ, /TF, or /YM. Running the chart on other instruments may result in the loss of the average lines.

declare lower;
declare once_per_bar;

def openTime = 0930;
def pivot1 = 1030;
def pivot2 = 1200;
def pivot3 = 1330;
def pivot4 = 1500;
input closeTime = 1600;

def tickData = hlc3("$TICK");
rec CT = if GetDay() != GetDay()[1] then 0 else if SecondsTillTime(openTime) <= 0 and SecondsTillTime(closeTime) >= 0 then CT[1] + tickData else 0;
plot cumulativeTick = if !IsNaN(tickData) then CT else Double.NaN;
cumulativeTick.SetStyle(curve.POINTS);

plot zero = 0;
zero.SetDefaultColor(Color.WHITE);
zero.HideBubble();
zero.HideTitle();

cumulativeTick.AssignValueColor(if cumulativeTick < cumulativeTick [1] then Color.MAGENTA
else Color.CYAN);
cumulativeTick.SetLineWeight(1);

rec ticksAtPivot1 = if SecondsTillTime(pivot1) <= 0 and SecondsTillTime(pivot1)[1] > 0 then cumulativeTick else ticksAtPivot1[1];
rec ticksAtPivot2 = if SecondsTillTime(pivot2) <= 0 and SecondsTillTime(pivot2)[1] > 0 then cumulativeTick else ticksAtPivot2[1];
rec ticksAtPivot3 = if SecondsTillTime(pivot3) <= 0 and SecondsTillTime(pivot3)[1] > 0 then cumulativeTick else ticksAtPivot3[1];
rec ticksAtPivot4 = if SecondsTillTime(pivot4) <= 0 and SecondsTillTime(pivot4)[1] > 0 then cumulativeTick else ticksAtPivot4[1];
rec ticksAtClose = if SecondsTillTime(closeTime) <= 0 and SecondsTillTime(closeTime)[1] > 0 then cumulativeTick else ticksAtClose[1];

def positiveDay = if (SecondsTillTime(closeTime) <= 0 and SecondsTillTime(closeTime)[1] > 0) and cumulativeTick > 0 then 1 else 0;

def negativeDay = if SecondsTillTime(closeTime) <= 0 and SecondsTillTime(closeTime)[1] > 0 and cumulativeTick < 0 then 1 else 0;

def positiveDayTicksAtPivot1 = if positiveDay then ticksAtPivot1 else 0;
def positiveDayTicksAtPivot2 = if positiveDay then ticksAtPivot2 else 0;
def positiveDayTicksAtPivot3 = if positiveDay then ticksAtPivot3 else 0;
def positiveDayTicksAtPivot4 = if positiveDay then ticksAtPivot4 else 0;

def negativeDayTicksAtPivot1 = if negativeDay then ticksAtPivot1 else 0;
def negativeDayTicksAtPivot2 = if negativeDay then ticksAtPivot2 else 0;
def negativeDayTicksAtPivot3 = if negativeDay then ticksAtPivot3 else 0;
def negativeDayTicksAtPivot4 = if negativeDay then ticksAtPivot4 else 0;

rec totalPDTAP1 = if !IsNaN(cumulativeTick) then if positiveDay then totalPDTAP1[1] + positiveDayTicksAtPivot1 else totalPDTAP1[1] else totalPDTAP1[1];
rec totalPDTAP2 = if !IsNaN(cumulativeTick) then if positiveDay then totalPDTAP2[1] + positiveDayTicksAtPivot2 else totalPDTAP2[1] else totalPDTAP2[1];
rec totalPDTAP3 = if !IsNaN(cumulativeTick) then if positiveDay then totalPDTAP3[1] + positiveDayTicksAtPivot3 else totalPDTAP3[1] else totalPDTAP3[1];
rec totalPDTAP4 = if !IsNaN(cumulativeTick) then if positiveDay then totalPDTAP4[1] + positiveDayTicksAtPivot4 else totalPDTAP4[1] else totalPDTAP4[1];

rec totalNDTAP1 = if !IsNaN(cumulativeTick) then if negativeDay then totalNDTAP1[1] + negativeDayTicksAtPivot1 else totalNDTAP1[1] else totalNDTAP1[1];
rec totalNDTAP2 = if !IsNaN(cumulativeTick) then if negativeDay then totalNDTAP2[1] + negativeDayTicksAtPivot2 else totalNDTAP2[1] else totalNDTAP2[1];
rec totalNDTAP3 = if !IsNaN(cumulativeTick) then if negativeDay then totalNDTAP3[1] + negativeDayTicksAtPivot3 else totalNDTAP3[1] else totalNDTAP3[1];
rec totalNDTAP4 = if !IsNaN(cumulativeTick) then if negativeDay then totalNDTAP4[1] + negativeDayTicksAtPivot4 else totalNDTAP4[1] else totalNDTAP4[1];


rec positiveDays = if !IsNaN(cumulativeTick) then if positiveDay then positiveDays[1] + 1 else positiveDays[1] else positiveDays[1];
rec negativeDays = if !IsNaN(cumulativeTick) then if negativeDay then negativeDays[1] + 1 else negativeDays[1] else negativeDays[1];


plot avePosTickAtPivot1 = HighestAll(if IsNaN(close[-1]) and !IsNaN(close) then totalPDTAP1 / positiveDays else Double.NaN);
plot avePosTickAtPivot2 = HighestAll(if IsNaN(close[-1]) and !IsNaN(close) then totalPDTAP2 / positiveDays else Double.NaN);
plot avePosTickAtPivot3 = HighestAll(if IsNaN(close[-1]) and !IsNaN(close) then totalPDTAP3 / positiveDays else Double.NaN);
plot avePosTickAtPivot4 = HighestAll(if IsNaN(close[-1]) and !IsNaN(close) then totalPDTAP4 / positiveDays else Double.NaN);

plot aveNegTickAtPivot1 = HighestAll(if IsNaN(close[-1]) and !IsNaN(close) then totalNDTAP1 / negativeDays else Double.NaN);
plot aveNegTickAtPivot2 = HighestAll(if IsNaN(close[-1]) and !IsNaN(close) then totalNDTAP2 / negativeDays else Double.NaN);
plot aveNegTickAtPivot3 = HighestAll(if IsNaN(close[-1]) and !IsNaN(close) then totalNDTAP3 / negativeDays else Double.NaN);
plot aveNegTickAtPivot4 = HighestAll(if IsNaN(close[-1]) and !IsNaN(close) then totalNDTAP4 / negativeDays else Double.NaN);

avePosTickAtPivot1.SetDefaultColor(Color.DARK_GRAY);
avePosTickAtPivot2.SetDefaultColor(Color.DARK_GRAY);
avePosTickAtPivot3.SetDefaultColor(Color.DARK_GRAY);
avePosTickAtPivot4.SetDefaultColor(Color.DARK_GRAY);
aveNegTickAtPivot1.SetDefaultColor(Color.DARK_GRAY);
aveNegTickAtPivot2.SetDefaultColor(Color.DARK_GRAY);
aveNegTickAtPivot3.SetDefaultColor(Color.DARK_GRAY);
aveNegTickAtPivot4.SetDefaultColor(Color.DARK_GRAY);

avePosTickAtPivot1.SetStyle(Curve.FIRM);
avePosTickAtPivot2.SetStyle(Curve.FIRM);
avePosTickAtPivot3.SetStyle(Curve.FIRM);
avePosTickAtPivot4.SetStyle(Curve.FIRM);
aveNegTickAtPivot1.SetStyle(Curve.FIRM);
aveNegTickAtPivot2.SetStyle(Curve.FIRM);
aveNegTickAtPivot3.SetStyle(Curve.FIRM);
aveNegTickAtPivot4.SetStyle(Curve.FIRM);
avePosTickAtPivot1.HideBubble();
avePosTickAtPivot2.HideBubble();
avePosTickAtPivot3.HideBubble();
avePosTickAtPivot4.HideBubble();
aveNegTickAtPivot1.HideBubble();
aveNegTickAtPivot2.HideBubble();
aveNegTickAtPivot3.HideBubble();
aveNegTickAtPivot4.HideBubble();

avePosTickAtPivot1.HideTitle();
avePosTickAtPivot2.HideTitle();
avePosTickAtPivot3.HideTitle();
avePosTickAtPivot4.HideTitle();
aveNegTickAtPivot1.HideTitle();
aveNegTickAtPivot2.HideTitle();
aveNegTickAtPivot3.HideTitle();
aveNegTickAtPivot4.HideTitle();


#AddChartBubble( SecondsTillTime(openTime) == 0 and GetDay() == GetLastDay(), avePosTickAtPivot1, "+10:30", Color.DARK_GRAY, yes);
#AddChartBubble(SecondsTillTime(openTime) == 0 and GetDay() == GetLastDay(), avePosTickAtPivot2, "+12:00", Color.DARK_GRAY, yes);
#AddChartBubble(SecondsTillTime(openTime) == 0 and GetDay() == GetLastDay(), avePosTickAtPivot3, "+13:30", Color.DARK_GRAY, yes);
#AddChartBubble(SecondsTillTime(openTime) == 0 and GetDay() == GetLastDay(), avePosTickAtPivot4, "+15:00", Color.DARK_GRAY, yes);

#AddChartBubble(SecondsTillTime(openTime) == 0 and GetDay() == GetLastDay(), aveNegTickAtPivot1, "-10:30", Color.DARK_GRAY, yes);
#AddChartBubble(SecondsTillTime(openTime) == 0 and GetDay() == GetLastDay(), aveNegTickAtPivot2, "-12:00", Color.DARK_GRAY, yes);
#AddChartBubble(SecondsTillTime(openTime) == 0 and GetDay() == GetLastDay(), aveNegTickAtPivot3, "-13:30", Color.DARK_GRAY, yes);
#AddChartBubble(SecondsTillTime(openTime) == 0 and GetDay() == GetLastDay(), aveNegTickAtPivot4, "-15:00", Color.DARK_GRAY, yes);

AddVerticalLine(SecondsTillTime(openTime) == 0 or (GetDay() != GetDay()[1] and (SecondsTillTime(0000) > 0)), "", Color.GRAY, 1);
# AI Adds

def lastHP = if x == highestAll(xh)
then xh else lastHP[1];
def lastHP1 = if x == highestAll(xh1)
then xh1 else lastHP[1];
def lastLP = if x == highestAll(xl)
then xl else lastLP[1];
def lastLP1 = if x == highestAll(xl1)
then xl1 else lastLP1[1];

Addlabel(lastHP1<lastHP,"Divergent",color.red);
Addlabel(lastLP1>lastLP,"Divergent",color.green);
 

Similar threads

Top