Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

r4bb1t

Holt Winter's Double Exponential Smoothing.

Recommended Posts

Hello Traders.

i've seen that someone implemented Holt Winter's double exponential smoothing indicator. which is used in business forecasting.

http://www.forex-tsd.com/blogs/newdigital/494-new-elite-section-indcators-holt-double-exponential-smoothing-indicators.html

and here's simple reference of it. http://vbautomation.110mb.com/FORECASTING/expoential_smoothing_methods.htm#Holt's

can anyone convert it to Easy Language please?

Share this post


Link to post
Share on other sites
can you describe what it is and how to use it?

 

Hi Tams.

it's kind of exponential smoothing. since normal EMA has an alpha factor that is determined as 2/(Period+1).

Holt Winter's method uses 2 factors called alpha and beta. the important factor is beta which weights more when data has trend. though it's not adaptive.

therefore we can expect that Holt Winter's method would fit better than normal EMA when market moves in a trend.

it's all i know. for mathematical reference please check here. http://www.scss.tcd.ie/Rozenn.Dahyot/ST3007/4DES.pdf

Share this post


Link to post
Share on other sites

This code does not work. It's not tested. It's not meant to be complete. It's totally wrong. It may be a pathetic and foolish attempt to help. So why am I posting it? Because I just like to make an effort and start somewhere. Maybe it will be a starting point. I don't want to do all the work myself, but I thought I'd make a feeble attempt just for fun. Sometimes getting started is the most difficult part.

 

input: Alpha(0.2), BetaHolt(0.3);
var: Level(0), Slope(0), SlopeInitial(0);
var: Y(0), F(0), k(0); // Y = price
var: InitialLevel(0);
var: Iterations(9);

Y=Close;
SlopeInitial = Y - Y[1];

InitialLevel=Y;

// Loop through for number of Interations

Level = (Alpha * Y) + ((1 - Alpha) *(Level[1]+BetaHolt[1]));
Slope = (BetaHolt * (Level-Level[1])) + ((1-BetaHolt)*Slope[1]);
F= Level + Slope;

F = Level + (k * Slope);

plot1(F, "DES");

Share this post


Link to post
Share on other sites
Because I just like to make an effort and start somewhere. Maybe it will be a starting point

 

Hi Tradewinds.

Thanks for paving the way. i'm also struggling by myself.

there's an excel worksheet file in the link of my first post.

seems it requires different calculation for initial iteration.

btw in your code. you're plotting Forecast line. not the smoothing line. (Level)

and i've noticed that when i replace alpha to 2/(Period+1) and beta to 0. it's exactly same with Normal EMA.

so the rest part to accomplishing it is beta, anyone join us?

Edited by r4bb1t

Share this post


Link to post
Share on other sites

by the way i've coded Brown's Double exponential smoothing in the reference document.

it's not the DEMA. it's slower than normal EMA and smoother. it's just enclosed EMA with EMA.

i've plotted normal EMA(Red) and BDES(Blue) together.

now, let's complete Holt Winter's too :)

 

 

#Brown's Double Exponential Smoothing
#Function Name : BDES

Inputs : Price(NumericSeries), Period(NumericSimple);
Vars : SES(0), Alpha(0);

Alpha = 2/(Period+1);	#same as normal EMA

IF Index==0 Then {
   SES=C;		#Single Exponential Smoothing
   BDES=C;		#Brown's Double Exponential Smoothing
} Else {
   SES=(Alpha*C)+((1-Alpha)*SES[1]);
   BDES=(Alpha*SES)+((1-Alpha)*BDES[1]);
}

bdes.png.f83575ee6ecbe2df617d5194891d39ba.png

Edited by r4bb1t

Share this post


Link to post
Share on other sites
btw in your code. you're plotting Forecast line. not the smoothing line. (Level)

 

Oh! :rofl: See, I learned something new. If I hadn't shared my imperfect code, I wouldn't have learned that. So what is the Forecast variable for anyway? What role does it play?

Share this post


Link to post
Share on other sites
So what is the Forecast variable for anyway? What role does it play?

 

my understanding is that the Forecast variable supposed to be precede data like link below.

but i've noticed that DEMA or ZLEMA came from brown's double exponential smoothing. it's the brown's Forecast variable.

i guess pic in the tsd link might be Holt Winter's forecast variable that made to accompany with price like ZLEMA does

 

https://www.student.gsu.edu/~lcross5/Forecasting%20Assignment.htm

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.