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.

derek2209

Convert MT4 Indicator into Tradestation

Recommended Posts

Hi,

 

Could you please help me to convert the Turbo_JRSX.mq4 code below into

Tradestation Easylanguage.

 

Thank you in advance

 

Derek

 

---------------------------------------------------------------------------

 

http://www.mql5.com/en/code/viewcode/7900/44457/Turbo_JRSX.mq4

 



//+------------------------------------------------------------------+
//|                                                                  |
//|                 Copyright © 1999-2007, MetaQuotes Software Corp. |
//|                                         http://www.metaquotes.ru |
//+------------------------------------------------------------------+
#property copyright "strategybuilderfx.com - modified by bluto to use typical price (HLC/3)"
#property link "finger"
//----
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Magenta
#property indicator_level1 70
#property indicator_level2 30
#property indicator_level3 50
#property indicator_maximum 100
#property indicator_minimum 0
//---- input parameters
extern int Len=14; //---- buffers
double rsx[];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
 int init() 
 {
  SetIndexStyle(0,DRAW_LINE);
  SetIndexBuffer(0,rsx);
  IndicatorShortName("Turbo_JRSX");
  return(0);
 }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int deinit()
 {
  return(0);
 }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
 {
  double f88, f90;
  double f0, v4, v8, vC, v10, v14, v18, v20;
  double f8, f10, f18, f20, f28, f30, f38, f48, v1C;
  double f50, f58, f60, f68, f70, f78, f80, f40;
  //int counted_bars = IndicatorCounted(),limit,shift;
  //if (counted_bars<0) return(-1);
  //if (counted_bars>0) counted_bars--;
  double limit=Bars-(Len)-1;
  //if(counted_bars>Len) limit=Bars-counted_bars-1;
    for(int shift=limit;shift>=0;shift--) 
    {
       if (f90==0.0) 
       {
        f90=1.0;
        f0=0.0;
        if (Len-1>=5) f88=Len-1.0; else f88=5.0;
        //      f8 = 100.0*(Close[shift]);
        // 
        //      Modified for median price
        //
        f8=100.0*((High[shift]+Low[shift]+Close[shift])/3);
        f18=3.0/(Len + 2.0);
        f20=1.0 - f18;
        }
         else
        {
        if (f88<=f90) f90=f88 + 1; else f90=f90 + 1;
        f10=f8;
        //      f8 = 100*Close[shift];
        f8=100.0*((High[shift]+Low[shift]+Close[shift])/3);
        v8=f8 - f10;
        f28=f20 * f28 + f18 * v8;
        f30=f18 * f28 + f20 * f30;
        vC=f28 * 1.5 - f30 * 0.5;
        f38=f20 * f38 + f18 * vC;
        f40=f18 * f38 + f20 * f40;
        v10=f38 * 1.5 - f40 * 0.5;
        f48=f20 * f48 + f18 * v10;
        f50=f18 * f48 + f20 * f50;
        v14=f48 * 1.5 - f50 * 0.5;
        f58=f20 * f58 + f18 * MathAbs(v8);
        f60=f18 * f58 + f20 * f60;
        v18=f58 * 1.5 - f60 * 0.5;
        f68=f20 * f68 + f18 * v18;
        f70=f18 * f68 + f20 * f70;
        v1C=f68 * 1.5 - f70 * 0.5;
        f78=f20 * f78 + f18 * v1C;
        f80=f18 * f78 + f20 * f80;
        v20=f78 * 1.5 - f80 * 0.5;
//----
        if ((f88>=f90) && (f8!=f10)) f0=1.0;
        if ((f88==f90) && (f0==0.0)) f90=0.0;
       }
       if ((f88 < f90) && (v20 > 0.0000000001)) 
       {
        v4=(v14/v20 + 1.0) * 50.0;
        if (v4 > 100.0) v4=100.0;
        if (v4 < 0.0) v4=0.0;
        }
         else 
        {
        v4=50.0;
       }
     rsx[shift]=v4;
    }
//----
  return(0);
 }
//+------------------------------------------------------------------+

Share this post


Link to post
Share on other sites

Close Not tested or compiled!, needs some cleaning up work! Compare MQ4 numbers and match them to Tradestation then repost corrected code if need be!

Using elsystem;
inputs:
	int Len(14);

variables:
	double rsx(0),
	double f90(0),
	double f0(0),
	double f88(0),
	double f8(0),
	double f18(0),
	double f20(0),
	double f10(0),
	double v8(0),
	double f28(0),
	double f30(0),
	double vC(0),
	double f38(0),
	double f40(0),
	double v10(0),
	double f48(0),
	double f50(0),
	double v14(0),
	double f58(0),
	double f60(0),
	double v18(0),
	double f68(0),
	double f70(0),
	double v1C(0),
	double f78(0),
	double f80(0),
	double v20(0),
	double v4(0);

IF f90 = 0.0 THEN BEGIN
    f90 = 1.0;
    f0 = 0.0;
    IF Len - 1 >= 5 THEN f88 = Len - 1.0
    ELSE f88 = 5.0;
    f8 = 100.0 * ((High + Low + Close) / 3);
    f18 = 3.0 / (Len + 2.0){WARNING:Possible division by zero};
    f20 = 1.0 - f18;
END
ELSE BEGIN
    IF f88 <= f90 THEN f90 = f88 + 1
    ELSE f90 = f90 + 1;
    f10 = f8;
    f8 = 100.0 * ((High + Low + Close) / 3);
    v8 = f8 - f10;
    f28 = f20 * f28 + f18 * v8;
    f30 = f18 * f28 + f20 * f30;
    vC = f28 * 1.5 - f30 * 0.5;
    f38 = f20 * f38 + f18 * vC;
    f40 = f18 * f38 + f20 * f40;
    v10 = f38 * 1.5 - f40 * 0.5;
    f48 = f20 * f48 + f18 * v10;
    f50 = f18 * f48 + f20 * f50;
    v14 = f48 * 1.5 - f50 * 0.5;
    f58 = f20 * f58 + f18 * AbsValue(v8);
    f60 = f18 * f58 + f20 * f60;
    v18 = f58 * 1.5 - f60 * 0.5;
    f68 = f20 * f68 + f18 * v18;
    f70 = f18 * f68 + f20 * f70;
    v1C = f68 * 1.5 - f70 * 0.5;
    f78 = f20 * f78 + f18 * v1C;
    f80 = f18 * f78 + f20 * f80;
    v20 = f78 * 1.5 - f80 * 0.5;
    IF (f88 >= f90) AND (f8 <> f10) THEN f0 = 1.0;
    IF (f88 = f90) AND (f0 = 0.0) THEN f90 = 0.0;
END;
IF (f88 < f90) AND (v20 > 0_0000000001) THEN BEGIN
    v4 = (v14 / v20{WARNING:Possible division by zero} + 1.0) * 50.0;
    IF v4 > 100.0 THEN v4 = 100.0;
    IF v4 < 0.0 THEN v4 = 0.0;
END
ELSE v4 = 50.0;
rsx = v4;

Plot1(rsx,"rsx");

Plot2(70,"level1");
Plot3(30,"level2");
Plot4(50,"level3");

 

On 7/13/2014 at 10:22 AM, derek2209 said:

Hi,

 

I have attached an Image of the Turbo_JRSX

I hope this will help

 

Best regards,

Derek

 

150029d1404068860t

 

On 7/13/2014 at 10:22 AM, derek2209 said:

Hi,

 

I have attached an Image of the Turbo_JRSX

I hope this will help

 

Best regards,

Derek

 

150029d1404068860t

 

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.