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.

goody01

Convert MT4 Indicator into Tradestation Eld?

Recommended Posts

Hi,

 

I found 2 interesting and promissing indicators based on MT4 and would be happy to have them available for TS.

Anyone here "billangual" able to code MT4 and Easylanguage? Have MT4 code available and can post it.

 

Many thx in advance,

 

Goody

Share this post


Link to post
Share on other sites

Here is my version. Feel free to modify.

 

1. MA_WRP indicator

 

{ Mimic VininI_BB_MA_WPR.v1.mq4 }

 

inputs: WRP_Len(55), MA_Len(3), BB_Len(89), BB_Std(1);

 

Vars: WRP(0), WRPMid(0), WRPUP(0), WRPDN(0), sDev(0);

 

{WRP = (PercentR( WRP_Len )+50 )*2 ; WRP with scale > 100}

 

WRP = PercentR( WRP_Len );

WRPMid = Average( WRP, BB_Len );

SDev = StdDev( WRP, BB_Len );

 

WRPUP = WRPMid + BB_Std*sDev;

WRPDN = WRPMid - BB_Std*sDev;

 

 

Plot1(Average(WRP, MA_Len), "%R w/BB" ) ;

Plot2(WRPMid, "WRPMid" );

Plot3(WRPUP, "WRPUP" );

Plot4(WRPDN, "WRPDN" );

MA_WRP.ELD

Ma-WRP.thumb.jpg.06658c11407d1882ef8f067540cbad30.jpg

Edited by phim9hi3n

Share this post


Link to post
Share on other sites

Hi phim9hi3n,

 

great, many thanks for your help here!

Not sure what you think about it, but it seems to give a good help about where you are in a trend and if it maybe going to change. I had 2 screens attached in my first post.

There is some info available about the TDI on the Web to dig in a bit deeper, compassfx.com seems to be a good start.

 

So thx again and good luck,

 

Goody:)

Share this post


Link to post
Share on other sites
Hi,

 

I found 2 interesting and promissing indicators based on MT4 and would be happy to have them available for TS.

Anyone here "billangual" able to code MT4 and Easylanguage? Have MT4 code available and can post it.

 

Many thx in advance,

 

Goody

 

I found also interesting indicator and I think it will be useful for others traders . I will apreciate if somebody helps me "trunslate" this code into Easylanguage TS. Thanks in advance,

Alex.

CycleIdentifier.mq4

Share this post


Link to post
Share on other sites

I just want add picture of this indicator with parameters:

PriceActionFilter=1;

Length=3;

MajorCycleStrength=4;

UseCycleFilter=false;

UseFilterSMAorRSI=1;

FilterStrengthSMA=12;

FilterStrengthRSI=21;

It seems to be similar to Kelly indicator.

Thanks.

Alex.

indicator_cycleidentifier.gif.ccfc309a983de1ca0175455d1e98dfd6.gif

Share this post


Link to post
Share on other sites
:) Yes, I found some info about TDI which is helped me in writing the code.

 

2. TDI w VolBand indicator.

 

Enjoy and lucky on trading.

 

Great job on converting the TDI to tradestation!

 

Here's my contribution, the attached Wilders Smooth is the same as the "Price Channel" the orignal poster shows in the screenshot, and as the Synergy method on MT4. Plot Wilder's twice, 1 with Price = high, 1 with Price = low. Length is 5.

WILDERS SMOOTH MA.ELD

synergy.thumb.jpg.d5c75bc5f3316a081236a8faca29cc8b.jpg

Edited by jeffx
attach schreenshot

Share this post


Link to post
Share on other sites

any1 could help me to convert this please :)

 

its only my simple indicator to plot local time on chart

 

extern int corner=0;

extern int X=0;

extern int Y=0;

extern int Font_Size=10;

extern color Font_Color=Red;

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- creates and sets Object Label

if(ObjectFind("LocalTime")<0) ObjectCreate("LocalTime", OBJ_LABEL, 0, 0, 0, 0);

ObjectSet("LocalTime", OBJPROP_CORNER, corner);

ObjectSet("LocalTime", OBJPROP_XDISTANCE, X+10);

ObjectSet("LocalTime", OBJPROP_YDISTANCE, Y+Font_Size);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//---- deletes Object Label

if(ObjectFind("LocalTime")>-1) ObjectDelete("LocalTime");

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

//---- set and reset Object Label text to show current local time

ObjectSetText("LocalTime", TimeToStr(TimeLocal(),TIME_SECONDS), Font_Size, "Arial", Font_Color);

//----

return(0);

}

//+------------------------------------------------------------------+

Edited by furtrader

Share this post


Link to post
Share on other sites

//+----------------------------------------------- ---------------------------------------+
/ / | Hodrick - Prescott Filter.mq5 |
/ / | Copyright 2010 gpwr |
/ / | vlad1004@yahoo.com |
//+----------------------------------------------- ---------------------------------------+
# property copyright "gpwr"
# property version "1.00"
# property description "Hodrick - Prescott Filter"
# property indicator_chart_window
# property indicator_buffers 1
# property indicator_plots 1
# property indicator_label1 "filter"
# property indicator_type1 DRAW_LINE
# property indicator_color1 Red
# property indicator_style1 STYLE_SOLID
# property indicator_width1 1

//===================================== INPUTS ========== =================================
input int Per = 50; / / HP filter period
input int N = 500 / / # of prices to smooth

/ / Global variables
int PrevBars;
double Lambda;

/ / Indicator buffers
double hpf [];

/ / Custom indicator initialization function -------------------------------------------- - +
void OnInit ()
{
/ / Initialize global variables
  PrevBars = Bars (_Symbol, _Period) -1;
  Lambda = 0.0625/MathPow (MathSin (M_PI / Per), 4);

/ / Map indicator buffers
  ArraySetAsSeries (hpf, true);
  SetIndexBuffer (0 hpf, INDICATOR_DATA);
  IndicatorSetInteger (INDICATOR_DIGITS, _Digits);
  IndicatorSetString (INDICATOR_SHORTNAME "HPF ("+ string (Per )+")");
}

//====================================== MAIN ========= ===================================
int OnCalculate (const int bars,
               const int prev_calculated,
               const datetime & Time [],
               const double & Open [],
               const double & High [],
               const double & Low [],
               const double & Close [],
               const long & tick_volume [],
               const long & volume [],
               const int & spread [])
{
/ / Check for insufficient data and new bar
  if (bars <N)
  {
     Print ( "Error : not enough bars in history!");
     return (0);
  }
  if (PrevBars == bars) return (bars);
  PrevBars = bars;

/ / Initialize indicator buffer to EMPTY_VALUE
  ArrayInitialize (hpf, EMPTY_VALUE);

/ / Reverse indexing direction for Open
  ArraySetAsSeries (Open, true);

/ / Main cycle ---------------------------------------------- -----------------------------+
  for (int i = 0; i <N; i + +) hpf [i] = Open [i];
  HPF (N, Lambda, hpf);
  return (bars);
}
//==================================== FUNCTIONS =========== ==============================
/ / Hodrick - Prescott Filter -------------------------------------------- -------------------+
void HPF (int n, double lambda, double & x [])
{
  double a [], b [], c [], h1, h2, h3, h4, h5, hh1, hh2, hh3, hh5, hb, hc, z;
  ArrayResize (a, n);
  ArrayResize (b, n);
  ArrayResize (c, n);

  a [0] = 1.0 + lambda;
  b [0] =- 2.0 * lambda;
  c [0] = lambda;
  for (int i = 1; i <n - 2; i + +)
  {
     a [i] = 6.0 * lambda +1.0;
     b [i] =- 4.0 * lambda;
     c [i] = lambda;
  }
  a [1] = 5.0 * lambda +1;
  a [n - 1] = 1.0 + lambda;
  a [n - 2] = 5.0 * lambda +1.0;
  b [n - 2] =- 2.0 * lambda;
  b [n - 1] = 0.0;
  c [n - 2] = 0.0;
  c [n - 1] = 0.0;

  / / Forward
  for (int i = 0; i <n; i + +)
  {
     z = a [i] - h4 * h1 - hh5 * hh2;
     hb = b [i];
     hh1 = h1;
     h1 = (hb - h4 * h2) / z;
     b [i] = h1;
     hc = c [i];
     hh2 = h2;
     h2 = hc / z;
     c [i] = h2;
     a [i] = (x [i] - hh3 * hh5 - h3 * h4) / z;
     hh3 = h3;
     h3 = a [i];
     h4 = hb - h5 * hh1;
     hh5 = h5;
     h5 = hc;
  }

  / / Backward 
  h2 = 0;
  h1 = a [n - 1];
  x [n - 1] = h1;
  for (int i = n - 2; i> = 0; i -)
  {
     x [i] = a [i] - b [i] * h1 - c [i] * h2;
     h2 = h1;
     h1 = x [i];
  }
}

 

It's Hodrick-Prescott Filter coded in MT4. it's widely used in econometrics or bussiness forecasting. hope someone convert it to Tradestation.

i've tried by myself but i've stucked in the Forward iteration part. he used one variable named x in the forward interation and it's third parameter of the function itself. but i don't know how to handle it on Tradestation.

Edited by r4bb1t

Share this post


Link to post
Share on other sites
...

It's Hodrick-Prescott Filter coded in MT4. it's widely used in econometrics or bussiness forecasting. hope someone convert it to Tradestation.

i've tried by myself but i've stucked in the Forward iteration part. he used one variable named x in the forward interation and it's third parameter of the function itself. but i don't know how to handle it on Tradestation.

 

if you have tried, but are unwilling to share your "efforts",

what chances are someone would like to collaborate in this ?

Share this post


Link to post
Share on other sites
any1 could help me to convert this please :)

 

its only my simple indicator to plot local time on chart

 

Here is code that puts the clock on the chart. See the ELD file. I got it from the TradeStation, EasyLanguage Forum:

 

eKam Clock and Timer

 

Here is some really simple code that I create:

 

Once
Begin
Value1=Text_new(D,T,H,numtostr(T,2));
End;

Text_SetString(Value1, NumToStr(T,2));
Text_SetLocation(Value1, D, T, getappinfo(aihighestDispValue));

20100526131127BarCountdownTimer.ELD

Share this post


Link to post
Share on other sites
Here is code that puts the clock on the chart. See the ELD file. I got it from the TradeStation, EasyLanguage Forum:

 

eKam Clock and Timer

 

Here is some really simple code that I create:

 

Once
Begin
Value1=Text_new(D,T,H,numtostr(T,2));
End;

Text_SetString(Value1, NumToStr(T,2));
Text_SetLocation(Value1, D, T, getappinfo(aihighestDispValue));

 

 

this code only gives you the ending time of the bar.

 

you should use currenttime:

 

Text_SetString(Value1, NumToStr(CURRENTTIME,0));

 

 

MultiCharts user can use CURRENTTIME_s, which gives the seconds portion of the time.

 

 

ps. there is a function/keyword to format the time into hh:mm:ss

Share this post


Link to post
Share on other sites
this code only gives you the ending time of the bar.

 

you should use currenttime:

 

Text_SetString(Value1, NumToStr(CURRENTTIME,0));

 

 

MultiCharts user can use CURRENTTIME_s, which gives the seconds portion of the time.

 

 

ps. there is a function/keyword to format the time into hh:mm:ss

 

Okay. Thanks. I learned something new. See, it's worth sharing code even if it's not perfect. ;)

Share this post


Link to post
Share on other sites
if you have tried, but are unwilling to share your "efforts",

what chances are someone would like to collaborate in this ?

 

i understand what you meant and i'd like to share anything i have. but i really have nothing.

i meant was i just tried to write some pseudo code to know if it's possible by myself.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Topics

  • Posts

    • I traded alot today. 9 trades, 8 losers and BEs, 1 runner that paid for them all. Gotta keep swinging! totaled 240 bps before commission. The first winner on W, I did not count - it was a mistake that led to profit. I felt like a machine, kept pulling the trigger, watch the 1min chart, see it doesn't go anywhere, take my small loss... over and over... then one takes off... Let it run... the whole time I was thinking I hope that the one winner will pay for all the losers. I was tempted to close out the winner early. I had no idea that the payoff distribution for this strategy would be so extreme - 8 tiny losses before hitting a big win. Pays to keep the losses tiny and keep swinging. 
    • Date : 22nd February 2019.

      MACRO EVENTS & NEWS OF 22nd February 2019.



      FX News Today Both Topix and Nikkei, declined during the Asian session, with -0.25% and -0.18% respectively. Overall, stock markets in Asia struggled through most of the session as subdued inflation data rekindled concerns about a lack of demand and flagging growth and after Wall Street closed in the red. News that US President Trump will meet with China’s top trade negotiator today in Washington seems to have helped Chinese markets to stage a late rally and CSI 300 and Shanghai Comp are up 1.76% and 1.51% respectively and the Hang Seng also managed to claw back losses and is up 0.11%. US stock futures are posting marginal gains and the April WTI future is trading at just over USD 57 per barrel. USDCAD rallied over 1.32 to 1.3225, as Oil inventories rose, with the US at record production levels. Oil price is now back around the $57 mark. Japanese CPI data same as forecasts, pushing the Yen higher. Charts of the Day


      Main Macro Events Today EU CPI Inflation – Core inflation is expected to be confirmed at 1.1% y/y while the overall inflation rate is expected to have stood at 1.4% in January. Canadian Retail Sales – Retail Sales are expected to have declined by 0.3% m/m in December, an improvement from the 0.6% declined observed in November. Mario Draghi Speech – The ECB President is due to speak to the University of Bologna where he will accept an honourary degree. Support and Resistance
       
      Always trade with strict risk management. Your capital is the single most important aspect of your trading business.

      Please note that times displayed based on local time zone and are from time of writing this report.

      Click HERE to access the full HotForex Economic calendar.

      Want to learn to trade and analyse the markets? Join our webinars and get analysis and trading ideas combined with better understanding on how markets work. Click HERE to register for FREE!

      Click HERE to READ more Market news.

      Dr Nektarios Michail
      Market Analyst
      HotForex

      Disclaimer: This material is provided as a general marketing communication for information purposes only and does not constitute an independent investment research. Nothing in this communication contains, or should be considered as containing, an investment advice or an investment recommendation or a solicitation for the purpose of buying or selling of any financial instrument. All information provided is gathered from reputable sources and any information containing an indication of past performance is not a guarantee or reliable indicator of future performance. Users acknowledge that any investment in FX and CFDs products is characterized by a certain degree of uncertainty and that any investment of this nature involves a high level of risk for which the users are solely responsible and liable. We assume no liability for any loss arising from any investment made based on the information provided in this communication. This communication must not be reproduced or further distributed without our prior written permission.
    • Actions for the 21st. 
    • Today had 3 trades, + 73 bps. The 2nd red dot on ALB was an error, somehow 1 share got executed at the lower price. I started new batch of trades today. The tweak was the exit is now based on trailing exit instead of manually calling it. I found it to be extremely uncomfortable as I sat through each retracement on DPZ. To see profit retrace back to zero or negative is associated with much pain. It feels as if it's a permanent loss. My goal is to execute my trading plan and not trade based on my emotions. I am very proud of the 2nd exit on DPZ for 170bps. I will do my best to continue this work. I do notice I may be giving back a bit too much on my losers, I will not change anything until the next batch of trades.   
    • I forgot to post yesterday. I was down 72 bps.  
×

Important Information

By using this site, you agree to our Terms of Use.