Source: https://fxcodebase.com/code/viewtopic.php?f=17&t=3329
Forum: 17 · Topic 3329 · 14 post(s)
Apprentice · Fri Feb 04, 2011 2:57 pm

The indicator is calculated by the formula STPMT = [4.1sto(5,3,3) + 2.5sto(14,3,3) + sto(45,14,3) + 4*sto(75,20,3)] / 11.6
In addition to the indicator, the indicator shows the moving average of it and individual components.
The indicator was revised and updated
bourik · Fri Feb 04, 2011 3:34 pm
Thanks you very much Apprentice
Jérôme
bourik · Sun Feb 06, 2011 8:04 am
Hello
I’m ashamed of all my requests but is it possible to make the indicator called “cycle”, which is the difference between the STPMT and is MM9
Respectfully
Jérôme
Apprentice · Sun Feb 06, 2011 8:50 am
Sure, but you will have to be more eloquent in giving, the request. MM9 is 9 period moving avegage of STPMT?
bourik · Sun Feb 06, 2011 11:40 am
this is the code of the indicator “cycle” for MT4 : it’s the difference between the STPMT and the MM9 of the STPMT
sorry but like you can see my english is very poor and I can’t explain better how is calculate this indicator
Code: Select all `//| Cycles
#property copyright “” #property link “”
#property indicator_separate_window #property indicator_buffers 7 #property indicator_color7 Red
// buffers double Cycle[]; double Buffer1[]; double Buffer2[]; double Buffer3[]; double Buffer4[]; double STPMT[]; double STPMT_MA[];
| // | Custom indicator initialization function |
int init() { string short_name; short_name=”Cycles”; IndicatorShortName(short_name); // indicators IndicatorBuffers(7); SetIndexBuffer(0, Buffer1); SetIndexBuffer(1, Buffer2); SetIndexBuffer(2, Buffer3); SetIndexBuffer(3, Buffer4); SetIndexBuffer(4, STPMT); SetIndexBuffer(5, STPMT_MA); SetIndexBuffer(6, Cycle);
SetIndexStyle(0, DRAW_NONE); SetIndexStyle(1, DRAW_NONE); SetIndexStyle(2, DRAW_NONE); SetIndexStyle(3, DRAW_NONE); SetIndexStyle(4, DRAW_NONE); SetIndexStyle(5, DRAW_NONE); SetIndexStyle(6, DRAW_LINE, EMPTY, 1);
// return(0); }
| // | iteration function |
int start() {
int index = 0; int counted_bars=IndicatorCounted();
int limit = Bars - counted_bars;
for(index=0;index<limit;index++) { Buffer1[index] = iStochastic( NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, index); Buffer2[index] = iStochastic( NULL, 0, 14, 3, 3, MODE_SMA, 0, MODE_SIGNAL, index); Buffer3[index] = iStochastic( NULL, 0, 45, 14, 3, MODE_SMA, 0, MODE_SIGNAL, index); Buffer4[index] = iStochastic( NULL, 0, 75, 20, 3, MODE_SMA, 0, MODE_SIGNAL, index); STPMT[index] = (4.1 * Buffer1[index] + 2.5 * Buffer2[index] + Buffer3[index] + 4 * Buffer4[index]) / 11.6; } for(index=0;index<limit;index++) { STPMT_MA[index] = iMAOnArray(STPMT, 0, 9, 0, MODE_SMA, index); Cycle[index] = (STPMT[index] - STPMT_MA[index])*6; } return(0); }` I hope it would be enough for my request
Apprentice · Sun Feb 06, 2011 3:19 pm

I hope this version suits your needs.
Cycle indicator is calculated on the basis of Medium Term Weighted Stochastics components. The formula of this indicator.
Cycle[period]= (STPMT[period]- STPMT_MA[period])*6;
bourik · Mon Feb 07, 2011 2:44 am
It’s perfect
Thanks a lot Apprentice and have a good week
Apprentice · Sat Feb 18, 2017 4:45 am
Indicator was revised and updated.
scandisk · Fri Mar 24, 2017 1:55 am
Hi Apprentice
I wanted custom levels and line color and thickness added to the STPMT.
Thanks
Apprentice · Sat Mar 25, 2017 6:55 am
Try it now.
scandisk · Sun Mar 26, 2017 1:05 am
Hi Apprentice
Awesome thanks again!! I just wanted one more request to add 5 custom levels instead of just 2?
Thanks!!!!
Apprentice · Sun Mar 26, 2017 6:21 am
Try this version.
scandisk · Sun Mar 26, 2017 12:32 pm
Apprentice wrote:
Cycle.lua
STPMT.lua
Try this version.
Hi Apprentice
You added levels for cycles only? I would like for STMPT if you don’t mind thanks your the best!!
Apprentice · Mon Mar 27, 2017 11:21 am
Was added to STMPT.lua also.