perdurecapital
New member
Pre market marking charts for levels, etc.
Join useThinkScript to post your question to a community of 21,000+ developers and traders.
The monkey bars chart is just a market profile set up, 30 minute chart, 10 days, the chart next to it is a regular candle chart 30 minutes also with a volume profile. Those are just for reference points and roadmapping key higher time frame levels.@perdurecapital This is great.. can you share the chart type used here, please? Monkey bars don't quite match your setup. I prefer the clarity in your chart. How does one get the indicators on your chart? I am not sure I want to use all, but if it helps, I am game.
See above post, there is really nothing special that I use... They perdure, please can you share your study charts with us? thanks
hey perdure, please can you share your study charts with us? thanks
Hi Perdue - Do you manually draw those hve and lve levels ?
How do you intend to use the No-Trade vs Reversal ?I have not been able to duplicate his exact trades but I have something close. If anyone would like to add to it and share that would be great. I still can not figure out how he gets his entries to signal intrabar .
Also this has only been tested on today's trading range so take caution as it is a work in progress.
Code:###### TIME ###### input zoneStartAM = 930; input zoneEndAM = 1200; input zoneStartPM = 1330; input zoneEndPM = 1600; input zoneEndclose = 1609; input type = {default NOTRADE, REVERSAL}; def highBar; def lowBar; def highBar2; def lowBar2; switch (type){ case NOTRADE: highBar = if SecondsTillTime(zoneStartAM) <= 0 and SecondsTillTime(zoneEndAM) >= 0 then HighestAll(open) else Double.NaN; lowBar = if SecondsTillTime(zoneStartAM) <= 0 and SecondsTillTime(zoneEndAM) >= 0 then LowestAll(close) else Double.NaN; case REVERSAL: lowBar = if SecondsTillTime(zoneStartAM) <= 0 and SecondsTillTime(zoneEndAM) >= 0 then HighestAll(open) else Double.NaN; highBar = if SecondsTillTime(zoneStartAM) <= 0 and SecondsTillTime(zoneEndAM) >= 0 then LowestAll(close) else Double.NaN; } switch (type){ case NOTRADE: highBar2 = if SecondsTillTime(zoneStartPM) <= 0 and SecondsTillTime(zoneEndPM) >= 0 then HighestAll(open) else Double.NaN; lowBar2 = if SecondsTillTime(zoneStartPM) <= 0 and SecondsTillTime(zoneEndPM) >= 0 then LowestAll(close) else Double.NaN; case REVERSAL: lowBar2 = if SecondsTillTime(zoneStartPM) <= 0 and SecondsTillTime(zoneEndPM) >= 0 then HighestAll(open) else Double.NaN; highBar2 = if SecondsTillTime(zoneStartPM) <= 0 and SecondsTillTime(zoneEndPM) >= 0 then LowestAll(close) else Double.NaN; } ###### TIME END ##### def adspdl = low("$adspd"); def adspdh = high("$adspd"); def adspdc = close("$adspd"); def volspd = close("$volspd"); def HMA = MovingAverage(AverageType.HULL, close, 21); input numDevDn = -2.0; input numDevUp = 2.0; input timeFrame = {default DAY, WEEK, MONTH}; def cap = getAggregationPeriod(); def errorInAggregation = timeFrame == timeFrame.DAY and cap >= AggregationPeriod.WEEK or timeFrame == timeFrame.WEEK and cap >= AggregationPeriod.MONTH; assert(!errorInAggregation, "timeFrame should be not less than current chart aggregation period"); def yyyyMmDd = getYyyyMmDd(); def periodIndx; switch (timeFrame) { case DAY: periodIndx = yyyyMmDd; case WEEK: periodIndx = Floor((daysFromDate(first(yyyyMmDd)) + getDayOfWeek(first(yyyyMmDd))) / 7); case MONTH: periodIndx = roundDown(yyyyMmDd / 100, 0); } def isPeriodRolled = compoundValue(1, periodIndx != periodIndx[1], yes); def volumeSum; def volumeVwapSum; def volumeVwap2Sum; if (isPeriodRolled) { volumeSum = volume; volumeVwapSum = volume * vwap; volumeVwap2Sum = volume * Sqr(vwap); } else { volumeSum = compoundValue(1, volumeSum[1] + volume, volume); volumeVwapSum = compoundValue(1, volumeVwapSum[1] + volume * vwap, volume * vwap); volumeVwap2Sum = compoundValue(1, volumeVwap2Sum[1] + volume * Sqr(vwap), volume * Sqr(vwap)); } def price = volumeVwapSum / volumeSum; def deviation = Sqrt(Max(volumeVwap2Sum / volumeSum - Sqr(price), 0)); def VWAP = price; AssignPriceColor(if adspdl < adspdl[1] && close < vwap && close< hma && volume > volume[1] then Color.RED else if adspdh > adspdh[1] && close > vwap && close > hma && volume>volume[1] then Color.GREEN else Color.GRAY); ####LONGS#### AddOrder(OrderType.BUY_TO_OPEN,secondsTillTime(zoneStartAM) <= 0 && secondsTillTime(zoneEndAM) >= 0 and adspdh > adspdh[1] && close > vwap && vwap>vwap[1]&& volume>volume[1] , name = "Buy open AM @"+open[-1], 1, Color.ORANGE, Color.green); AddOrder(OrderType.BUY_TO_OPEN,secondsTillTime(zoneStartpM) <= 0 && secondsTillTime(zoneEndpM) >= 0 and adspdh > adspdh[1] && close > vwap && vwap>vwap[1]&& volume>volume[1] , name = "Buy open AM @"+open[-1], 1, Color.ORANGE, Color.green); ##SHORTS### AddOrder(OrderType.sell_TO_OPEN,secondsTillTime(zoneStartAM) <= 0 && secondsTillTime(zoneEndAM) >= 0 and adspdl < adspdl[1] && close < vwap && vwap<vwap[1]&& volume>volume[1] , name = "Sell open AM @"+open[-1], 1, Color.ORANGE, Color.RED); AddOrder(OrderType.sell_TO_OPEN,secondsTillTime(zoneStartpM) <= 0 && secondsTillTime(zoneEndpM) >= 0 and adspdl < adspdl[1] && close < vwap && volume>volume[1] , name = "Sell open PM @"+open[-1], 1, Color.ORANGE, Color.RED); ####Close orders###### addorder(orderType.SELL_TO_CLOSE, adspdh < adspdh[1], name = "Sell close @"+open[-1],1,color.orange, color.red); addorder(orderType.buy_TO_CLOSE, adspdl > adspdl[1],name = "Buy close @"+open[-1],1,color.orange, color.red); ###Market close orders#### addorder(orderType.buy_TO_CLOSE, secondsTillTime(zoneEndclose) <= 0 , name = "Buy Market Close @"+open[-1],1,color.orange, color.red); addorder(orderType.sell_TO_CLOSE, secondsTillTime(zoneEndclose) <= 0 , name = "Sell Market Close @"+open[-1],1,color.orange, color.red);
The entries are pretty simple, he trades breakouts of Value Area Highs and lows aided by internals/tape reading. When the market is in an established trend (outside of value/transitioning) he uses price action techniques. (breaks of congestion patterns or hooks). Occasionally I’ve seen him take VWAP tests, but mostly when they line up with a High Volume Edge or other significant level.I’ve paid for and have messaged with him on multiple occasions. In the end he more than likely doesn’t share bc it probably really obvi/easy. ie not all that complex. 100% all trades are taken above/below vwap. From there, there are a host of options that have yet to be replicated. I’ve looked at MA’s, POC’s, VA’s. Volume while mentioned on his blog don’t always start a trade. Also, with some entires/exits showing on midbar. He my get his signal on a 1min chart but show everyone on the 3m.
All the best
I tend to mark levels off volume profile, base intraday trades off TPO. As far as trading against trend bias, I think it’s just a matter of discipline, a rule is a rule, breaking it opens you up to indecisiveness and a host of other problems. Typically the bottoming or topping process is choppy with multiple tests in prior direction, the edges combined with stats and skew give you compound edge in a particular direction trading breakouts from Value area. Regarding R/R, it’s very personal and subjective, depends on how you place your initial stop. I tend to use a tick or two below previous candle, which is what I assume you also tend to do based on your comment on large candles. I personally also lean on $TICK pretty heavily. I’ve found it to be a good filter at times and a misleading indicator others. Lots of nuances with $TICK, I use a 5pd EMA of 2min $TICK as a directional bias filter for counter trend trading (against VWAP as you mentioned, entries based off of price action exactly as you described, using Wyckoff principles, Spring or double bottom type moves on lower supply (volume) and lower $TICK, look to enter on break above the reversal candle, stop below it let market prove right or wrong. I’ve found over time that trade works out if you can tolerate the choppiness and volatilty. For me I like to take a smaller risk by trading a few micro contracts there vs a mini. Lean on higher timeframe bias or levels also on countertrend moves. I have same problem with stops, it’s so easy to justify holding on when you’ve got the set up and R/R, you think “give it some wiggle room”, then boom, big program slams it and now you’re stuck. Tough.Also, Verniman uses volume profile per his blog, but your initial post in this thread indicates you use TPO. I generally mark levels from both market profile and volume profile as they tend to be slightly different, giving me key "zones" instead of discrete levels. If you have thoughts on one vs the other, it would be greatly appreciated. I generally use market profile to mark areas of excess, poor highs/lows, vPOCs, and single print zones as magnets, then keep an eye on LVNs/HVNs from volume profile intraday for confluence with VA breakouts and failed breakouts that are likely to rotate back through the VA. I generally only long above VWAP and short below, but will make exceptions if we get a clear divergence from cumulative $TICK and a price action confirmation like a double bottom with a key profile level holding or a volatility contraction pattern compressing up into VWAP that allows for a low risk entry. My Achilles heel, though, is getting out without taking a full stop when things go against me. I'm trying to get to the point where I'm able to intuitively get out when I know I'm not right as opposed to waiting to get out when I know I'm wrong. Easy concept to grasp, difficult to execute.
Early in the session today there was some chop I took some stops in before I was able to catch the move through previous days VAH, Identified day as ORR, had the opening range break set up, internals everything looking good and the breaks just kept getting rejected... till it didn’t. Targeted ONL, nailed it, bounced there, broke through it on climactic selling. Then the reversal trade at the bottom that trended all afternoon back to open. Sounds so easy post mortem, not so easy when you’re in the drivers seat during the day.Also, Verniman uses volume profile per his blog, but your initial post in this thread indicates you use TPO. I generally mark levels from both market profile and volume profile as they tend to be slightly different, giving me key "zones" instead of discrete levels. If you have thoughts on one vs the other, it would be greatly appreciated. I generally use market profile to mark areas of excess, poor highs/lows, vPOCs, and single print zones as magnets, then keep an eye on LVNs/HVNs from volume profile intraday for confluence with VA breakouts and failed breakouts that are likely to rotate back through the VA. I generally only long above VWAP and short below, but will make exceptions if we get a clear divergence from cumulative $TICK and a price action confirmation like a double bottom with a key profile level holding or a volatility contraction pattern compressing up into VWAP that allows for a low risk entry. My Achilles heel, though, is getting out without taking a full stop when things go against me. I'm trying to get to the point where I'm able to intuitively get out when I know I'm not right as opposed to waiting to get out when I know I'm wrong. Easy concept to grasp, difficult to execute.
Start a new thread and receive assistance from our community.
useThinkScript is the #1 community of stock market investors using indicators and other tools to power their trading strategies. Traders of all skill levels use our forums to learn about scripting and indicators, help each other, and discover new ways to gain an edge in the markets.
We get it. Our forum can be intimidating, if not overwhelming. With thousands of topics, tens of thousands of posts, our community has created an incredibly deep knowledge base for stock traders. No one can ever exhaust every resource provided on our site.
If you are new, or just looking for guidance, here are some helpful links to get you started.