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.

arbitragetrader

Convert Mt4 to Tradstation

Recommended Posts

Hello,

I was wondering if someone could help me convert an mt4 language into tradestation language. I have looked online for the ts code but cannot find it so any help would be greatly appreciated. It is called the zerolagstochvbob indicator...

Thanks in advance,

 

#property copyright "Copyright © 2004, MetaQuotes Software Corp."

#property link "perky_z@yahoo.com"

 

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 Lime

#property indicator_color2 Red

#property indicator_width1 3

#property indicator_width2 3

#property indicator_level1 0

#property indicator_level2 10

#property indicator_level3 20

#property indicator_level4 50

#property indicator_level5 80

#property indicator_level6 90

#property indicator_level7 100

 

#property indicator_levelcolor White

 

//---- input parameters

 

 

double stok1=0,stok2=0,stok3=0,stok4=0,stok5=0,mov=0,stoksmoothed=0,smoothing=15;

int shift=0, MAType=1, cnt=0, prevbars=0,loopbegin=0;

 

bool first=true;

//---- buffers

double TrendBuffer[];

double LoBuffer[];

double HiBuffer[];

double PlusSdiBuffer[];

double MinusSdiBuffer[];

double TempBuffer[];

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

//| Custom indicator initialization function |

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

int init()

{

//---- 3 additional buffers are used for counting.

IndicatorBuffers(3);

//---- indicator buffers

SetIndexBuffer(0,TrendBuffer);

SetIndexBuffer(1,LoBuffer);

 

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,3,Lime);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,3,Red);

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));

//---- name for DataWindow and indicator subwindow label

IndicatorShortName("ZLS");

 

SetIndexDrawBegin(0,TrendBuffer);

SetIndexDrawBegin(1,LoBuffer);

 

return(0);

}

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

//| Average Directional Movement Index |

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

int start()

{

// initial checkings

// check for additional bars loading or total reloading

if (Bars < prevbars ) first = true;

if (Bars-prevbars>1) first = true;

prevbars = Bars;

if (first)

{

// loopbegin prevent couning of counted bars exclude current

loopbegin = Bars-1;

if (loopbegin < 0) return(0); // not enough bars for counting

 

 

first = False;

}

 

 

loopbegin = loopbegin+1;

// Comment( loopbegin); // current bar is to be recounted too

for (shift = loopbegin; shift>= 0 ;shift--)

{

 

stok1 = (iStochastic(NULL,0,8,3,3,MODE_SMA,NULL,MODE_MAIN,shift))*0.05;

stok2 = (iStochastic(NULL,0,89,21,3,MODE_SMA,NULL,MODE_MAIN,shift))*0.43;

stok3 = (iStochastic(NULL,0,55,13,3,MODE_SMA,NULL,MODE_MAIN,shift))*0.26;

stok4 = (iStochastic(NULL,0,34,8,3,MODE_SMA,NULL,MODE_MAIN,shift))*0.16;

stok5 = (iStochastic(NULL,0,21,5,3,MODE_SMA,NULL,MODE_MAIN,shift))*0.10;

mov = stok1+stok2+stok3+stok4+stok5;

stoksmoothed = mov/smoothing + LoBuffer[shift+1]*(smoothing-1)/smoothing;

 

TrendBuffer[shift]=mov;

LoBuffer[shift]=stoksmoothed;

 

loopbegin = loopbegin-1;

}}

return(0);

// prevent to previous bars recounting

Share this post


Link to post
Share on other sites



input: 
smoothing(15);


vars:
stok1(0),
stok2(0),  
stok3(0),  
stok4(0), 
stok5(0),  
mov(0),  
stoksmoothed(0);  


stok1 = SlowDCustomOrig(H, L, C, 8, 3, 3) * 0.05;
stok2 = SlowDCustomOrig(H, L, C, 89, 21, 3) * 0.43;
stok3 = SlowDCustomOrig(H, L, C, 55, 13, 3) * 0.26;
stok4 = SlowDCustomOrig(H, L, C, 34, 8, 3) * 0.16;
stok5 = SlowDCustomOrig(H, L, C, 21, 5, 3) * 0.10;
mov = stok1 + stok2 + stok3 + stok4 + stok5;
stoksmoothed = mov/smoothing + stoksmoothed[1] * (smoothing - 1) / smoothing;

plot1(mov);
plot2(stoksmoothed);


Share this post


Link to post
Share on other sites

Hello,

Thanks for the indicator. I just had a question that you or someone might be able to answer. Attached is a chart of tradestation with the zero lag indicator and MT4 with the zero lag. As you can see there is quite a difference between the two. Do you know why this is?

Thanks,

zls.thumb.jpg.7d9f3fa82f2013172b6ac8282ce91b72.jpg

Share this post


Link to post
Share on other sites

Metatrader is unsupported so I had no way of knowing what formula they use for stochastics. This one looks like it. Any differences could be data differences - will be different for each broker (forex).

 


input: 
smoothing(15);

vars:
stok1(0),
stok2(0),  
stok3(0),  
stok4(0), 
stok5(0),  
mov(0),  
stoksmoothed(0);  

stok1 = SlowDCustom(H, L, C, 8) * 0.05;
stok2 = SlowDCustom(H, L, C, 89) * 0.43;
stok3 = SlowDCustom(H, L, C, 55) * 0.26;
stok4 = SlowDCustom(H, L, C, 34) * 0.16;
stok5 = SlowDCustom(H, L, C, 21) * 0.10;
mov = stok1 + stok2 + stok3 + stok4 + stok5;
stoksmoothed = mov / smoothing + stoksmoothed[1] * (smoothing - 1) / smoothing;

plot1(mov);
plot2(stoksmoothed);

Edited by statsign

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.