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.

turboscottomatic

Help with Some Lin Reg Curve Color Coding - MQL4 to TS

Recommended Posts

Hi All,

I am hoping someone with some C or MQL4 coding savvy can help me. I have some color coding in an indicator written in MQL4 (which is supposed to be like C) that I am trying to apply to my TS indicator. I have some skill in TS indicator coding and can do that part, if someone can help me understand the MQL4 logic.

 

The indicator in MQL4 is 'Least Squares Moving Average' which is identical on a chart to TS 'Linear Regression Curve.' My TS version (MultiCharts, actually) is one color. The MQL4 version has a very nice 3 color appearance that I find very useful. However, I can't make heads or tails of the code. I would appreciate GREATLY if some real programmer out there can translate the color coding part of the following code into normal logic statements or pseudo-code for me. I can take it from there. I assume I"ll be able to apply it to the TS LRC indicator simply enough, if I can just understand the logic. I will be happy to share the indicator with the forum once it's done, if anyone is interested in it.

 

I've attached a picture of the indicator. You can see the 3 color logic I'm talking about.

 

Many Thanks for the help,

Scott

 

Here is the MQL4 code:

 

 

 

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

//| |

//| Copyright © 2004, MetaQuotes Software Corp. |

//| http://www.metaquotes.net/ |

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

#property copyright "Copyright © 2005, FX Sniper "

#property link "http://www.metaquotes.net/"

 

//---- indicator settings

#property indicator_chart_window

#property indicator_buffers 3

#property indicator_color1 Yellow

#property indicator_color2 Green

#property indicator_color3 Red

 

//---- buffers

double ExtMapBuffer1[];

double ExtMapBuffer2[];

double ExtMapBuffer3[];

int width;

 

extern int Rperiod = 34;

extern int Draw4HowLongg = 1500;

int Draw4HowLong;

int shift;

int i;

int loopbegin;

double sum[];

int length;

double lengthvar;

double tmp ;

double wt[];

int c;

 

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

//| Custom indicator initialization function |

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

int init()

{

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

IndicatorBuffers(5);

 

//---- drawing settings

SetIndexBuffer(2,ExtMapBuffer1);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexBuffer(0,ExtMapBuffer3);

SetIndexBuffer(3,sum);

SetIndexBuffer(4,wt);

 

SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,2);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);

 

//---- initialization done

return(0);

}

 

int start()

 

{ Draw4HowLong = Bars-Rperiod - 5;

length = Rperiod;

loopbegin = Draw4HowLong - length - 1;

 

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

{

sum[1] = 0;

for(i = length; i >= 1 ; i--)

{

lengthvar = length + 1;

lengthvar /= 3;

tmp = 0;

tmp = ( i - lengthvar)*Close[length-i+shift];

sum[1]+=tmp;

}

wt[shift] = sum[1]*6/(length*(length+1));

 

//========== COLOR CODING ===========================================

 

ExtMapBuffer3[shift] = wt[shift]; //red

ExtMapBuffer2[shift] = wt[shift]; //green

ExtMapBuffer1[shift] = wt[shift]; //yellow

 

// for(c=loopbegin;c==shift;c++)

// {

if (wt[shift+1] > wt[shift])

{

ExtMapBuffer2[shift+1] = EMPTY_VALUE;

// ObjectCreate("smiley_face", OBJ_ARROW, 0, Time[shift], Low[shift]-Point*20);

// Print("time= ",Time[shift]);

// ObjectSet("smiley_face", OBJPROP_ARROWCODE, 242);

// ObjectSet("smiley_face", OBJPROP_COLOR , Red);

// ObjectSet("smiley_face", OBJPROP_WIDTH , 1);

// ObjectsRedraw();

 

//ExtMapBuffer3[shift+1] = EMPTY_VALUE;

//ExtMapBuffer3[shift+1] = EMPTY_VALUE;

 

}

else if (wt[shift+1] < wt[shift])

{

ExtMapBuffer1[shift+1] = EMPTY_VALUE; //-1 red/greem tight

//ExtMapBuffer3[shift+1] = EMPTY_VALUE;

 

}

else

{

 

ExtMapBuffer1[shift+1]=CLR_NONE;//EMPTY_VALUE;

ExtMapBuffer2[shift+1]=CLR_NONE;//EMPTY_VALUE;

}

 

}

 

return(0);

}

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

5aa70e40cd16f_lsmapic.gif.49894fbaba7c40f27ce61a3be40a6b5a.gif

Share this post


Link to post
Share on other sites

If anyone has been looking at this, thanks but don't bother. The color coding on this LinReg was so amazing I thought I found a grail. But when I put it on a 1 minute chart and watched it for a while, turns out it was repainting 2 bars back on reversals - thereby giving a fantasy early warning at every reversal.

 

Scott

Share this post


Link to post
Share on other sites

Thanks. No price indicator can paint that reversal in real time. This is like a Zigzag or price action indicator, it won't know the price peak (HH) or trough (LL) until 2 or more bars later.

5aa70e42a3b6a_Priceaction2008-03-03_133150.png.7babd5568105ca5e9271554465332674.png

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.