Jump to content

fawaz79

Members
  • Posts

    60
  • Joined

  • Last visited

Reputation Activity

  1. Like
    fawaz79 got a reaction from merseilika in My Gift 4 U - New Holy Grail - Tested & Proven for 37 Year   
    Can anybody please share it even though the gift is expired.
     
    Regards,
    Fawaz
  2. Like
    fawaz79 got a reaction from winjasmine2 in Catching Trend Reversals by Daivd H. Weis   
    Watch it online!! Hope this helps !!
     
    http://www.56.com/w22/play_album-aid-8099812_vid-NTEzMjcyNDg.html
  3. Like
    fawaz79 got a reaction from ⭐ mr12323 in [req] ADV. WRB analysis tutorials - The strategylab   
    Guys heres the link if anyone is interested:-
     
    http://goo.gl/A4NQ6a
  4. Like
    fawaz79 reacted to Traderbeauty in JTMAI ES Scalper V1.1 no indicators   
    Very good farahz
    you really got it, but again - many times the market will try to trick you, so always be with your finger on the mouse ready to bail.
    regarding entries- its very hard to tell, when i am very sure about the entry- for example- when the legs are small and there is no time to wait for renko- i just enter when i see a clear consolidation on my 70 tick chart as long as i am right at the correct fib level.
    if the leg is large then i will wait for the renko but then again will watch the 70 ticks for consolidation entry.
    Jane
  5. Like
    fawaz79 got a reaction from longboat in JTMAI ES Scalper V1.1 no indicators   
    Hi Jane,
     
    I hope my understanding is correct. Please have a look at this:-
     
    https://imageshack.com/i/0imw5jp
     
    Thanks
  6. Like
    fawaz79 reacted to Traderbeauty in JTMAI ES Scalper V1.1 no indicators   
    Hi FAWAZ
    Yes- you image and example is perfect- as you can see- the fib extension between the last 2 lows is 1.272 or higher which tells us that we can continue shorting ,now lest see what happened---
    Assuming we shorted, the market made a double bottom which is signalling us to exit at be and not wait for miracles.
    But- and here is the more advanced continuation to this scenario that happens all the time.
    You could say- hey- i have a double bottom and a higher high so i should GO LONG ? and the answer is NO.
    If you notice- that last high around 7 went only 1 tick above previous high which means that the direction is still DOWN and when you get the short signal just take it and measure again - your target now is at least 1.272 downward from the last pivot.
    Hope it helps , keep asking, no problems. its all just brain games :).
    Traderbeauty-Jane
  7. Like
    fawaz79 reacted to Traderbeauty in JTMAI ES Scalper V1.1 no indicators   
    on a down market for example- lets say you have a low pivot, then the market goes up and continues down without breaking the previous high, this time you expect it to make a lower low which should be equal or more than 1.272 fib extension, if you did not get that or if the market only broke the previous low by one tick that means that the trend is slowing down and its dangerous to short now.
    very simple.
    same for a long.
  8. Like
    fawaz79 reacted to Traderbeauty in JTMAI ES Scalper V1.1 no indicators   
    Hello Trader Friends.
    normally I post only on the ninjatrader forum but I thought its important enough to double post and apologize ahead if i am doing something wrong.
    Wanted to thank again everyone that is helping and sharing and giving ideas.
    So what is JTMI scalper- J is Jane, T is Traderbeauty , M is Mechanical, A is Adaptive to the market conditions and I is for *****s ( no pan intended - just wanted to create an impressive name lol ).
    since I am a full time trader , its hard for me to post during the day so i use the weekend as an opportunity to help or at least try to help others.
    First- let me warn you- do not use this method live unless you traded paper for few weeks with no losses.
    http://imageshack.com/scaled/large/51/6evq.jpg
    This is no magic or anything new but there are many rules and pointers that will prevent you from entering at the wrong time or place.
    This is a plain 2-1 ticks renko spectrum with only the zigzag UTC on it just to clearly mark the zigzags.
    I did not post the big picture on purpose- meaning i am ignoring all the big support and resistance, double tops/ bottoms etc which you should watch normally and consider them but in this post i like to keep everything simple for *****s like me that need a simple yes or no in order to push the button.
    So lets get started-
    Rules 1: and the most important one- since we dont use indicators- the only way to know the end of a move/ trend - ahead of time is by watching the distance between the tops for an up move or bottoms for a down move.once we have 1 or 2 ticks then it means get out and sit on the sidelines.
    Lets look on friday's trading.
    Point 1- that is early in the am and we are still fresh and anxious , we can clearly see that we had 2 tops before with a nice distance between them so we are looking for a long entry,once we got it we go long with a stop 1 tick bellow point 1 or you can use a 70 tick chart with acme trend and only go in when you see a clear consolidation then you can get in with 2-3 ticks stop.
    since the distance beteen the last 2 tops was big it tells us that the trend is strong and we can easily few points- in this case we could get 3 points easily.
    Point 2- we still see that the distance is big so like machine we look for the next long entry which came at point 2- this one would have given us 5 points meaning we could actually stop trading less than an hour after we started with 8 points.
    Rule 3---- its not advisable to go more than 2 or 3 times in the same direction, normally the market changes sides and we should expect it to start going the opposite direction so being greedy is ******.
    that is why we could but should not take a long at point 3, but even if we did we would go long at 1695 and exit with 2-3 ticks loss once the next bar turns red.
    point 4- we have now lower low with a big distance between the bottoms so we look for a short- we take it with stop above point 4 . could have gotten another 3 points here- again using the 70 ticks to monitor.
    point 5 is a very small loss or breakeven.
    point 6 is a winner for another 2 points. but noticing that the distance between the tops( will call it DELTA from now on ) is much smaller than before gives us the knowledge that this is not a strong trend.
    point .
    point 7 is ultra obvious- you have to be an ***** NOT to take a short there- look at the delta and the length of the previous move- the market is TELLING US that the move is strong with a big gain expected in this short entry not only few ticks- this was a 4,5 points profit.
    point 8 -i need to explain what is going on here-so please pay attention- the ***** rule is- since we have a lower low we just look for a short and we did get it at point 8 and even if we shorted there we would win a little and definitely not lose. BUT...look at RULE 3 - we just entered 3 times short down and point 8 is the 4th short entry with the direction down with hardly any retracement - so we just have to watch, the other more important fact that you have to notice is- we had a VERY STRONG down move with a huge delta- so WHY THE HELL DID THE MARKET GO UP SO HIGH AND SO CLOSE TO POINT 7? unless its planning to reverse. ( mmm, so that is not just for dummies anymore, we need to think a little ...).
    point 10- basic and obvious long for another 2 points.
    point 11 - same as 10 with another 2 points.
    by now we made so much money almost 20 points using only ONE CONTRACT. we had 1 or 2 very small losers and its total mechanical entry with hardly any rules so we cans top trading after 4 hours and go to the beach.
    Bottom line- if the legs start to get too small it means we are in either chop or consolidate and we better stay out or SWITCH TO renko 1-1.
    Hope it helps-
    I am willing to continue my analysis posts but only if I see enough responses and the only way to see that is by people hitting the "THANKS" button.
    There is much more to this method by using very basic simple fib levels that will allow you to enter countertrend and make even more money but as i said before- i will only continue if i see some responses and support.
    Hope you enjoyed and thank you all again.
    Jane
  9. Like
    fawaz79 got a reaction from aclient21 in Catching Trend Reversals by Daivd H. Weis   
    Watch it online!! Hope this helps !!
     
    http://www.56.com/w22/play_album-aid-8099812_vid-NTEzMjcyNDg.html
  10. Like
    fawaz79 reacted to sammy in Joker EA   
    http://zalil.ru/34247466
  11. Like
    fawaz79 reacted to sammy in Bbmax   
    http://depositfiles.com/files/ajvh9hfl4
     
    http://www.myfxbook.com/members/jonpearce/mfata-exchange/304254
  12. Like
    fawaz79 reacted to alright in TradeCopy [share]   
    Done it. I also upoladed it again in case someone still needs ithttp://www.mediafire.com/?ajsywoy8boof9v9Remember the dll file goes in the system32 folder if using Windows 7
  13. Like
    fawaz79 got a reaction from Forexman1713006471 in Catching Trend Reversals by Daivd H. Weis   
    Watch it online!! Hope this helps !!
     
    http://www.56.com/w22/play_album-aid-8099812_vid-NTEzMjcyNDg.html
  14. Like
    fawaz79 got a reaction from stellar in New Expert Advisor   
    you can share your tests results via myfxbook.com
     
    thanks
    fawaz
  15. Like
    fawaz79 got a reaction from Jay007 in Catching Trend Reversals by Daivd H. Weis   
    Watch it online!! Hope this helps !!
     
    http://www.56.com/w22/play_album-aid-8099812_vid-NTEzMjcyNDg.html
  16. Like
    fawaz79 reacted to daveg1 in 5 years of work - no repaint, high quality signals easy   
    Here are version 3 indicators:)
     

    http://bayfiles.com/file/gHXX/hq8LRy/version_3.0_alphatrader.rar
     
     
    Many thanks to waterskiguy.
  17. Like
    fawaz79 reacted to udc in Ocean Theory indis from TSD elite   
    BTX_2line for MT4
     
    Here goes Ocn_BTX_2linex, as usual with optional JMA.
     
    Also a new version of Ocn_BTXx with optional "BTX_2line_based_colors" switch which makes BTX to be drawn in green/red color based on relative positions of BTX_2line's BTXp and BTXn.
     
    Original BTX_2line on TradeStation:
    http://img821.imageshack.us/img821/7572/btx2linetradestation.png
     
    Ocn_BTX_2linex (and Ocn_BTXx in colors) on Metatrader:
    http://img13.imageshack.us/img13/5236/btx2linemetatrader.png
     
    Original size screenshots:
    http://img806.imageshack.us/img806/7572/btx2linetradestation.png
    http://img210.imageshack.us/img210/5236/btx2linemetatrader.png
     
     
    Ocn_BTX_2linex:
    http://pastebin.com/eF1Ek6Ld
     
     
    Ocn_BTXx:
    http://pastebin.com/mhVwMsNM
     
     
    These DLL calculations are rather CPU consuming so if the initial calculation (when attaching the indi to a chart) takes too long do use the MaxBars variable to limit how many bars should be initially calculated.
  18. Like
    fawaz79 got a reaction from john1368 in PiptronicX and Piptronic 2.0 Beta   
    link without the password
     
    hxxp://www.4shared.com/get/gholH8M-/Piptronic_20.html
  19. Like
    fawaz79 got a reaction from taipan in Ocean Theory indis from TSD elite   
    UDC thanks for the BTX!! and eagerly waiting for the divergence addition. For thos asking for the ocean package and keygen find it here
    http://uloz.to/x83ecYT/jim-sloman-ocean-theory-7z
     
    But i get a compatibility issue and am unable to install it in Win 7 64bit. I tried to change the compatibility to winxp SP2/3 but still get the same error. Anyone with similar issues?
  20. Like
    fawaz79 reacted to udc in Ocean Theory indis from TSD elite   
    BTX for MT4
     
    Behold the magnificent BTX on Metatrader :)
     
    And since we have the luxury of JMA which is faster and smoother with less overshooting, you can of course choose JMA instead of the default TEMA.
     
    Original BTX on TradeStation:
    http://img688.imageshack.us/img688/4426/btxtradestation.png
     
    Ocn_BTXx on Metatrader:
    http://img841.imageshack.us/img841/3442/btxmetatrader.png
     
    Original size screenshots:
    http://img338.imageshack.us/img338/4426/btxtradestation.png
    http://img85.imageshack.us/img85/3442/btxmetatrader.png
     
     

    // Ocn_BTXx version 1.0 #property copyright "© jim sloman, jma © mark jurik, for metatrader reprogrammed 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 35 #property indicator_levelcolor Gray #property indicator_levelstyle 2 #property indicator_minimum 0 #property indicator_maximum 100 extern int BTX_period = 40; extern int SmLen = 20; extern bool Use_JMA_instead_TEMA = false; extern double JMA_Length = 10; extern int JMA_Phase = 50; extern int MaxBars = 0; extern bool Show_SD = true; extern int SD_len = 20; extern double SD_up = 1.5; extern double SD_dn = 1.5; extern bool Show_SD_up = true; extern bool Show_SD_dn = true; extern bool Show_SD_md = true; double BTX[]; double SD[]; double SD2[]; double SD3[]; double RawBTX[]; double maBTX[]; double fC0Buffer[]; double fA8Buffer[]; double fC8Buffer[]; double list[128], ring1[128], ring2[11], buffer[62]; bool initFlag; int limitValue, startValue, loopParam, loopCriteria; int cycleLimit, highLimit, counterA, counterB; double cycleDelta, lowDValue, highDValue, absValue, paramA, paramB; double phaseParam, logParam, JMAValue, series, sValue, sqrtParam, lengthDivider; int s58, s60, s40, s38, s68; bool initialized; #import "OBP1Lock32x.dll" bool LTInitializeFromInix(string); double LTCalcValx(string, double, double, double, double, string); #define dll "OBP1Lock32.dll" #import double arr6[99], arr7[99], arr8[99], arr9[99], arr10[99], arr11[99]; int init() { initialized = LTInitializeFromInix(dll); if(!initialized) return(0); if(SmLen < 1) SmLen = 1; if(BTX_period > 98) BTX_period = 98; string btxname = "BTX(" + BTX_period + ", " + SmLen + ")"; if(Use_JMA_instead_TEMA) btxname = "BTX_JMA(" + BTX_period + ", " + JMA_Length + ", " + JMA_Phase + ")"; IndicatorShortName(btxname); IndicatorDigits(2); IndicatorBuffers(6); SetIndexBuffer(0, BTX); SetIndexLabel(0, btxname); SetIndexBuffer(1, SD); SetIndexBuffer(2, SD2); SetIndexBuffer(3, SD3); if(Show_SD_up) SetIndexLabel(1, "BTX_SD_up(" + SD_len + ")"); else SetIndexLabel(1, "unused"); if(Show_SD_dn) SetIndexLabel(2, "BTX_SD_dn(" + SD_len + ")"); else SetIndexLabel(2, "unused"); if(Show_SD_md) SetIndexLabel(3, "BTX_SD_md(" + SD_len + ")"); else SetIndexLabel(3, "unused"); SetIndexBuffer(4, RawBTX); SetIndexBuffer(5, maBTX); ArraySetAsSeries(arr6, true); ArraySetAsSeries(arr7, true); ArraySetAsSeries(arr8, true); ArraySetAsSeries(arr9, true); ArraySetAsSeries(arr10, true); ArraySetAsSeries(arr11, true); return(0); } int start() { if(!initialized) return(0); int limit, i, ii, counted_bars = IndicatorCounted()-1, bars; if(MaxBars > 0) { bars = MaxBars; if(counted_bars > bars) counted_bars = bars - 2; } else bars = Bars; if(Use_JMA_instead_TEMA) { if(bars <= BTX_period + JMA_Length) return(0); } else { if(bars <= BTX_period + 3*SmLen) return(0); } if(counted_bars < 0) counted_bars = 0; if(counted_bars > BTX_period) limit = bars - counted_bars; else limit = bars - BTX_period - 1; for(i = limit; i >= 0; i--) { double var2 = 0, var3 = 0; ArrayInitialize(arr6, 0); ArrayInitialize(arr7, 0); ArrayInitialize(arr8, 0); ArrayInitialize(arr9, 0); ArrayInitialize(arr10, 0); ArrayInitialize(arr11, 0); arr6[0] = LTCalcValx(dll, Close[i], 0.5, High[i], Low[i], "eBBcmGJhfe"); for(ii = 1; ii <= BTX_period; ii++) { arr6[ii] = LTCalcValx(dll, Close[i+ii], Close[i+ii-1], 0.5, Close[i], "FpmqUGJh"); arr7[ii] = LTCalcValx(dll, arr6[ii-1], arr6[ii], Close[i], 0.5, "rmEsGMDfF"); arr8[ii] = LTCalcValx(dll, arr8[ii-1], (arr7[ii]), arr8[ii], arr7[ii-1], "smUDecGMJYh"); if(arr8[ii] == 0) arr9[ii] = 0; else arr9[ii] = LTCalcValx(dll, arr6[0], arr6[ii], arr8[ii], arr7[ii], "rUGMecDJYBBXU"); arr10[ii] = 1 / LTCalcValx(dll, 0.5, ii, arr9[ii], -MathAbs(arr9[ii-1]), "UhWGceMBBJn"); arr11[ii] = LTCalcValx(dll, arr9[ii], arr10[ii], arr9[ii-1], arr8[ii], "F3ecmGBBMqec"); var2 = LTCalcValx(dll, var2, arr11[ii], arr11[ii], var2, "ceGMhftTds"); var3 = LTCalcValx(dll, var3, arr10[ii], var2, var3, "jTGceMBBh"); } RawBTX[i] = LTCalcValx(dll, var2, var3, 100, 0.5, "mUDF0AA8GMUXBBq"); } if(!Use_JMA_instead_TEMA) { double ExpSmooth = 2, XAvg1, XAvg2, XAvg3; ExpSmooth = ExpSmooth / (SmLen + 1); for(i = bars - BTX_period - 1; i >= 0; i--) { XAvg1 += ExpSmooth * (RawBTX[i] - XAvg1); XAvg2 += ExpSmooth * (XAvg1 - XAvg2); XAvg3 += ExpSmooth * (XAvg2 - XAvg3); maBTX[i] = 3 * XAvg1 - 3 * XAvg2 + XAvg3; if(i < bars - BTX_period - 1 - 3*SmLen) BTX[i] = NormalizeDouble(maBTX[i], 2); } } else { ArrayResize(fC0Buffer, bars - BTX_period); ArraySetAsSeries(fC0Buffer, true); ArrayInitialize(fC0Buffer, 0); ArrayResize(fA8Buffer, bars - BTX_period); ArraySetAsSeries(fA8Buffer, true); ArrayInitialize(fA8Buffer, 0); ArrayResize(fC8Buffer, bars - BTX_period); ArraySetAsSeries(fC8Buffer, true); ArrayInitialize(fC8Buffer, 0); ArrayInitialize(list, 0); initFlag = false; limitValue = 0; startValue = 0; loopParam = 0; loopCriteria = 0; cycleLimit = 0; highLimit = 0; counterA = 0; counterB = 0; cycleDelta = 0; lowDValue = 0; highDValue = 0; absValue = 0; paramA = 0; paramB = 0; phaseParam = 0; logParam = 0; JMAValue = 0; series = 0; sValue = 0; sqrtParam = 0; lengthDivider = 0; s58 = 0; s60 = 0; s40 = 0; s38 = 0; s68 = 0; ArrayInitialize(ring2, 0); ArrayInitialize(ring1, 0); ArrayInitialize(buffer, 0); double lengthParam; limitValue = 63; startValue = 64; for(i = 0; i <= limitValue; i++) list[i] = -1000000; for(i = startValue; i <= 127; i++) list[i] = 1000000; initFlag = true; if(JMA_Length < 1.0000000002) lengthParam = 0.0000000001; else lengthParam = (JMA_Length - 1) / 2.0; if(JMA_Phase < -100) phaseParam = 0.5; else if(JMA_Phase > 100) phaseParam = 2.5; else phaseParam = JMA_Phase / 100.0 + 1.5; logParam = MathLog(MathSqrt(lengthParam)) / MathLog(2.0); if(logParam + 2.0 < 0) logParam = 0; else logParam = logParam + 2.0; sqrtParam = MathSqrt(lengthParam) * logParam; lengthParam = lengthParam * 0.9; lengthDivider = lengthParam / (lengthParam + 2.0); for(i = bars - BTX_period - 1; i >= 0; i--) { jma(RawBTX, maBTX, i); if(i < bars - BTX_period - 1 - JMA_Length) BTX[i] = NormalizeDouble(maBTX[i], 2); } } int limitx; if(!Use_JMA_instead_TEMA) limitx = bars - BTX_period - 1 - 3*SmLen; else limitx = bars - BTX_period - 1 - JMA_Length; if(Show_SD) for(i = limit; i >= 0; i--) if(i < limitx - SD_len) { if(Show_SD_up) SD[i] = iBandsOnArray(BTX, 0, SD_len, SD_up, 0, MODE_UPPER, i); if(Show_SD_dn) SD2[i] = iBandsOnArray(BTX, 0, SD_len, SD_dn, 0, MODE_LOWER, i); if(Show_SD_md) SD3[i] = (iBandsOnArray(BTX, 0, SD_len, SD_up, 0, MODE_UPPER, i)+ iBandsOnArray(BTX, 0, SD_len, SD_dn, 0, MODE_LOWER, i)) / 2; } return(0); } double jma(double& input[], double& output[], int shift) { series = input[shift]; if(loopParam < 61) { loopParam++; buffer[loopParam] = series; } if(loopParam > 30) { if(initFlag) { initFlag = false; int diffFlag = 0; for(int i = 1; i <= 29; i++) if(buffer[i + 1] != buffer[i]) diffFlag = 1; highLimit = diffFlag * 30; if(highLimit == 0) paramB = series; else paramB = buffer[1]; paramA = paramB; if(highLimit > 29) highLimit = 29; } else highLimit = 0; for(i = highLimit; i >= 0; i--) { if(i == 0) sValue = series; else sValue = buffer [31 - i]; if(MathAbs(sValue - paramA) > MathAbs(sValue - paramB)) absValue = MathAbs(sValue - paramA); else absValue = MathAbs(sValue - paramB); double dValue = absValue + 0.0000000001; if(counterA <= 1) counterA = 127; else counterA--; if(counterB <= 1) counterB = 10; else counterB--; if(cycleLimit < 128) cycleLimit++; cycleDelta += (dValue - ring2[counterB]); ring2[counterB] = dValue; if(cycleLimit > 10) highDValue = cycleDelta / 10.0; else highDValue = cycleDelta / cycleLimit; if(cycleLimit > 127) { dValue = ring1[counterA]; ring1[counterA] = highDValue; s68 = 64; s58 = s68; while(s68 > 1) { if(list[s58] < dValue) { s68 = s68 / 2.0; s58 += s68; } else if(list[s58] == dValue) s68 = 1; else { s68 = s68 / 2.0; s58 -= s68; } } } else { ring1[counterA] = highDValue; if((limitValue + startValue) > 127) { startValue--; s58 = startValue; } else { limitValue++; s58 = limitValue; } if(limitValue > 96) s38 = 96; else s38 = limitValue; if(startValue < 32) s40 = 32; else s40 = startValue; } s68 = 64; s60 = s68; while(s68 > 1) { if(list[s60] >= highDValue) { if(list[s60 - 1] <= highDValue) s68 = 1; else { s68 = s68 / 2.0; s60 -= s68; } } else { s68 = s68 / 2.0; s60 += s68; } if((s60 == 127) && (highDValue > list[127])) s60 = 128; } if(cycleLimit > 127) { if(s58 >= s60) { if(((s38 + 1) > s60) && ((s40 - 1) < s60)) lowDValue += highDValue; else if((s40 > s60) && ((s40 - 1) < s58)) lowDValue += list[s40 - 1]; } else if(s40 >= s60) { if(((s38 + 1) < s60) && ((s38 + 1) > s58)) lowDValue += list[s38 + 1]; } else if((s38 + 2) > s60) lowDValue += highDValue; else if(((s38 + 1) < s60) && ((s38 + 1) > s58)) lowDValue += list[s38 + 1]; if(s58 > s60) { if(((s40 - 1) < s58) && ((s38 + 1) > s58)) lowDValue -= list[s58]; else if((s38 < s58) && ((s38 + 1) > s60)) lowDValue -= list[s38]; } else { if(((s38 + 1) > s58) && ((s40 - 1) < s58)) lowDValue -= list[s58]; else if((s40 > s58) && (s40 < s60)) lowDValue -= list[s40]; } } if(s58 <= s60) { if(s58 >= s60) list[s60] = highDValue; else { for(int j = s58 + 1; j <= (s60 - 1); j++) list[j - 1] = list[j]; list[s60 - 1] = highDValue; } } else { for(j = s58 - 1; j >= s60; j--) list[j + 1] = list[j]; list[s60] = highDValue; } if(cycleLimit <= 127) { lowDValue = 0; for(j = s40; j <= s38; j++) lowDValue += list[j]; } if((loopCriteria + 1) > 31) loopCriteria = 31; else loopCriteria++; double JMATempValue, sqrtDivider = sqrtParam / (sqrtParam + 1.0); if(loopCriteria <= 30) { if(sValue - paramA > 0) paramA = sValue; else paramA = sValue - (sValue - paramA) * sqrtDivider; if(sValue - paramB < 0) paramB = sValue; else paramB = sValue - (sValue - paramB) * sqrtDivider; JMATempValue = series; if(loopCriteria == 30) { fC0Buffer[shift] = series; int intPart; if(MathCeil(sqrtParam) >= 1) intPart = MathCeil(sqrtParam); else intPart = 1; int leftInt = IntPortion(intPart); if(MathFloor(sqrtParam) >= 1) intPart = MathFloor(sqrtParam); else intPart = 1; int rightPart = IntPortion (intPart); if(leftInt == rightPart) dValue = 1.0; else dValue = (sqrtParam - rightPart) / (leftInt - rightPart); if(rightPart <= 29) int upShift = rightPart; else upShift = 29; if(leftInt <= 29) int dnShift = leftInt; else dnShift = 29; fA8Buffer[shift] = (series - buffer[loopParam - upShift]) * (1 - dValue) / rightPart + (series - buffer[loopParam - dnShift]) * dValue / leftInt; } } else { double powerValue, squareValue; dValue = lowDValue / (s38 - s40 + 1); if(0.5 <= logParam - 2.0) powerValue = logParam - 2.0; else powerValue = 0.5; if(logParam >= MathPow(absValue/dValue, powerValue)) dValue = MathPow(absValue/dValue, powerValue); else dValue = logParam; if(dValue < 1) dValue = 1; powerValue = MathPow(sqrtDivider, MathSqrt (dValue)); if(sValue - paramA > 0) paramA = sValue; else paramA = sValue - (sValue - paramA) * powerValue; if(sValue - paramB < 0) paramB = sValue; else paramB = sValue - (sValue - paramB) * powerValue; } } if(loopCriteria > 30) { JMATempValue = output[shift + 1]; powerValue = MathPow(lengthDivider, dValue); squareValue = MathPow(powerValue, 2); fC0Buffer[shift] = (1 - powerValue) * series + powerValue * fC0Buffer[shift + 1]; fC8Buffer[shift] = (series - fC0Buffer[shift]) * (1 - lengthDivider) + lengthDivider * fC8Buffer[shift + 1]; fA8Buffer[shift] = (phaseParam * fC8Buffer[shift] + fC0Buffer[shift] - JMATempValue) * (powerValue * (-2.0) + squareValue + 1) + squareValue * fA8Buffer[shift + 1]; JMATempValue += fA8Buffer[shift]; } JMAValue = JMATempValue; } if(loopParam <= 30) JMAValue = 0; output[shift] = JMAValue; } int IntPortion(double param) { if (param > 0) return (MathFloor (param)); if (param < 0) return (MathCeil (param)); return (0); }
     
    The source code is also available for download here:
    http://pastebin.com/xdiirCT1
     
     
    So yeah, it took me a white. I wasted most of the time digging deep into RE assuming that the DLL was just so well protected while in fact the problem was in Metatrader the whole time. As it turned out the DLL is quite dull, definitely not what the authors (http://www.investlabs.com/diamondlock2000.html) are trying to pull. Metatrader just can't work with it directly, though. Before I realized that I even programmed float data type emulation because the DLL is using float and Metatrader doesn't have it at all (if you need it for anything suit yourself: http://pastebin.com/EwmAM8jD). So I ended up programming a wrapper - a tiny DLL that Metatrader is capable to talk with and which on the other hand is capable to talk with the Ocean DLL. I actually made it a bit universal so when you call the wrapper the first parameter is the name of the target DLL so it may work even for other Tradestation indicators using the Diamond Lock DLL, if someone chooses to port them into Metatrader.
     
     
    Now the instructions:

    install Ocean Plus package and keygen it
    use OBP1Lock32test.exe to verify the installation - it should give you this result:
    C:\Documents and Settings\Administrator\Desktop>OBP1Lock32test.exe flag: 1 result: 0.693147

    copy OBP1Lock32x.dll either into Metatrader folder experts\libraries or where OBP1Lock32.dll is installed (C:\WINDOWS\system) or anywhere in the system path as you please
    use the .mq4 code as usual

     
    The Ocean Plus package can be found here:
    http://uloz.to/xk2fMRJ/ocean-plus-indicator-package-manual-for-ts-7z
     
    Both OBP1Lock32test.exe and OBP1Lock32x.dll can be found here (mirror it, please, in case I die or something :) ):
    http://uloz.to/xKFrnBk/obp1lock32x-7z
     
     
    Now what remains is 2-line BTX and then STX. Also, I've got an idea to make a simple oscilator FastNMA compared to NMA. It may be useful for those who are interested in FastNMA vs NMA crossovers. And of course the divergence implementation for fawaz79 (a bit more patience, please).
  21. Like
    fawaz79 reacted to udc in Ocean Theory indis from TSD elite   
    JMA of RSX
     
    The other way around - RSX is made of HIGH+LOW and JMA is made of RSX. Jurik demonstrated it as an example of crossover strategy. I've made the vertical lines by hand, just out of curiosity.
     
    http://img844.imageshack.us/img844/7829/jmaofrsx.png
     
    Original size screenshot:
    http://img198.imageshack.us/img198/7829/jmaofrsx.png
     
    Jurik_JMAofRSX:
    http://pastebin.com/ieCJvpkX
  22. Like
    fawaz79 reacted to udc in Ocean Theory indis from TSD elite   
    You can do that easily - just put the first indi onto a chart and then put the other one over it in the same window and you will get this:
    http://img217.imageshack.us/img217/3089/ndxjmarsx.png
     
    Original size screenshot:
    http://img3.imageshack.us/img3/3089/ndxjmarsx.png
     
    You just need to make sure all overlayered indis have fixed minimum and maximum. They even may have a different scale as in this example where NDX is -100 to 100 and RSX is 0 to 100. As long as both limits are explicitly set, the middle of all indicators will logically match and that's what matters.
     
    Jurik_RSX for reference:
    http://pastebin.com/QRjtCfh4
     
     

     
    So far nope.
  23. Like
    fawaz79 reacted to udc in Ocean Theory indis from TSD elite   
    NDX/NST/NXC with JMA
     
    Here are improved versions of NDX, NST and NXC indis, as well as the cumulative NDXNSTNXC indi, with the option to use JMA instead of TEMA.
     
    Because all the JMA calculations are performed for the whole chart over and over again at every new tick, it may or may not increase the CPU load. For that reason I created a new variable MaxBars to limit the number of history bars onto which the indicator will be applied. For example, MaxBars=500 means that the indicator will be calculated only for 500 most recent bars. MaxBars=0 means to calculate the whole chart.
     
    NDXNSTNXC without JMA and with JMA:
    http://img862.imageshack.us/img862/3974/ndxnstnxcjma.png
     
    Original size screenshot:
    http://img163.imageshack.us/img163/3974/ndxnstnxcjma.png
     
     
    All 19 indis:
    http://uloz.to/xENQnqM/ocn-classic-4-15-2012-7z
  24. Like
    fawaz79 reacted to udc in Ocean Theory indis from TSD elite   
    NDX, NST, NXC et al.
     
    Three bounded Ocean indicators, the first two you already got, the third one is an improved version (thus "x" suffix) of the original with the option to mark zero hits.
     
    Original NDX, NST, NXC on TradeStation:
    http://img705.imageshack.us/img705/7306/ndxnstnxctradestation.png
     
    Ocn_NDX, Ocn_NST, Ocn_NXCx on Metatrader:
    http://img825.imageshack.us/img825/2768/ndxnstnxcmetatrader.png
     
    Original size screenshots:
    http://img802.imageshack.us/img802/7306/ndxnstnxctradestation.png
    http://img402.imageshack.us/img402/2768/ndxnstnxcmetatrader.png
     
     
    However, you don't actually need these three indis at all, because I've combined them all into a single Ocn_NDXNSTNXCx indi, which can:

    show NDX, NST, NXC
    show NXC zero hits
    show a common NDX&NST's NMA
    turn on/off each of these 5 elements individually (so you can for example show NDX and NXC's zero hits without even showing NXC itself)

     
    As for the NMA, you have 4 options there to adjust it:

    the period of NMA
    you can choose whether it should be regular or fast NMA
    if fast then what would be the minimal lookback
    pre-smoothing the data before entering NMA

    The default settings is: period 20, regular NMA, pre-smoothing 1 (means no smoothing). As I mentioned I don't know what should be the default settings, I don't even exactly know how this NMA should be calculated from NDX&NST, however after countless studying the videos and testing and trying I found this settings as somewhat, more or less, give or take, remotely similar to what they have. No guarantee (most probably it's not right) :)
     
    Also, I have done another few changes:

    Ocn_NMA_Price_Osc improved into Ocn_NMA_Price_Oscx: added all SD band lines
    all indis with SD band lines got a third SD band line in the middle, optional of course
    when zero hit was detected the SD bands were zeroed; this is now optional and can be turned on/off
    all indis have versions now

     
    Now the full list of Ocean Classic library (worth $4,995.00) includes:

    Ocn_NMAx
    Ocn_NMA_Price_Oscx
    Ocn_NMA_SD_Band_Osc (orig, keeping this version for compatibility because the improved one got a shifted scale)
    Ocn_NMA_SD_Band_Oscx
    Ocn_NMA_SD_Band_Width (orig)
    Ocn_NMM_X-Ray_1 (orig)
    Ocn_NMM_X-Ray_2 (orig, didn't get any idea what to improve on these last three)
    Ocn_NMM_Ocean_Indexx
    Ocn_NMMx
    Ocn_NMM_MACDx
    Ocn_NMM_ROCx
    Ocn_NMRx
    Ocn_NMSx
    Ocn_NMCx
    Ocn_NMC2x
    Ocn_NDX
    Ocn_NST
    Ocn_NXCx
    Ocn_NDXNSTNXCx

     
    Note: I didn't implement all original options and features, namely those functions showing historical overbought/oversold levels etc. They never demonstrated nor commented it in any video so I just haven't found it worth an effort. It can be implemented if needed, though.
     
    http://uloz.to/xeTvGZd/ocn-classic-7z
     
     
    digian: maybe you could make again the "full bundle" package?
     
    Now it's finally time for BTX/STX.
  25. Like
    fawaz79 reacted to udc in Ocean Theory indis from TSD elite   
    Ocn_NMM_MACDx for MT4
     
    Ocn_NMM_MACDx.
     
     

    #property indicator_separate_window #property indicator_buffers 6 #property indicator_color1 Magenta #property indicator_color2 Lime #property indicator_color3 Silver #property indicator_color4 Silver #property indicator_color5 Yellow #property indicator_color6 Aqua #property indicator_level1 0 #property indicator_levelcolor Gray #property indicator_levelstyle 2 extern int NMM_MACD_period = 40; extern bool Show_ZH = true; extern double ZH_displacement = 1; extern int ZH_symbol = 115; extern bool Show_SD = true; extern int SD_len = 30; extern double SD_up = 2; extern double SD_dn = 2; extern bool Show_SD_1line_only = true; extern bool Show_SD_2lines_up = true; extern bool Show_SD_2lines_dn = true; extern int NMA_period = 40; extern int NMA_LB_min = 8; extern bool Show_NMA = true; extern bool Show_FastNMA = true; double NMM_MACD[]; double ZH[]; double SD[]; double SD2[]; double NMM_MACD_NMA[]; double NMM_MACD_FastNMA[]; double NMM[]; double NMM_MA[]; int init() { string nmmmacdname = "NMM_MACD(" + NMM_MACD_period + ")"; IndicatorShortName(nmmmacdname); IndicatorBuffers(8); SetIndexBuffer(0, NMM_MACD); SetIndexLabel(0, nmmmacdname); SetIndexBuffer(1, ZH); SetIndexLabel(1, "NMM_MACD_ZH"); SetIndexStyle(1, DRAW_ARROW); SetIndexArrow(1, ZH_symbol); SetIndexBuffer(2, SD); SetIndexBuffer(3, SD2); if(Show_SD_1line_only) { SetIndexLabel(2, "NMM_MACD_SD(" + SD_len + ")"); SetIndexLabel(3, "unused"); } else { if(Show_SD_2lines_up) SetIndexLabel(2, "NMM_MACD_SD_up(" + SD_len + ")"); else SetIndexLabel(2, "unused"); if(Show_SD_2lines_dn) SetIndexLabel(3, "NMM_MACD_SD_dn(" + SD_len + ")"); else SetIndexLabel(3, "unused"); } SetIndexBuffer(4, NMM_MACD_NMA); SetIndexBuffer(5, NMM_MACD_FastNMA); if(Show_NMA) SetIndexLabel(4, "NMM_MACD_NMA(" + NMA_period + ")"); else SetIndexLabel(4, "unused"); if(Show_FastNMA) SetIndexLabel(5, "NMM_MACD_FastNMA(" + NMA_period + ", " + NMA_LB_min + ")"); else SetIndexLabel(5, "unused"); SetIndexBuffer(6, NMM); SetIndexBuffer(7, NMM_MA); return(0); } int start() { int limit, i, ii, counted_bars = IndicatorCounted(); double nmm2, sum, abssum, ratio, nmmmacdnum, maxnmmmacd; if(Bars <= 2*NMM_MACD_period) return(0); if(counted_bars < 0) counted_bars = 0; if(counted_bars > NMM_MACD_period) limit = Bars - counted_bars; else limit = Bars - NMM_MACD_period - 1; for(i = limit; i >= 0; i--) { nmm2 = 0; for(ii = 1; ii <= NMM_MACD_period; ii++) nmm2 += (MathLog(Close[i]) - MathLog(Close[i+ii])) / MathSqrt(ii); NMM[i] = (nmm2 / NMM_MACD_period) * 1000; } for(i = limit; i >= 0; i--) if(i < Bars - 2*NMM_MACD_period - 1) { ratio = 0; sum = (NMM[i] - NMM[i+1]) + (NMM[i+1] - NMM[i+2]) * (MathSqrt(2)-1); for(ii = 2; ii < NMM_MACD_period; ii++) sum += (NMM[i+ii] - NMM[i+ii+1]) * (MathSqrt(ii+1) - MathSqrt(ii)); abssum = MathAbs(sum); sum = 0; for(ii = 0; ii < NMM_MACD_period; ii++) sum += MathAbs(NMM[i+ii] - NMM[i+ii+1]); if(sum != 0) ratio = abssum / sum; NMM_MA[i] = NMM_MA[i+1] + (NMM[i] - NMM_MA[i+1]) * ratio; NMM_MACD[i] = NMM[i] - NMM_MA[i]; if(Show_ZH) { if(NMM_MACD[i] == 0) ZH[i] = ZH_displacement; else ZH[i] = EMPTY_VALUE; } } if(Show_SD) for(i = limit; i >= 0; i--) if(i < Bars - 2*NMM_MACD_period - 1 - SD_len) { if(Show_SD_1line_only) { if(NMM_MACD[i] == 0) SD[i] = 0; else if(NMM_MACD[i] > 0) SD[i] = iBandsOnArray(NMM_MACD, 0, SD_len, SD_up, 0, MODE_UPPER, i); else if(NMM_MACD[i] < 0) SD[i] = iBandsOnArray(NMM_MACD, 0, SD_len, SD_dn, 0, MODE_LOWER, i); } else { if(NMM_MACD[i] == 0) { if(Show_SD_2lines_up) SD[i] = 0; if(Show_SD_2lines_dn) SD2[i] = 0; } else { if(Show_SD_2lines_up) SD[i] = iBandsOnArray(NMM_MACD, 0, SD_len, SD_up, 0, MODE_UPPER, i); if(Show_SD_2lines_dn) SD2[i] = iBandsOnArray(NMM_MACD, 0, SD_len, SD_dn, 0, MODE_LOWER, i); } } } if(Show_NMA) for(i = limit; i >= 0; i--) if(i < Bars - 2*NMM_MACD_period - 1 - NMA_period) { ratio = 0; sum = (NMM_MACD[i] - NMM_MACD[i+1]) + (NMM_MACD[i+1] - NMM_MACD[i+2]) * (MathSqrt(2)-1); for(ii = 2; ii < NMA_period; ii++) sum += (NMM_MACD[i+ii] - NMM_MACD[i+ii+1]) * (MathSqrt(ii+1) - MathSqrt(ii)); abssum = MathAbs(sum); sum = 0; for(ii = 0; ii < NMA_period; ii++) sum += MathAbs(NMM_MACD[i+ii] - NMM_MACD[i+ii+1]); if(sum != 0) ratio = abssum / sum; NMM_MACD_NMA[i] = NMM_MACD_NMA[i+1] + (NMM_MACD[i] - NMM_MACD_NMA[i+1]) * ratio; } if(Show_FastNMA) for(i = limit; i >= 0; i--) if(i < Bars - 2*NMM_MACD_period - 1 - NMA_period) { maxnmmmacd = 0; ratio = 0; int NMA_LB_max; for(ii = 1; ii <= NMA_period; ii++) { nmmmacdnum = (NMM_MACD[i] - NMM_MACD[i+ii]) / MathSqrt(ii); if(MathAbs(nmmmacdnum) > maxnmmmacd) { maxnmmmacd = MathAbs(nmmmacdnum); NMA_LB_max = ii; } } if(NMA_LB_max < NMA_LB_min) NMA_LB_max = NMA_LB_min; sum = (NMM_MACD[i] - NMM_MACD[i+1]) + (NMM_MACD[i+1] - NMM_MACD[i+2]) * (MathSqrt(2)-1); for(ii = 2; ii < NMA_LB_max; ii++) sum += (NMM_MACD[i+ii] - NMM_MACD[i+ii+1]) * (MathSqrt(ii+1) - MathSqrt(ii)); abssum = MathAbs(sum); sum = 0; for(ii = 0; ii < NMA_LB_max; ii++) sum += MathAbs(NMM_MACD[i+ii] - NMM_MACD[i+ii+1]); if(sum != 0) ratio = abssum / sum; NMM_MACD_FastNMA[i] = NMM_MACD_FastNMA[i+1] + (NMM_MACD[i] - NMM_MACD_FastNMA[i+1]) * ratio; } return(0); }
     
    The source code is also available for download here:
    http://pastebin.com/qwN27vxb
×
×
  • Create New...