0% found this document useful (0 votes)
117 views4 pages

Anchored VWAP Strategy in Pine Script

This document is a TradingView Pine Script for a technical analysis indicator named 'Cnagda'. It includes various inputs for lookback periods, moving averages, and volatility stops, and generates buy/sell signals based on conditions like EMA and RSI crossovers. The script also visualizes trends and signals on the chart with labels and colors to assist traders in making decisions.

Uploaded by

cnagda3
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
117 views4 pages

Anchored VWAP Strategy in Pine Script

This document is a TradingView Pine Script for a technical analysis indicator named 'Cnagda'. It includes various inputs for lookback periods, moving averages, and volatility stops, and generates buy/sell signals based on conditions like EMA and RSI crossovers. The script also visualizes trends and signals on the chart with labels and colors to assist traders in making decisions.

Uploaded by

cnagda3
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

//@version=6

indicator("Cnagda", overlay=true, max_boxes_count=500, max_labels_count=500)


input_lookback=[Link](34,'Lookback Range',minval=1)
input_retSince=[Link](2,'Bars Since Breakout',minval=1)
input_retValid=[Link](2,'Retest Detection Limiter',minval=1)
anchor_type=[Link]('Both','Anchor VWAP to',['Swing High','Swing Low','Both'])
avwap_lookback=[Link](34,'Swing Detection Lookback',minval=5)
avwap_color=[Link]([Link],'Anchored VWAP Color')
avwap_width=[Link](2,'Anchored VWAP Width',minval=1,maxval=4)
bb=input_lookback
ma1=[Link](close,34)
ma2=[Link](close,34)
length=[Link](20,"Volatility Stop Length")
factor=[Link](2.0,"Volatility Stop Multiplier")
src=close
f_volStop(_src,_atrLen,_atrFactor)=>
_atr=[Link](_atrLen)*_atrFactor
var float _vstop=na
var bool _uptrend=true
_vstop:=na(_vstop[1])?_src-_atr:_vstop[1]
_uptrend:=na(_vstop[1])?true:_uptrend[1]
_uptrend:=_src>_vstop[1]?true:_src<_vstop[1]?false:_uptrend[1]
_vstop:=_uptrend?[Link](_vstop[1],_src-_atr):[Link](_vstop[1],_src+_atr)
[_vstop,_uptrend]
[vStop,uptrend]=f_volStop(close,length,factor)
swingHigh=[Link](high,avwap_lookback,avwap_lookback)
swingLow=[Link](low,avwap_lookback,avwap_lookback)
var int anchor_bar=na
var float anchor_price=na
newAnchor=false
if anchor_type=='Swing High' and not na(swingHigh)
anchor_bar:=bar_index[avwap_lookback]
anchor_price:=swingHigh
newAnchor:=true
else if anchor_type=='Swing Low' and not na(swingLow)
anchor_bar:=bar_index[avwap_lookback]
anchor_price:=swingLow
newAnchor:=true
else if anchor_type=='Both'
if not na(swingHigh)
anchor_bar:=bar_index[avwap_lookback]
anchor_price:=swingHigh
newAnchor:=true
else if not na(swingLow)
anchor_bar:=bar_index[avwap_lookback]
anchor_price:=swingLow
newAnchor:=true
var float cumulative_tp_volume=0.0
var float cumulative_volume=0.0
var float anchored_vwap=na
if newAnchor
cumulative_tp_volume:=0.0
cumulative_volume:=0.0
if not na(anchor_bar) and bar_index>=anchor_bar
tp=(high+low+close)/3.0
cumulative_tp_volume+=tp*volume
cumulative_volume+=volume
anchored_vwap:=cumulative_tp_volume/cumulative_volume
else
anchored_vwap:=na
buySignal=[Link](ma1,ma2)
sellSignal=[Link](ma1,ma2)
var string scalp_state="NEUTRAL"
var float refHigh=na
var float refLow=na
if buySignal or sellSignal
refHigh:=high
refLow:=low
scalp_state:="WAIT_ENTRY"
if (scalp_state=="WAIT_ENTRY" or scalp_state=="SELL") and not na(refHigh) and
close>refHigh
scalp_state:="BUY"
if (scalp_state=="WAIT_ENTRY" or scalp_state=="BUY") and not na(refLow) and
close<refLow
scalp_state:="SELL"
if scalp_state=="BUY" and close<vStop
scalp_state:="NEUTRAL"
refHigh:=na
refLow:=na
if scalp_state=="SELL" and close>vStop
scalp_state:="NEUTRAL"
refHigh:=na
refLow:=na
wma34=[Link](close,34)
ema34=[Link](close,34)
sma34=[Link](close,34)
vwma34=[Link](close,34)
ma_sum=(not na(wma34)?wma34:0)+(not na(vwma34)?vwma34:0)+(not na(ema34)?ema34:0)+
(not na(sma34)?sma34:0)+(not na(anchored_vwap)?anchored_vwap:0)
ma_avg=ma_sum/5
var bool inSwingBuy=false
var bool inSwingSell=false
if close>ma_avg and low>ma_avg
inSwingBuy:=true
else
inSwingBuy:=false
if close<ma_avg and high<ma_avg
inSwingSell:=true
else
inSwingSell:=false
swingSignal=inSwingBuy?1:inSwingSell?-1:0
showSwingConfirmed=swingSignal==1?"BUY":swingSignal==-1?"SELL":""
trend=close>anchored_vwap and close>ma1 and close>ma2?"UP":close<anchored_vwap and
close<ma1 and close<ma2?"DOWN":"NEUTRAL"
vol_avg=[Link](volume,20)
high_vol=volume>vol_avg*1.5
isBull=close>open
isBear=close<open
isBlue=high_vol and isBull
isYellow=high_vol and isBear
body_top=[Link](open,close)
body_bot=[Link](open,close)
body_size=[Link](close-open)
part_above=body_top>ma_avg?body_top-[Link](ma_avg,body_bot):0
part_below=body_bot<ma_avg?[Link](ma_avg,body_top)-body_bot:0
percent_above=body_size>0?part_above/body_size:0
percent_below=body_size>0?part_below/body_size:0
bull_cross=body_bot<ma_avg and body_top>ma_avg and percent_above>=0.2
bear_cross=body_top>ma_avg and body_bot<ma_avg and percent_below>=0.2
var int trend_state=0
if bull_cross
trend_state:=1
else if bear_cross
trend_state:=-1
else if close>ma_avg and trend_state==-1
trend_state:=0
else if close<ma_avg and trend_state==1
trend_state:=0
barcolor(high_vol and isBull?[Link]:high_vol and isBear?
[Link](247,255,3):trend_state==1?[Link]:trend_state==-1?
[Link](250,72,7):[Link])
is_swing_buy=(showSwingConfirmed=="BUY") and (showSwingConfirmed[1]!="BUY")
is_swing_sell=(showSwingConfirmed=="SELL") and (showSwingConfirmed[1]!="SELL")
plot(ma_avg,"All MA + VWAP Average",color=[Link],linewidth=3)
rsi_val=[Link](close,14)
rsi_ema_3=[Link](rsi_val,3)
rsi_ema_10=[Link](rsi_val,10)
bar_is_high=high_vol
prev_bar_is_high=high_vol[1]
any_high_bar=bar_is_high or prev_bar_is_high
_base_rsi_cross_bull=[Link](rsi_ema_3,rsi_ema_10) and any_high_bar
_base_rsi_cross_bear=[Link](rsi_ema_3,rsi_ema_10) and any_high_bar
rsi_cross_bull=_base_rsi_cross_bull and (close<ma_avg)
rsi_cross_bear=_base_rsi_cross_bear and (close>ma_avg)
var string rsi_signal=""
if rsi_cross_bull
rsi_signal:="BUY"
else if rsi_cross_bear
rsi_signal:="SELL"
else
rsi_signal:=""
var string ema_signal=""
if is_swing_buy
ema_signal:="BUY"
else if is_swing_sell
ema_signal:="SELL"
else
ema_signal:=""
var table
dash=[Link](position.top_right,4,3,bgcolor=[Link],frame_color=[Link],f
rame_width=1,border_width=1)
if [Link]

[Link](dash,0,0,"TREND",bgcolor=[Link],text_color=[Link],text_size="l
arge")

[Link](dash,1,0,"Scalp",bgcolor=[Link],text_color=[Link],text_size="l
arge")
[Link](dash,2,0,"EMA
Cross",bgcolor=[Link],text_color=[Link],text_size="large")
[Link](dash,3,0,"RSI
Cross",bgcolor=[Link],text_color=[Link],text_size="large")
[Link](dash,0,1,trend,bgcolor=trend=="UP"?[Link]:trend=="DOWN"?
[Link]:[Link],text_color=[Link],text_size="large")
[Link](dash,1,1,scalp_state,bgcolor=scalp_state=="BUY"?
[Link]:scalp_state=="SELL"?
[Link]:[Link],text_color=[Link],text_size="large")
[Link](dash,2,1,ema_signal,bgcolor=ema_signal=="BUY"?
[Link]:ema_signal=="SELL"?
[Link]:[Link],text_color=[Link],text_size="large")
[Link](dash,3,1,rsi_signal,bgcolor=rsi_signal=="BUY"?
[Link]:rsi_signal=="SELL"?
[Link]:[Link],text_color=[Link],text_size="large")
var label[] scalp_labels=[Link]<label>()
scalp_buy_label=(scalp_state=="BUY") and (scalp_state[1]!="BUY")
scalp_sell_label=(scalp_state=="SELL") and (scalp_state[1]!="SELL")
if scalp_buy_label
new_lbl=[Link](bar_index,low,"SCALP
BUY",style=label.style_label_up,color=[Link],textcolor=[Link],size=[Link]
rmal)
[Link](scalp_labels,new_lbl)
if scalp_sell_label
new_lbl=[Link](bar_index,high,"SCALP
SELL",style=label.style_label_down,color=[Link],textcolor=[Link],size=si
[Link])
[Link](scalp_labels,new_lbl)
if [Link](scalp_labels)>2
old_lbl=[Link](scalp_labels)
[Link](old_lbl)
var label[] rsi_labels=[Link]<label>()
rsi_buy_label=(rsi_cross_bull and not rsi_cross_bull[1])
rsi_sell_label=(rsi_cross_bear and not rsi_cross_bear[1])
if rsi_buy_label
new_lbl=[Link](bar_index,low,"RSI
BUY",style=label.style_label_up,color=[Link],textcolor=[Link],size=size
.normal)
[Link](rsi_labels,new_lbl)
if rsi_sell_label
new_lbl=[Link](bar_index,high,"RSI
SELL",style=label.style_label_down,color=[Link],textcolor=[Link],size=si
[Link])
[Link](rsi_labels,new_lbl)
if [Link](rsi_labels)>2
old_lbl=[Link](rsi_labels)
[Link](old_lbl)
var label[] ema_labels=[Link]<label>()
ema_buy_label=is_swing_buy
ema_sell_label=is_swing_sell
if ema_buy_label
new_lbl=[Link](bar_index,low,"EMA
BUY",style=label.style_label_up,color=[Link],textcolor=[Link],size=[Link]
rmal)
[Link](ema_labels,new_lbl)
if ema_sell_label
new_lbl=[Link](bar_index,high,"EMA
SELL",style=label.style_label_down,color=[Link],textcolor=[Link],size=si
[Link])
[Link](ema_labels,new_lbl)
if [Link](ema_labels)>2
old_lbl=[Link](ema_labels)
[Link](old_lbl)

You might also like