udc Posted August 17, 2012 Author Report Share Posted August 17, 2012 UDC, Brilliant job with Metatrader Ocean Indicators!! I am sure in the not to distant future a lot of us on this forum will be thanking you a lot more after we've done some demo/real trading! Any luck with Ocn STX yet? :D Thank you. I can't give you ETA on STX, it depends when I get time (and mood) for it. I may finish some work sooner, get ahead of the deadline and STX is here, but I really can't predict these things. Even when it looks like something like that is going to happen some other urgent task may appear and if it's business it will have a priority. Stop the clock for 1 day and STX is done 8-) All I can somewhat promise is that I want to finish all Ocean related programming this year, next year I will focus on different thing in my spare time. I see that it is not in the TSD elite upload.......? I didn't get this question, what is not in TSD elite? Quote Link to comment Share on other sites More sharing options...
gbg Posted August 17, 2012 Report Share Posted August 17, 2012 Thanks udc I....(we all) will be watching this space! Good luck Quote Link to comment Share on other sites More sharing options...
udc Posted August 21, 2012 Author Report Share Posted August 21, 2012 Ocn_FastNMAvsNMA This is a little indi I wanted to make for a while. All what it does is showing a relative position of FastNMA compared to NMA. It may be useful for those who want to quickly see whether FastNMA is above or below NMA but for some reason don't want to have them in their main chart. For the lack of a better name I named it "FastNMAvsNMA". For BB maniacs I added the SD bands with typical features as previously seen on TV, you know, all the jazz. The following picture shows NMA and FastNMA (Ocn_NMAx indi, that is) in the main chart and 3x Ocn_FastNMAvsNMA indi with various settings. http://img819.imageshack.us/img819/3299/ocnfastnmavsnma.png // Ocn_FastNMAvsNMA version 1.00 #property copyright "NMA algorithm © jim sloman, for metatrader programmed by udc" #property link "[email protected]" #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Magenta #property indicator_color2 Silver #property indicator_color3 Silver #property indicator_color4 Silver #property indicator_level1 0 #property indicator_levelcolor Gray #property indicator_levelstyle 2 extern int NMA_period = 40; extern int FastNMA_period = 40; extern int FastNMA_LB_min = 8; extern bool Show_SD = false; extern int SD_len = 30; extern double SD_up = 2; extern double SD_dn = 2; extern bool Show_SD_1line_only = false; extern bool Show_SD_3lines_up = true; extern bool Show_SD_3lines_dn = true; extern bool Show_SD_3lines_md = true; double FastNMAvsNMA[]; double SD[]; double SD2[]; double SD3[]; double NMA[]; double FastNMA[]; int init() { string name = "FastNMAvsNMA(" + NMA_period + ", " + FastNMA_period + ", " + FastNMA_LB_min + ")"; IndicatorShortName(name); IndicatorBuffers(6); SetIndexBuffer(0, FastNMAvsNMA); SetIndexLabel(0, name); SetIndexBuffer(1, SD); SetIndexBuffer(2, SD2); SetIndexBuffer(3, SD3); if(Show_SD_1line_only) { SetIndexLabel(1, "FastNMAvsNMA_SD(" + SD_len + ")"); SetIndexLabel(2, "unused"); SetIndexLabel(3, "unused"); } else { if(Show_SD_3lines_up) SetIndexLabel(1, "FastNMAvsNMA_SD_up(" + SD_len + ")"); else SetIndexLabel(1, "unused"); if(Show_SD_3lines_dn) SetIndexLabel(2, "FastNMAvsNMA_SD_dn(" + SD_len + ")"); else SetIndexLabel(2, "unused"); if(Show_SD_3lines_md) SetIndexLabel(3, "FastNMAvsNMA_SD_md(" + SD_len + ")"); else SetIndexLabel(3, "unused"); } SetIndexBuffer(4, NMA); SetIndexBuffer(5, FastNMA); return(0); } int start() { int limit, i, ii, counted_bars = IndicatorCounted()-1; int max = MathMax(NMA_period, FastNMA_period); double nmasum, nmaabssum, nmaratio, nmmnum, maxnmm, fastnmasum, fastnmaabssum, fastnmaratio, temp; bool nmadone, fastnmadone; if(Bars <= max) return(0); if(counted_bars < 0) counted_bars = 0; if(counted_bars > max) limit = Bars - counted_bars; else limit = Bars - max - 1; for(i = limit; i >= 0; i--) { if(i == Bars - max - 1) { NMA[i+1] = Close[i+1]; FastNMA[i+1] = Close[i+1]; } nmaratio = 0; maxnmm = 0; fastnmaratio = 0; int NMA_LB_max; for(ii = 1; ii <= FastNMA_period; ii++) { nmmnum = (MathLog(Close[i]) - MathLog(Close[i+ii])) / MathSqrt(ii); if(MathAbs(nmmnum) > maxnmm) { maxnmm = MathAbs(nmmnum); NMA_LB_max = ii; } } if(NMA_LB_max < FastNMA_LB_min) NMA_LB_max = FastNMA_LB_min; nmasum = (MathLog(Close[i]) - MathLog(Close[i+1])) + (MathLog(Close[i+1]) - MathLog(Close[i+2])) * (MathSqrt(2)-1); fastnmasum = nmasum; nmadone = false; fastnmadone = false; ii = 2; while( !(nmadone) || !(fastnmadone) ) { temp = (MathLog(Close[i+ii]) - MathLog(Close[i+ii+1])) * (MathSqrt(ii+1) - MathSqrt(ii)); if(ii >= NMA_period) nmadone=true; else nmasum += temp; if(ii >= NMA_LB_max) fastnmadone=true; else fastnmasum += temp; ii++; } nmaabssum = MathAbs(nmasum); fastnmaabssum = MathAbs(fastnmasum); nmasum = 0; fastnmasum = 0; nmadone = false; fastnmadone = false; ii = 0; while( !(nmadone) || !(fastnmadone) ) { temp = MathAbs(MathLog(Close[i+ii]) - MathLog(Close[i+ii+1])); if(ii >= NMA_period) nmadone=true; else nmasum += temp; if(ii >= NMA_LB_max) fastnmadone=true; else fastnmasum += temp; ii++; } if(nmasum != 0) nmaratio = nmaabssum / nmasum; if(fastnmasum != 0) fastnmaratio = fastnmaabssum / fastnmasum; NMA[i] = NMA[i+1] + (Close[i] - NMA[i+1]) * nmaratio; FastNMA[i] = FastNMA[i+1] + (Close[i] - FastNMA[i+1]) * fastnmaratio; FastNMAvsNMA[i] = FastNMA[i] - NMA[i]; } if(Show_SD) for(i = limit; i >= 0; i--) if(i < Bars - max - 1 - SD_len) { if(Show_SD_1line_only) { if(FastNMAvsNMA[i] == 0) SD[i] = 0; else if(FastNMAvsNMA[i] > 0) SD[i] = iBandsOnArray(FastNMAvsNMA, 0, SD_len, SD_up, 0, MODE_UPPER, i); else if(FastNMAvsNMA[i] < 0) SD[i] = iBandsOnArray(FastNMAvsNMA, 0, SD_len, SD_dn, 0, MODE_LOWER, i); } else { if(Show_SD_3lines_up) SD[i] = iBandsOnArray(FastNMAvsNMA, 0, SD_len, SD_up, 0, MODE_UPPER, i); if(Show_SD_3lines_dn) SD2[i] = iBandsOnArray(FastNMAvsNMA, 0, SD_len, SD_dn, 0, MODE_LOWER, i); if(Show_SD_3lines_md) SD3[i] = (iBandsOnArray(FastNMAvsNMA, 0, SD_len, SD_up, 0, MODE_UPPER, i)+ iBandsOnArray(FastNMAvsNMA, 0, SD_len, SD_dn, 0, MODE_LOWER, i) ) / 2; } } return(0); } Source code: http://pastebin.com/Yt7EkFbH Hopefully someone will find it useful. taipan, ⭐ Ormazd, propro and 1 other 4 Quote Link to comment Share on other sites More sharing options...
udc Posted August 21, 2012 Author Report Share Posted August 21, 2012 Ocn_FastNMAvsNMA_NMS Now those who would prefer seeing FastNMA's slope towards NMA, regardless of its position, may find useful a version of Ocn_FastNMAvsNMA with NMS (natural market slope) internally applied onto it: Ocn_FastNMAvsNMA_NMS. The screenshot should hint its function: http://img525.imageshack.us/img525/668/ocnfastnmavsnmanms.png // Ocn_FastNMAvsNMA_NMS version 1.00 #property copyright "NMA & NMS algorithms © jim sloman, for metatrader programmed by udc" #property link "[email protected]" #property indicator_separate_window #property indicator_buffers 5 #property indicator_color1 Magenta #property indicator_color2 Lime #property indicator_color3 Silver #property indicator_color4 Silver #property indicator_color5 Silver #property indicator_level1 0 #property indicator_levelcolor Gray #property indicator_levelstyle 2 extern int NMA_period = 40; extern int FastNMA_period = 40; extern int FastNMA_LB_min = 8; extern int NMS_period = 40; extern bool Show_ZH = true; extern double ZH_displacement = 0; extern int ZH_symbol = 119; extern bool HistogramInsteadLine = false; extern bool Show_SD = false; extern int SD_len = 30; extern double SD_up = 2; extern double SD_dn = 2; extern bool Show_SD_1line_only = false; extern bool Show_SD_3lines_up = true; extern bool Show_SD_3lines_dn = true; extern bool Show_SD_3lines_md = true; extern bool Zero_SD_3lines_when_ZH = false; double FastNMAvsNMA_NMS[]; double ZH[]; double SD[]; double SD2[]; double SD3[]; double NMA[]; double FastNMA[]; double FastNMAvsNMA[]; int init() { string name = "FastNMAvsNMA_NMS(" + NMA_period + ", " + FastNMA_period + ", " + FastNMA_LB_min + ", " + NMS_period + ")"; IndicatorShortName(name); IndicatorBuffers(8); SetIndexBuffer(0, FastNMAvsNMA_NMS); SetIndexLabel(0, name); if(HistogramInsteadLine) SetIndexStyle(0, DRAW_HISTOGRAM); else SetIndexStyle(0, DRAW_LINE); SetIndexBuffer(1, ZH); SetIndexLabel(1, "FastNMAvsNMA_NMS_ZH"); SetIndexStyle(1, DRAW_ARROW); SetIndexArrow(1, ZH_symbol); SetIndexBuffer(2, SD); SetIndexBuffer(3, SD2); SetIndexBuffer(4, SD3); if(Show_SD_1line_only) { SetIndexLabel(2, "FastNMAvsNMA_NMS_SD(" + SD_len + ")"); SetIndexLabel(3, "unused"); SetIndexLabel(4, "unused"); } else { if(Show_SD_3lines_up) SetIndexLabel(2, "FastNMAvsNMA_NMS_SD_up(" + SD_len + ")"); else SetIndexLabel(2, "unused"); if(Show_SD_3lines_dn) SetIndexLabel(3, "FastNMAvsNMA_NMS_SD_dn(" + SD_len + ")"); else SetIndexLabel(3, "unused"); if(Show_SD_3lines_md) SetIndexLabel(4, "FastNMAvsNMA_NMS_SD_md(" + SD_len + ")"); else SetIndexLabel(4, "unused"); } SetIndexBuffer(5, NMA); SetIndexBuffer(6, FastNMA); SetIndexBuffer(7, FastNMAvsNMA); return(0); } int start() { int limit, i, ii, counted_bars = IndicatorCounted()-1; int max = MathMax(NMA_period, FastNMA_period); double nmasum, nmaabssum, nmaratio, nmmnum, maxnmm, fastnmasum, fastnmaabssum, fastnmaratio, temp, nms2; bool nmadone, fastnmadone; if(Bars <= max+NMS_period) return(0); if(counted_bars < 0) counted_bars = 0; if(counted_bars > max) limit = Bars - counted_bars; else limit = Bars - max - 1; for(i = limit; i >= 0; i--) { if(i == Bars - max - 1) { NMA[i+1] = Close[i+1]; FastNMA[i+1] = Close[i+1]; } nmaratio = 0; maxnmm = 0; fastnmaratio = 0; int NMA_LB_max; for(ii = 1; ii <= FastNMA_period; ii++) { nmmnum = (MathLog(Close[i]) - MathLog(Close[i+ii])) / MathSqrt(ii); if(MathAbs(nmmnum) > maxnmm) { maxnmm = MathAbs(nmmnum); NMA_LB_max = ii; } } if(NMA_LB_max < FastNMA_LB_min) NMA_LB_max = FastNMA_LB_min; nmasum = (MathLog(Close[i]) - MathLog(Close[i+1])) + (MathLog(Close[i+1]) - MathLog(Close[i+2])) * (MathSqrt(2)-1); fastnmasum = nmasum; nmadone = false; fastnmadone = false; ii = 2; while( !(nmadone) || !(fastnmadone) ) { temp = (MathLog(Close[i+ii]) - MathLog(Close[i+ii+1])) * (MathSqrt(ii+1) - MathSqrt(ii)); if(ii >= NMA_period) nmadone=true; else nmasum += temp; if(ii >= NMA_LB_max) fastnmadone=true; else fastnmasum += temp; ii++; } nmaabssum = MathAbs(nmasum); fastnmaabssum = MathAbs(fastnmasum); nmasum = 0; fastnmasum = 0; nmadone = false; fastnmadone = false; ii = 0; while( !(nmadone) || !(fastnmadone) ) { temp = MathAbs(MathLog(Close[i+ii]) - MathLog(Close[i+ii+1])); if(ii >= NMA_period) nmadone=true; else nmasum += temp; if(ii >= NMA_LB_max) fastnmadone=true; else fastnmasum += temp; ii++; } if(nmasum != 0) nmaratio = nmaabssum / nmasum; if(fastnmasum != 0) fastnmaratio = fastnmaabssum / fastnmasum; NMA[i] = NMA[i+1] + (Close[i] - NMA[i+1]) * nmaratio; FastNMA[i] = FastNMA[i+1] + (Close[i] - FastNMA[i+1]) * fastnmaratio; FastNMAvsNMA[i] = FastNMA[i] - NMA[i]; } for(i = limit; i >= 0; i--) if(i < Bars - max - 1 - NMS_period) { nms2 = 0; for(ii = 1; ii <= NMS_period; ii++) { double oLRSlope = 0, SumXY = 0, SumY = 0, SumX, SumXSqr, Divisor; if(ii > 1) { SumX = ii * (ii - 1) * 0.5; SumXSqr = ii * (ii - 1) * (2 * ii - 1) * 1/6; Divisor = (SumX * SumX) - ii * SumXSqr; for(int iii = 0; iii < ii; iii++) { SumXY += iii * FastNMAvsNMA[i+iii]; SumY += FastNMAvsNMA[i+iii]; } oLRSlope = (ii * SumXY - SumX * SumY) / Divisor; } nms2 += oLRSlope * MathSqrt(ii); } FastNMAvsNMA_NMS[i] = nms2 * 100; if(Show_ZH) { if(FastNMAvsNMA_NMS[i] == 0) ZH[i] = ZH_displacement; else ZH[i] = EMPTY_VALUE; } } if(Show_SD) for(i = limit; i >= 0; i--) if(i < Bars - max - 1 - NMS_period - SD_len) { if(Show_SD_1line_only) { if(FastNMAvsNMA_NMS[i] == 0) SD[i] = 0; else if(FastNMAvsNMA_NMS[i] > 0) SD[i] = iBandsOnArray(FastNMAvsNMA_NMS, 0, SD_len, SD_up, 0, MODE_UPPER, i); else if(FastNMAvsNMA_NMS[i] < 0) SD[i] = iBandsOnArray(FastNMAvsNMA_NMS, 0, SD_len, SD_dn, 0, MODE_LOWER, i); } else { if((Zero_SD_3lines_when_ZH) && (FastNMAvsNMA_NMS[i] == 0)) { if(Show_SD_3lines_up) SD[i] = 0; if(Show_SD_3lines_dn) SD2[i] = 0; if(Show_SD_3lines_md) SD3[i] = 0; } else { if(Show_SD_3lines_up) SD[i] = iBandsOnArray(FastNMAvsNMA_NMS, 0, SD_len, SD_up, 0, MODE_UPPER, i); if(Show_SD_3lines_dn) SD2[i] = iBandsOnArray(FastNMAvsNMA_NMS, 0, SD_len, SD_dn, 0, MODE_LOWER, i); if(Show_SD_3lines_md) SD3[i] = (iBandsOnArray(FastNMAvsNMA_NMS, 0, SD_len, SD_up, 0, MODE_UPPER, i)+ iBandsOnArray(FastNMAvsNMA_NMS, 0, SD_len, SD_dn, 0, MODE_LOWER, i) ) / 2; } } } return(0); } Source code: http://pastebin.com/KQNRSwY2 Also a version 1.01 of Ocn_FastNMAvsNMA with a new switch "ValuesInPips" added (turned on in the picture above): http://pastebin.com/gZJMNn2W Quote Link to comment Share on other sites More sharing options...
wildeazoscar Posted August 21, 2012 Report Share Posted August 21, 2012 The Derived Indicator is fine to be included in a trading Arsenal provided it has a trade initiation indicator I can think of two such which you may care to include (Again, I do not believe in reading patterns through a program as I believe in human judgement) 1. Maximum number of cumulative consecutive failures in favour of such swings ( it may be directional, in which case you have the trade direction or non-directional in case of which you have a Breakout on either side) 2. A failure just at the completion of a Wave5 after completion of a larger TF Wave4 ( to add more cream, you can add one more completion of a Mega TF Wave4) Quote Link to comment Share on other sites More sharing options...
wakjoe Posted August 24, 2012 Report Share Posted August 24, 2012 Hello, For those II users who want to get a quick summary of the Ocean Theory http://www.4shared.com/rar/ERD6R0E3/Slo.html or intend to read the book only: http://www.4shared.com/office/b589PR_M/SlOTh.html Sixer im sorry sixer, is this book the same as what udc has uploaded? Quote Link to comment Share on other sites More sharing options...
udc Posted August 25, 2012 Author Report Share Posted August 25, 2012 Ocn_FastNMAvsNMA_MTF Those who are interested in FastNMAvsNMA crossovers on multiple timeframes may find useful the multi-timeframe version: "Ocn_FastNMAvsNMA_MTF". This allows you to stack up several FastNMAvsNMA indicators each showing data from a different timeframe and this all in a single chart window. To specify of which timeframe you want to display FastNMAvsNMA, simply set the "TF" variable. You can choose any timeframe you want (values 1, 5, 15, 30, 60, 240, 1440, 10080 and 43200), if there is enough data available it will be calculated and displayed no matter what timeframe is the current chart. If you want to use chart's timeframe you can either set TF appropriately or leave it at 0 (default value). The following screenshot shows M5 chart with FastNMAvsNMA from M1 (yellow), M5 (orange) and M15 (red). http://img842.imageshack.us/img842/2306/ocnfastnmavsnmamtf2.png Another example shows M15 chart with FastNMAvsNMA from M1 (white), M5 (yellow), M15 (orange), M30 (red) and H1 (purple). http://img338.imageshack.us/img338/2016/ocnfastnmavsnmamtf.png And of course you can use the multi-timeframe SD bands as well: http://img27.imageshack.us/img27/4687/ocnfastnmavsnmamtfsd.png // Ocn_FastNMAvsNMA_MTF version 1.10 #property copyright "NMA algorithm © jim sloman, for metatrader programmed by udc" #property link "[email protected]" #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Magenta #property indicator_color2 Silver #property indicator_color3 Silver #property indicator_color4 Silver #property indicator_level1 0 #property indicator_levelcolor Gray #property indicator_levelstyle 2 extern int TF = 0; extern int NMA_period = 40; extern int FastNMA_period = 40; extern int FastNMA_LB_min = 8; extern bool Show_SD = false; extern int SD_len = 30; extern double SD_up = 2; extern double SD_dn = 2; extern bool Show_SD_1line_only = false; extern bool Show_SD_3lines_up = true; extern bool Show_SD_3lines_dn = true; extern bool Show_SD_3lines_md = true; extern bool ValuesInPips = false; extern int MaxBars = 0; double FastNMAvsNMA[]; double SD[]; double SD2[]; double SD3[]; int NMAmtfbars; double NMAmtf[][3]; double FastNMAvsNMAmtf[]; double point; int init() { string tf = ""; if(TF == PERIOD_M1) tf = "_M1"; else if(TF == PERIOD_M5) tf = "_M5"; else if(TF == PERIOD_M15) tf = "_M15"; else if(TF == PERIOD_M30) tf = "_M30"; else if(TF == PERIOD_H1) tf = "_H1"; else if(TF == PERIOD_H4) tf = "_H4"; else if(TF == PERIOD_D1) tf = "_D1"; else if(TF == PERIOD_W1) tf = "_W1"; else if(TF == PERIOD_MN1) tf = "_MN1"; else TF = Period(); string indiname = "FastNMAvsNMA" + tf; string name = indiname + "(" + NMA_period + ", " + FastNMA_period + ", " + FastNMA_LB_min + ")"; IndicatorShortName(name); IndicatorBuffers(4); SetIndexBuffer(0, FastNMAvsNMA); SetIndexLabel(0, name); SetIndexBuffer(1, SD); SetIndexBuffer(2, SD2); SetIndexBuffer(3, SD3); if(Show_SD_1line_only) { SetIndexLabel(1, indiname + "_SD(" + SD_len + ")"); SetIndexLabel(2, "unused"); SetIndexLabel(3, "unused"); } else { if(Show_SD_3lines_up) SetIndexLabel(1, indiname + "_SD_up(" + SD_len + ")"); else SetIndexLabel(1, "unused"); if(Show_SD_3lines_dn) SetIndexLabel(2, indiname + "_SD_dn(" + SD_len + ")"); else SetIndexLabel(2, "unused"); if(Show_SD_3lines_md) SetIndexLabel(3, indiname + "_SD_md(" + SD_len + ")"); else SetIndexLabel(3, "unused"); } point = Point; if(MarketInfo("EURUSD", MODE_POINT) == 0.00001) point *= 10; int bars = Bars; if( (MaxBars > 0) && (MaxBars < bars) ) bars = MaxBars; NMAmtfbars = MathMin(bars * Period() / TF, iBars(NULL, TF)); ArrayResize(NMAmtf, NMAmtfbars); ArrayInitialize(NMAmtf, 0); ArrayResize(FastNMAvsNMAmtf, NMAmtfbars); ArrayInitialize(FastNMAvsNMAmtf, 0); ArraySetAsSeries(FastNMAvsNMAmtf, true); return(0); } int start() { int limit, i, ii, counted_bars = IndicatorCounted()-1, bars = Bars, nearestbar; double nmasum, nmaabssum, nmaratio, nmmnum, maxnmm, fastnmasum, fastnmaabssum, fastnmaratio, temp; bool nmadone, fastnmadone; if( (MaxBars > 0) && (MaxBars < bars) ) bars = MaxBars; if(counted_bars <= 1) limit = bars - 1; else limit = bars - counted_bars; if(limit < 1) limit = 1; NMAmtfcalc(); for(i = limit; i >= 0; i--) { nearestbar = iBarShift(NULL, TF, Time[i]); if(nearestbar < iBars(NULL, TF) - MathMax(NMA_period, FastNMA_period)) { FastNMAvsNMA[i] = FastNMAvsNMAmtf[nearestbar]; if( (Show_SD) && (nearestbar < iBars(NULL, TF) - MathMax(NMA_period, FastNMA_period) - SD_len) ) { if(Show_SD_1line_only) { if(FastNMAvsNMAmtf[nearestbar] == 0) SD[i] = 0; else if(FastNMAvsNMAmtf[nearestbar] > 0) SD[i] = iBandsOnArray(FastNMAvsNMAmtf, 0, SD_len, SD_up, 0, MODE_UPPER, nearestbar); else if(FastNMAvsNMAmtf[nearestbar] < 0) SD[i] = iBandsOnArray(FastNMAvsNMAmtf, 0, SD_len, SD_dn, 0, MODE_LOWER, nearestbar); } else { if(Show_SD_3lines_up) SD[i] = iBandsOnArray(FastNMAvsNMAmtf, 0, SD_len, SD_up, 0, MODE_UPPER, nearestbar); if(Show_SD_3lines_dn) SD2[i] = iBandsOnArray(FastNMAvsNMAmtf, 0, SD_len, SD_dn, 0, MODE_LOWER, nearestbar); if(Show_SD_3lines_md) SD3[i] = (iBandsOnArray(FastNMAvsNMAmtf, 0, SD_len, SD_up, 0, MODE_UPPER, nearestbar)+ iBandsOnArray(FastNMAvsNMAmtf, 0, SD_len, SD_dn, 0, MODE_LOWER, nearestbar) ) / 2; } } } } return(0); } void NMAmtfcalc() { int i, ii, iii, NMAoldestbar = NMAmtfbars-1 - MathMax(NMA_period, FastNMA_period); bool found; for(i = NMAoldestbar; i >= 2; i--) if(NMAmtf[i][0] != iTime(NULL, TF, i)) { if(i == NMAoldestbar) { found = false; ii = 1; while( !(found) && (i-ii >= 0) ) if(NMAmtf[i-ii][0] == iTime(NULL, TF, i)) found = true; else ii++; if(found) { for(iii = i; iii >= 0; iii--) if(iii-ii >= 0) { NMAmtf[iii][0] = NMAmtf[iii-ii][0]; NMAmtf[iii][1] = NMAmtf[iii-ii][1]; NMAmtf[iii][2] = NMAmtf[iii-ii][2]; FastNMAvsNMAmtf[iii] = FastNMAvsNMAmtf[iii-ii]; } else { NMAmtf[iii][0] = 0; NMAmtf[iii][1] = 0; NMAmtf[iii][2] = 0; FastNMAvsNMAmtf[iii] = 0; } } else { NMAmtf[i+1][1] = iClose(NULL, TF, i+1); NMAmtf[i+1][2] = iClose(NULL, TF, i+1); NMAmtf[i][0] = iTime(NULL, TF, i); NMAcalc(i); } } else { NMAmtf[i][0] = iTime(NULL, TF, i); NMAcalc(i); } } NMAmtf[1][0] = iTime(NULL, TF, 1); NMAcalc(1); NMAmtf[0][0] = iTime(NULL, TF, 0); NMAcalc(0); } void NMAcalc(int i) { int ii; double nmasum, nmaabssum, nmaratio, nmmnum, maxnmm, fastnmasum, fastnmaabssum, fastnmaratio, temp; bool nmadone, fastnmadone; nmaratio = 0; maxnmm = 0; fastnmaratio = 0; int NMA_LB_max; for(ii = 1; ii <= FastNMA_period; ii++) { nmmnum = (MathLog(iClose(NULL, TF, i)) - MathLog(iClose(NULL, TF, i+ii))) / MathSqrt(ii); if(MathAbs(nmmnum) > maxnmm) { maxnmm = MathAbs(nmmnum); NMA_LB_max = ii; } } if(NMA_LB_max < FastNMA_LB_min) NMA_LB_max = FastNMA_LB_min; nmasum = (MathLog(iClose(NULL, TF, i)) - MathLog(iClose(NULL, TF, i+1))) + (MathLog(iClose(NULL, TF, i+1)) - MathLog(iClose(NULL, TF, i+2))) * (MathSqrt(2)-1); fastnmasum = nmasum; nmadone = false; fastnmadone = false; ii = 2; while( !(nmadone) || !(fastnmadone) ) { temp = (MathLog(iClose(NULL, TF, i+ii)) - MathLog(iClose(NULL, TF, i+ii+1))) * (MathSqrt(ii+1) - MathSqrt(ii)); if(ii >= NMA_period) nmadone=true; else nmasum += temp; if(ii >= NMA_LB_max) fastnmadone=true; else fastnmasum += temp; ii++; } nmaabssum = MathAbs(nmasum); fastnmaabssum = MathAbs(fastnmasum); nmasum = 0; fastnmasum = 0; nmadone = false; fastnmadone = false; ii = 0; while( !(nmadone) || !(fastnmadone) ) { temp = MathAbs(MathLog(iClose(NULL, TF, i+ii)) - MathLog(iClose(NULL, TF, i+ii+1))); if(ii >= NMA_period) nmadone=true; else nmasum += temp; if(ii >= NMA_LB_max) fastnmadone=true; else fastnmasum += temp; ii++; } if(nmasum != 0) nmaratio = nmaabssum / nmasum; if(fastnmasum != 0) fastnmaratio = fastnmaabssum / fastnmasum; NMAmtf[i][1] = NMAmtf[i+1][1] + (iClose(NULL, TF, i) - NMAmtf[i+1][1]) * nmaratio; NMAmtf[i][2] = NMAmtf[i+1][2] + (iClose(NULL, TF, i) - NMAmtf[i+1][2]) * fastnmaratio; FastNMAvsNMAmtf[i] = NMAmtf[i][2] - NMAmtf[i][1]; if(ValuesInPips) FastNMAvsNMAmtf[i] = FastNMAvsNMAmtf[i] / point; } Source code: http://pastebin.com/cyTPMeih P.S.: when stacking indicators onto each other don't forget to manually set the same fixed minimum and maximum to make sure all indicators align. Quote Link to comment Share on other sites More sharing options...
wildeazoscar Posted September 3, 2012 Report Share Posted September 3, 2012 At Last----- The TRIPLE STX------- it is a combination of the STX with differing dials ( one following markets very fast, the other very slow) The Rainbow ----- NST, NXC and NDX in same frame----- There is a trick of involving the NST and NDX to deliver the MA, which i am yet to decipher The Customised rainbow ( to show trend exhaustion)----- same with the inputs as false Remaining ones----- 1.The Shadow line ( is it the ZURICH or the TEMA?) 2. STX7 3.BTX 4 with their SD and MA Anyone got hold of the Ocean Plus Webinars and the Professional Ocean Webinars that Patt came out with? They are a marvel as they show how to pick stocks using Ocean Indicators ( completely untouched earlier) Quote Link to comment Share on other sites More sharing options...
Johnkayode2010 Posted September 28, 2012 Report Share Posted September 28, 2012 Can someone pls mirror the TSD elite indies, the links not working anymore. Quote Link to comment Share on other sites More sharing options...
udc Posted September 28, 2012 Author Report Share Posted September 28, 2012 Can someone pls mirror the TSD elite indies, the links not working anymore. It would be a good idea to specify what links you are referring to. Anyway, I am trying to reference all important links in the opening post of this thread, so just head there and you will find what you need. Links posted by me are working. Quote Link to comment Share on other sites More sharing options...
Sixer Posted September 28, 2012 Report Share Posted September 28, 2012 udc, Johnkayode2010 is referring to posts #242 / #246 - the following link is still working: http://extabit.com/file/28egju6xvywmu?upld=1 Sixer Johnkayode2010 1 Quote Link to comment Share on other sites More sharing options...
udc Posted September 28, 2012 Author Report Share Posted September 28, 2012 (edited) New mirrors More of those mirrors still work, not only one. But the truth is some are really dead, unfortunately the multi-uploaders I am using don't check the hosters for subsequently broken links. I wonder who is behind those deletions. Here is a new bunch of mirrors then, it should last for a little while. ocean_theory.rar (ocean indis by mladen from TSD elite) http://www.directmirror.com/files/ROH0Q0HT http://mir.cr/0PMDJDCO http://www.multiupload.nl/SDH97068W1 ocn_mt4_9-28-2012.7z (ocean indis by me) http://www.directmirror.com/files/RAQPU9UU http://mir.cr/1OZX59WL http://www.multiupload.nl/0VD8XD7PWI Edited September 29, 2012 by udc multiupload link was mistakenly the same for both files Kit, ForexMike, C0UNDE and 7 others 10 Quote Link to comment Share on other sites More sharing options...
mtuppers Posted September 28, 2012 Report Share Posted September 28, 2012 ocn_mt4_9-28-2012.7z (ocean indis by me) http://www.directmirror.com/files/RAQPU9UU http://mir.cr/1OZX59WL http://www.multiupload.nl/SDH97068W1 somehow can not open the file, please upload again... Quote Link to comment Share on other sites More sharing options...
Grain Trader Posted September 28, 2012 Report Share Posted September 28, 2012 More of those mirrors still work, not only one. But the truth is some are really dead, unfortunately the multi-uploaders I am using don't check the hosters for subsequently broken links. I wonder who is behind those deletions. Here is a new bunch of mirrors then, it should last for a little while. ocean_theory.rar (ocean indis by mladen from TSD elite) http://www.directmirror.com/files/ROH0Q0HT http://mir.cr/0PMDJDCO http://www.multiupload.nl/SDH97068W1 ocn_mt4_9-28-2012.7z (ocean indis by me) http://www.directmirror.com/files/RAQPU9UU http://mir.cr/1OZX59WL http://www.multiupload.nl/SDH97068W1 hi UDC Nice to see that you are back. I have a question, is it possible to import the Ocean Plus indicators into the Multi Chart platform, I believe they are the BTX and the STX. multi chart and Tradestation are written in the same language Quote Link to comment Share on other sites More sharing options...
udc Posted September 29, 2012 Author Report Share Posted September 29, 2012 hi UDC Nice to see that you are back. I have a question, is it possible to import the Ocean Plus indicators into the Multi Chart platform, I believe they are the BTX and the STX. multi chart and Tradestation are written in the same language Yes, it should work. Quote Link to comment Share on other sites More sharing options...
mtuppers Posted September 29, 2012 Report Share Posted September 29, 2012 hi udc, the indicator you create the file ocn_mt4_9-28-2012.7z, somehow when I open with rar there is no file, using 7z tell me incorrect command line. please reupload Quote Link to comment Share on other sites More sharing options...
franz Posted September 30, 2012 Report Share Posted September 30, 2012 hi udc, the indicator you create the file ocn_mt4_9-28-2012.7z, somehow when I open with rar there is no file, using 7z tell me incorrect command line. please reupload Rename .7z with .zip Quote Link to comment Share on other sites More sharing options...
mtuppers Posted September 30, 2012 Report Share Posted September 30, 2012 Rename .7z with .zip does not work for me. still have problem, would you mind to upload the working one? Quote Link to comment Share on other sites More sharing options...
franz Posted October 3, 2012 Report Share Posted October 3, 2012 does not work for me. still have problem, would you mind to upload the working one? Try : http://www.mediafire.com/?ausqvbbbbl9b1c1 ylidor and hellboy1713006415 2 Quote Link to comment Share on other sites More sharing options...
mtuppers Posted October 4, 2012 Report Share Posted October 4, 2012 Try : http://www.mediafire.com/?ausqvbbbbl9b1c1 okay able to open the file, but file size is 0 byte. never mind. Quote Link to comment Share on other sites More sharing options...
franz Posted October 4, 2012 Report Share Posted October 4, 2012 okay able to open the file, but file size is 0 byte. never mind. For me the link works fine , here is the content : http://www.mediafire.com/view/?r009we78fm71kfc# Quote Link to comment Share on other sites More sharing options...
mtuppers Posted October 5, 2012 Report Share Posted October 5, 2012 (edited) For me the link works fine , here is the content : http://www.mediafire.com/view/?r009we78fm71kfc# after download the file yesterday the total file size of ocean is 3k. but org. file is 63k or so... content is right but file size is 0 byte. Edited October 5, 2012 by mtuppers Quote Link to comment Share on other sites More sharing options...
Grain Trader Posted October 8, 2012 Report Share Posted October 8, 2012 In the package there are these TradeStation Ocean indis: BTX, STX, NDX, NST, NXC, NMA, NMC, NMM, NMR, NMS and their variants, all including the source codes. hi UDC, Do you have the Ocean indis: BTX, STX open source code Quote Link to comment Share on other sites More sharing options...
udc Posted October 9, 2012 Author Report Share Posted October 9, 2012 Just read properly the quotation you just showed and you will get the answer. Quote Link to comment Share on other sites More sharing options...
Grain Trader Posted October 10, 2012 Report Share Posted October 10, 2012 hi UDC, I sent you a message a few days ago, do you still have this link for the package above Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.