This spreadsheet study will extend the previous period’s ending VWAP values into the current period. This study works on intraday charts and historical charts using any of the VWAP Time Period Types (except Minutes).
Unzip the attached and put the contents in your Sierra Chart \Data folder, then click on Analysis >> VWAP ExtendPrev-
Set the Time Period Type in cell J1 to match the Time Period Type in the VWAP study settings.
Both the VWAP Time Period Type and cell J1 must be a greater interval than the chart bar.
The default subgraph settings show only the VWAP and the first band. If you want to see the other bands, set the Draw Styles of the other subgraphs to something other than Ignore.
The study collection will load the correct spreadsheet study with the correct settings, and it will add an instance of the Volume Weighted Average Price study. If you already have the VWAP study added to your chart, you can remove the instance this study collection adds.
The formulas on the spreadsheet assume the VWAP study appears in columns AA-AI. Either move the VWAP study to the top of the Studies to Graph list, or edit the formulas in cells K3-S3 to reference the correct VWAP columns.
This spreadsheet’s formulas are built on Sheet1, which corresponds to Chart #1. If you apply this study to a different chart number, you must copy the contents of cells I1-J2 on Sheet1 to cells I1-J2 of the corresponding Sheet#.
July 19th, 2013
Size: 48.04 KB
Downloaded: 326 times
1432
tomgilb
This is a modified version of the default thinkorswim VWAP indicator combined with the thinkscripter Chart Period VWAP and Standard Deviation Bands (https://www.thinkscripter.com/indicator/chart-period-vwap-and-standard-deviation-bands) to have three standard deviations rather than the default one sd. Has other options to calculate the bands but they may or may not be accurate.
* The "standard" Band Type is the default thinkorswim VWAP indicator formula.
* Cloud color can be changed under the "Globals" option.
Update 3/7/2014
* Available Time Frame was: Day, Week, Month, Chart.
Available Time Frame now: Day, Week, Month, Year, Minute, Hour, Chart, "Opt Exp", Bar.
* Added option to hide cloud.
* Added option to hide SD lines.
February 23rd, 2014
Size: 4.62 KB
Downloaded: 963 times
1524
rmejia
"This indicator was first published in Code Base at mql4.com 06.03.2008" (1) and later converted to NT8 by Jeremy Bankes. According to the mt4 free download website, the "Indicator Waddah Attar Explosion is very powerful. It alerts you to buy , sell , exit buy and exit sell."
This indicator works as it is supposed to and this code is not fully finished. If you are a coder and would like to contribute more to this, please feel encouraged to come up with a new version! The link below will guide you to the code.
Please contact the original author for any questions or comments.
April 10th, 2022
Size: 9.16 KB
Downloaded: 991 times
2527
lewtamarilla
Version 1
This indicator is a Walk Forward Optimizer for a pair of moving averages. The moving averages in this case is the Ahrens Moving Averages that I have previously posted in the elite section. Pay attention to the output window as I print the results of the optimization there.
HOW IT WORKS
At the beginning of each session it will optimize the two variables (Moving Average Periods) for the last three sessions and draw the optimized moving averages for the current session. So the optimized variables are never tested on the current session that it is being drawn. Optimized prices takes place after the moving average cross on the open of the next bar.
I used the walk forward method to avoid CPU lag and massive curve fitting.
It works only on minute charts at the moment, but i am exploring solutions for other chart types.
The indicator works a little different than websouth's implementation, because he was using the displacement chart feature which puts lines behind (historical) price. Within the indicator, I just painted the line using historical data, but it still plots real-time.
At any rate, it is a very interesting indicator. Sometimes it is a thing of beauty, others the visual aesthetics are not appealing but that usually means chop. If the indicator looks like shit then the price action is probably shit, too.
All colors are fully configurable, as is the shading, and opacity. You can also control the historical period rate.
Attached are a few screens plus the indicator. It's the top panel stuff.
March 27th, 2020
Size: 5.67 KB
Downloaded: 255 times
2199
makhmout
I have worked with long terms seasonals for a while as part of developing a futures portfolio system - hopefully for institutional clients at some point.
Although never used for the system, it was an attempt to almost eliminate optimization by applying a universal seasonal indicator to every instrument. It actually works, and well, the results were not good enough for me and so although I use it as a visual indicator, it is not part of any entry rule algorithm.
Ideally, this would be coded in arrays but I lack the skills to work with them in a context that combines text and numbers. Over my pay grade coding-wise!
In any case, it tracks the percentage move each week (this only works on weekly charts) and then puts them together in such a way that when an RSI of those values is plotted it instantly reveals whether or not there are regular or particular seasonal patterns.
In the picture attached you will see signals generated from a different seasonal system (part of my portfolio system) that has 59% successful trades going back over more then 20 years with 7% max drawdown. Not bad. But on the picture you can see the signals and compare how the indicator reads at the same time. As you can see, they are often in agreement. And this indicator will plot automatically on any weekly chart instantly revealing whether or not there are significant seasonal tendencies.
I suspect the same type of approach could be used for daily and intraday charts, albeit with the latter you might be looking for days-of-the-week, and/or hours of the day type behavior. Again, ability to code in arrays is key.
For those not using Tradestation, I paste in the code below.
Note on the picture: there is also an Equity indicator that shows current account balance from starting balance input, current trade P/L, current drawdown from maximum account high, and during DD's the histogram bars get progressively darker. It can also assume compounding in terms of the percentage drawdowns (i.e. of starting balance or the current balance after many years).
The ATR indicator shows either $$ or percentage of instrument ATR and also includes a money-management formula recommending nr. of contracts to trade.
If anyone wants either of these, let me know and I will gladly post them here.
PS. I am hoping some enterprising coder will want to translate this into Ninja script and/or use this as an kick starter to look into day-of-week or time-of-day type analysis. It's not rocket science, but you need to be good at coding arrays which I am not.
+++++++++++++++++++++
Pasted in Code
Indicator:
+++++++++++++++++++++
{***************************************
Written by: ccl-trading-systems.com
Description: Seasonal Indicator without Loop but using new Function
****************************************}
inputs: Rsilen(9),RunorNew(false),highline(70),lowline(30);
vars: runline(0),av(0),slow(0),count(0),slower(0),newrun(0),rsiline(0);
If currentbar >=43 then Begin
runline = VSeasRun2;
if (runline > 0 and runline[1] > 0) or (runline < 0 and runline[1] < 0) then newrun = runline + newrun[1] else newrun = runline;
If RunorNew then slow = averagefc(runline,3) else slow = averagefc(newrun,3);
rsiline = rsi(slow,rsilen);
vars: color(0);
Color = month(d); if color = 1 then color = darkgray;
{***************************************
Written by: ccl-trading-systems.com
Description: Seasonal Indicator without Arrays, last 10 times attempt
****************************************}
If TDN = 1 then begin TDNTot1 = TDNTot1 + Sday; Count1 = Count1+1; TDNAv1 = TDNTot1/Count1; end;
If TDN = 2 then begin TDNTot2 = TDNTot2 + Sday; Count2 = Count2+1; TDNAv2 = TDNTot2/Count2; end;
If TDN = 3 then begin TDNTot3 = TDNTot3 + Sday; Count3 = Count3+1; TDNAv3 = TDNTot3/Count3; end;
If TDN = 4 then begin TDNTot4 = TDNTot4 + Sday; Count4 = Count4+1; TDNAv4 = TDNTot4/Count4; end;
If TDN = 5 then begin TDNTot5 = TDNTot5 + Sday; Count5 = Count5+1; TDNAv5 = TDNTot5/Count5; end;
If TDN = 6 then begin TDNTot6 = TDNTot6 + Sday; Count6 = Count6+1; TDNAv6 = TDNTot6/Count6; end;
If TDN = 7 then begin TDNTot7 = TDNTot7 + Sday; Count7 = Count7+1; TDNAv7 = TDNTot7/Count7; end;
If TDN = 8 then begin TDNTot8 = TDNTot8 + Sday; Count8 = Count8+1; TDNAv8 = TDNTot8/Count8; end;
If TDN = 9 then begin TDNTot9 = TDNTot9 + Sday; Count9 = Count9+1; TDNAv9 = TDNTot9/Count9; end;
If TDN = 10 then begin TDNTot10 = TDNTot10 + Sday; Count10 = Count10+1; TDNAv10 = TDNTot10/Count10; end;
If TDN = 11 then begin TDNTot11 = TDNTot11 + Sday; Count11 = Count11+1; TDNAv11 = TDNTot11/Count11; end;
If TDN = 12 then begin TDNTot12 = TDNTot12 + Sday; Count12 = Count12+1; TDNAv12 = TDNTot12/Count12; end;
If TDN = 13 then begin TDNTot13 = TDNTot13 + Sday; Count13 = Count13+1; TDNAv13 = TDNTot13/Count13; end;
If TDN = 14 then begin TDNTot14 = TDNTot14 + Sday; Count14 = Count14+1; TDNAv14 = TDNTot14/Count14; end;
If TDN = 15 then begin TDNTot15 = TDNTot15 + Sday; Count15 = Count15+1; TDNAv15 = TDNTot15/Count15; end;
If TDN = 16 then begin TDNTot16 = TDNTot16 + Sday; Count16 = Count16+1; TDNAv16 = TDNTot16/Count16; end;
If TDN = 17 then begin TDNTot17 = TDNTot17 + Sday; Count17 = Count17+1; TDNAv17 = TDNTot17/Count17; end;
If TDN = 29 then begin TDNTot18 = TDNTot18 + Sday; Count18 = Count18+1; TDNAv18 = TDNTot18/Count18; end;
If TDN = 29 then begin TDNTot19 = TDNTot19 + Sday; Count19 = Count19+1; TDNAv19 = TDNTot19/Count19; end;
If TDN = 20 then begin TDNTot20 = TDNTot20 + Sday; Count20 = Count20+1; TDNAv20 = TDNTot20/Count20; end;
If TDN = 21 then begin TDNTot21 = TDNTot21 + Sday; Count21 = Count21+1; TDNAv21 = TDNTot21/Count21; end;
If TDN = 22 then begin TDNTot22 = TDNTot22 + Sday; Count22 = Count22+1; TDNAv22 = TDNTot22/Count22; end;
If TDN = 23 then begin TDNTot23 = TDNTot23 + Sday; Count23 = Count23+1; TDNAv23 = TDNTot23/Count23; end;
If TDN = 24 then begin TDNTot24 = TDNTot24 + Sday; Count24 = Count24+1; TDNAv24 = TDNTot24/Count24; end;
If TDN = 25 then begin TDNTot25 = TDNTot25 + Sday; Count25 = Count25+1; TDNAv25 = TDNTot25/Count25; end;
If TDN = 26 then begin TDNTot26 = TDNTot26 + Sday; Count26 = Count26+1; TDNAv26 = TDNTot26/Count26; end;
If TDN = 27 then begin TDNTot27 = TDNTot27 + Sday; Count27 = Count27+1; TDNAv27 = TDNTot27/Count27; end;
If TDN = 28 then begin TDNTot28 = TDNTot28 + Sday; Count28 = Count28+1; TDNAv28 = TDNTot28/Count28; end;
If TDN = 29 then begin TDNTot29 = TDNTot29 + Sday; Count29 = Count29+1; TDNAv29 = TDNTot29/Count29; end;
If TDN = 30 then begin TDNTot30 = TDNTot30 + Sday; Count30 = Count30+1; TDNAv30 = TDNTot30/Count30; end;
If TDN = 31 then begin TDNTot31 = TDNTot31 + Sday; Count31 = Count31+1; TDNAv31 = TDNTot31/Count31; end;
If TDN = 32 then begin TDNTot32 = TDNTot32 + Sday; Count32 = Count32+1; TDNAv32 = TDNTot32/Count32; end;
If TDN = 33 then begin TDNTot33 = TDNTot33 + Sday; Count33 = Count33+1; TDNAv33 = TDNTot33/Count33; end;
If TDN = 34 then begin TDNTot34 = TDNTot34 + Sday; Count34 = Count34+1; TDNAv34 = TDNTot34/Count34; end;
If TDN = 35 then begin TDNTot35 = TDNTot35 + Sday; Count35 = Count35+1; TDNAv35 = TDNTot35/Count35; end;
If TDN = 36 then begin TDNTot36 = TDNTot36 + Sday; Count36 = Count36+1; TDNAv36 = TDNTot36/Count36; end;
If TDN = 37 then begin TDNTot37 = TDNTot37 + Sday; Count37 = Count37+1; TDNAv37 = TDNTot37/Count37; end;
If TDN = 38 then begin TDNTot38 = TDNTot38 + Sday; Count38 = Count38+1; TDNAv38 = TDNTot38/Count38; end;
If TDN = 39 then begin TDNTot39 = TDNTot39 + Sday; Count39 = Count39+1; TDNAv39 = TDNTot39/Count39; end;
If TDN = 40 then begin TDNTot40 = TDNTot40 + Sday; Count40 = Count40+1; TDNAv40 = TDNTot40/Count40; end;
If TDN = 41 then begin TDNTot41 = TDNTot41 + Sday; Count41 = Count41+1; TDNAv41 = TDNTot41/Count41; end;
If TDN = 42 then begin TDNTot42 = TDNTot42 + Sday; Count42 = Count42+1; TDNAv42 = TDNTot42/Count42; end;
If TDN = 43 then begin TDNTot43 = TDNTot43 + Sday; Count43 = Count43+1; TDNAv43 = TDNTot43/Count43; end;
If TDN = 44 then begin TDNTot44 = TDNTot44 + Sday; Count44 = Count44+1; TDNAv44 = TDNTot44/Count44; end;
If TDN = 45 then begin TDNTot45 = TDNTot45 + Sday; Count45 = Count45+1; TDNAv45 = TDNTot45/Count45; end;
If TDN = 46 then begin TDNTot46 = TDNTot46 + Sday; Count46 = Count46+1; TDNAv46 = TDNTot46/Count46; end;
If TDN = 47 then begin TDNTot47 = TDNTot47 + Sday; Count47 = Count47+1; TDNAv47 = TDNTot47/Count47; end;
If TDN = 48 then begin TDNTot48 = TDNTot48 + Sday; Count48 = Count48+1; TDNAv48 = TDNTot48/Count48; end;
If TDN = 49 then begin TDNTot49 = TDNTot49 + Sday; Count49 = Count49+1; TDNAv49 = TDNTot49/Count49; end;
If TDN = 50 then begin TDNTot50 = TDNTot50 + Sday; Count50 = Count50+1; TDNAv50 = TDNTot50/Count50; end;
If TDN = 51 then begin TDNTot51 = TDNTot51 + Sday; Count51 = Count51+1; TDNAv51 = TDNTot51/Count51; end;
If TDN = 52 then begin TDNTot52 = TDNTot52 + Sday; Count52 = Count52+1; TDNAv52 = TDNTot52/Count52; end;
If TDN = 53 then begin TDNTot53 = TDNTot53 + Sday; Count53 = Count53+1; TDNAv53 = TDNTot53/Count53; end;
If TDN = 54 then begin TDNTot54 = TDNTot54 + Sday; Count54 = Count54+1; TDNAv54 = TDNTot54/Count54; end;
vars: runline(0),runlineav(0);
If TDN = 1 then begin Runline = TDNAv1; runlineav = averagefc(tdnav1,10); end;
If TDN = 2 then begin Runline = TDNAv2; runlineav = averagefc(tdnav2,10);end;
If TDN = 3 then begin Runline = TDNAv3; runlineav = averagefc(tdnav3,10);end;
If TDN = 4 then begin Runline = TDNAv4; runlineav = averagefc(tdnav4,10);end;
If TDN = 5 then begin Runline = TDNAv5; runlineav = averagefc(tdnav5,10);end;
If TDN = 6 then begin Runline = TDNAv6; runlineav = averagefc(tdnav6,10);end;
If TDN = 7 then begin Runline = TDNAv7; runlineav = averagefc(tdnav7,10);end;
If TDN = 8 then begin Runline = TDNAv8; runlineav = averagefc(tdnav8,10);end;
If TDN = 9 then begin Runline = TDNAv9; runlineav = averagefc(tdnav9,10);end;
If TDN = 10 then begin Runline = TDNAv10; runlineav = averagefc(tdnav10,10); end;
If TDN = 11 then begin Runline = TDNAv11; runlineav = averagefc(tdnav11,10); end;
If TDN = 12 then begin Runline = TDNAv12; runlineav = averagefc(tdnav12,10); end;
If TDN = 13 then begin Runline = TDNAv13; runlineav = averagefc(tdnav13,10); end;
If TDN = 14 then begin Runline = TDNAv14; runlineav = averagefc(tdnav14,10); end;
If TDN = 15 then begin Runline = TDNAv15; runlineav = averagefc(tdnav15,10); end;
If TDN = 16 then begin Runline = TDNAv16; runlineav = averagefc(tdnav16,10); end;
If TDN = 17 then begin Runline = TDNAv17; runlineav = averagefc(tdnav17,10); end;
If TDN = 18 then begin Runline = TDNAv18; runlineav = averagefc(tdnav18,10); end;
If TDN = 19 then begin Runline = TDNAv19; runlineav = averagefc(tdnav19,10); end;
If TDN = 20 then begin Runline = TDNAv20; runlineav = averagefc(tdnav20,10); end;
If TDN = 21 then begin Runline = TDNAv21; runlineav = averagefc(tdnav21,10); end;
If TDN = 22 then begin Runline = TDNAv22; runlineav = averagefc(tdnav22,10); end;
If TDN = 23 then begin Runline = TDNAv23; runlineav = averagefc(tdnav23,10); end;
If TDN = 24 then begin Runline = TDNAv24; runlineav = averagefc(tdnav24,10); end;
If TDN = 25 then begin Runline = TDNAv25; runlineav = averagefc(tdnav25,10); end;
If TDN = 26 then begin Runline = TDNAv26; runlineav = averagefc(tdnav26,10); end;
If TDN = 27 then begin Runline = TDNAv27; runlineav = averagefc(tdnav27,10); end;
If TDN = 28 then begin Runline = TDNAv28; runlineav = averagefc(tdnav28,10); end;
If TDN = 29 then begin Runline = TDNAv29; runlineav = averagefc(tdnav29,10); end;
If TDN = 30 then begin Runline = TDNAv30; runlineav = averagefc(tdnav30,10); end;
If TDN = 31 then begin Runline = TDNAv31; runlineav = averagefc(tdnav31,10); end;
If TDN = 32 then begin Runline = TDNAv32; runlineav = averagefc(tdnav32,10); end;
If TDN = 33 then begin Runline = TDNAv33; runlineav = averagefc(tdnav33,10); end;
If TDN = 34 then begin Runline = TDNAv34; runlineav = averagefc(tdnav34,10); end;
If TDN = 35 then begin Runline = TDNAv35; runlineav = averagefc(tdnav35,10); end;
If TDN = 36 then begin Runline = TDNAv36; runlineav = averagefc(tdnav36,10); end;
If TDN = 37 then begin Runline = TDNAv37; runlineav = averagefc(tdnav37,10); end;
If TDN = 38 then begin Runline = TDNAv38; runlineav = averagefc(tdnav38,10); end;
If TDN = 39 then begin Runline = TDNAv39; runlineav = averagefc(tdnav39,10); end;
If TDN = 40 then begin Runline = TDNAv40; runlineav = averagefc(tdnav40,10); end;
If TDN = 41 then begin Runline = TDNAv41; runlineav = averagefc(tdnav41,10); end;
If TDN = 42 then begin Runline = TDNAv42; runlineav = averagefc(tdnav42,10); end;
If TDN = 43 then begin Runline = TDNAv43; runlineav = averagefc(tdnav43,10); end;
If TDN = 44 then begin Runline = TDNAv44; runlineav = averagefc(tdnav44,10); end;
If TDN = 45 then begin Runline = TDNAv45; runlineav = averagefc(tdnav45,10); end;
If TDN = 46 then begin Runline = TDNAv46; runlineav = averagefc(tdnav46,10); end;
If TDN = 47 then begin Runline = TDNAv47; runlineav = averagefc(tdnav47,10); end;
If TDN = 48 then begin Runline = TDNAv48; runlineav = averagefc(tdnav48,10); end;
If TDN = 49 then begin Runline = TDNAv49; runlineav = averagefc(tdnav49,10); end;
If TDN = 50 then begin Runline = TDNAv50; runlineav = averagefc(tdnav50,10); end;
If TDN = 51 then begin Runline = TDNAv51; runlineav = averagefc(tdnav51,10); end;
If TDN = 52 then begin Runline = TDNAv52; runlineav = averagefc(tdnav52,10); end;
If TDN = 53 then begin Runline = TDNAv53; runlineav = averagefc(tdnav53,10); end;
If TDN = 54 then begin Runline = TDNAv54; runlineav = averagefc(tdnav54,10); end;
September 17th, 2009 04:32 AM keepdchange Very Nice. I just don't know how to put this file in Ninja. Do I have to convert to zip file?! Appreciate your help.
September 2nd, 2009 01:31 AM Big Mike Nice work websouth
May 8th, 2017 10:13 AM moneypenny Mike - This indicator has made more difference in my trading than any other so far! THANK YOU!!!!!whoo:
January 10th, 2016 07:01 PM bobc635 Thanks Mike.... looks very nice. Playing with PnF on CL futures. PnF seems to give a better look for my eye... I am l
iking it.
Bob
October 16th, 2014 10:20 AM ShaunG I am not a hundred present sure how it work's Mike! Sure is a thing of beauty! Thanks!
October 6th, 2014 11:37 PM TakingStock12 Very nice indicator Mike! Very helpful -- thanks!
February 2nd, 2011 01:48 PM minsalaco Mike: I've loaded the Wave Indicator but looks different from your four screen shots in that the entry and exit indicat
ors that are below the price action are missing. For this indicator, what are you using for entry and exit points? Is
there another indicator I should be using with the Wave Indicator? Thanks in advance.
November 28th, 2020 04:38 AM Colin F The download file is a video not a NT8 archive.
November 7th, 2018 05:46 AM romus Great tool, Thank you!
March 5th, 2016 12:23 PM canariohkg36 it does not work
February 24th, 2016 12:22 AM Trade58 I appears that this issue was presented on April 4, 2015, but has not been resolved. The link still downloads a .TS movi
e file.
It would be helpful to locate a working VWAP indicator for NT7. The one located in the Ninja Forum is buggy and does not
print an accurate volume weighted average price.
From what we can determine, a standard VWAP indicator does not exist in either the Elite or non-elite sections.
April 4th, 2015 02:26 PM TraderWW I have problem installing it. The file format is .ts, which is a video file. Can you help?