Daily Historical Volatility StdDev Levels

จำนวนเข้าชม 4017
This indicator plots Daily Standard deviation levels on price chart based on Historical Volatility (HV). It uses the most common approach for calculating historical volatility as standard deviation of logarithmic returns, based on daily closing/settlement prices.

Assets: Currency Pairs, Commodities , also works on stocks, some indices.
Time Frames: 5min to 60min. This will also work on Daily Chart , by setting "DaystoExpire" to 21

  • Use Daily Data to Calculate StdDev HV (default), otherwise use the charts Time Frame
  • Lookback = number of days/periods to calculate stddev of HV (21 by default)
  • Annual = number of trading days in a calender year (252 by default)
  • Days to Expiry = number of days for the life of this option ( for auto calculation
    this is 1 for intraday, 21 for daily and annual when chart TF used)
  • Settlement Source = close price by default, can use another source.
  • Settlement Volume Weighted Average Length = by setting this to >1 then an average
    is used for settlement.
  • Display ### Standard Deviation Levels = select what levels are to be displayed.

เอกสารเผยแพร่: Corrected Change of day detection for Intraday TFs
Corrected -0.75 Label.
เอกสารเผยแพร่: Small changes:
  • Changed to only display background fill for upto +/- 1 Stddev.
  • Added option to Display Todays Only Levels.
เอกสารเผยแพร่: ...
  • Made changes so that it also work with Renko Charts, BUT only works well with short TF (<=5min) and brick (<=6pip).
  • Added Option to display Previous Day's High Low Levels.
  • Added Option to display Current Day's High Low Levels.
  • Changed 0.75 level to 0.7 level.
  • Shortened short title to "HVSD" for easier visual when Indicator Labels are used.
เอกสารเผยแพร่: ...
  • Modified the way displaying "Only Today" levels, now only show up within the current days price action.

เอกสารเผยแพร่: Efficiency Update
  • Improved efficiency by reducing the number of plot lines required by adding "style=2" (Line with Breaks) to the plot options.
  • Added fill colour for 2nd and 3rd Stddevs.

เอกสารเผยแพร่: Minor update
  • Corrected no History flag "nohist" calculation, would misread the number of days of data left in the history.
ลบออกจากสคริปส์โปรด เพิ่มเข้าไปในสคริปส์โปรด


Long waiting for this script to be here in TV. Thanks JustUncleL for your effort and generosity making this available for the whole community. Each line represents the EXPECTED move of the price based on the standard deviation formula using the historical volatility data of the underlying. Just drop the indicator on any chart and see for your self how nicely the price has reacted when has reached those lines. Nicely done UncleL thank you very much!
+3 ตอบกลับ
Question: if you state: // get the Daily Settlement

settlement = sLength==1? src : vwma(src,sLength)
settlement := newDay ? settlement : nz(settlement)

Then you call:

// Calculate STDdev over life of the option (generally this is one day for 5min to 60min TFs,
// and 21 days for Daily TF)
stdhv = 0.0
DaystoExpire = DaystoExpire_==0? isintraday? useDaily? 1 : min(annual,1440/interval) : 21 : DaystoExpire_
stdhv := newDay? settlement*hv*sqrt(DaystoExpire/annual) : nz(stdhv)

To which of the settlements then the program is referring to?

JustUncleL syracusepro
@syracusepro, Settlement is generally the last close (src) value of the previous Day, there is an option to create a volume weighted average of close instead. So basically the value for settlement used in subsequent calculations is always the same until the next change of Day.
syracusepro JustUncleL
@JustUncleL, Thanks a lot.
Very very nice work.

Hopefully it can work on indices in the future. Thank you!
JustUncleL edin228
@edin228, I have updated the script with a correction on new Day detection. This update now seems to work OK on indices better, give it a try. I had a bit of trouble getting the new day detection to work until I added the flags barmerge.gaps_off and barmerge.lookahead_on to the security call for Daily time.
edin228 JustUncleL
@JustUncleL, Works perfectly! thank you very much, excellent work
It is start = security(tickerid,"D", time) such as NY trading start time and then
it is newDay = isintraday ? hour(time)==hour(start) and minute(time)==minute(start) : dayofmonth(time)<dayofmonth(time) such as time from start trading time to time before end if day?

JustUncleL syracusepro
@syracusepro, Yes, however, I have now changed the new day detection in the latest correction. The old code did not always work when there is a gap in the data stream at the start of day.
หน้าแรก ตัวช่วยคัดกรองหุ้น ตัวคัดกรองฟอเร็กซ์ ตัวคัดกรองคริปโต ปฏิทินเศรษฐกิจ มันทำงานได้อย่างไร ฟีเจอร์ของชาร์ต อัตราค่าบริการ แนะนำเพื่อน กฎระเบียบการใช้งาน ศูนย์ช่วยเหลือ โซลูชั่นสำหรับเว็บไซต์ & โบรกเกอร์ วิดเจ็ต ชาร์ตโซลูชั่น Lightweight ชาร์ตไลบรารี บล็อก & ข่าว Twitter
โปรไฟล์ ตั้งค่าโปรไฟล์ บัญชีและการเรียกเก็บเงิน เพื่อนที่ชวนมา เหรียญ ตั๋วการขอความสนับสนุนของฉัน ศูนย์ช่วยเหลือ ไอเดียที่เผยแพร่ ผู้ติดตาม ติดตาม ข้อความส่วนตัว แชท ออกจากระบบ