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.

Frank

Rotation Factor (Market Profile Code)

Recommended Posts

this EasyLanguage code for 'Rotation Factor' (a Market Profile indicator) was working fine but somehow got screwed up in a Open Ecry software upgrade.

 

I have a headache trying to fix it because it seems to have logic that is perfectly fine. Can someone take a look at this and figure out how to re-write it in a different way that might make it work? I am thinking there is something wrong with either the word 'summation' or with the 'length' code....

 

What its supposed to do is track 30-min bars relative to the one preceeding it and keep a 'running score' --- such that if a low goes below the previous low, that is -1 -- if the high makes a lower high, that is -1 for a total score of -2 for that bar. these are then summed for the intraday session since the beginning of the day (you don't score the first bar of day fyi). so a rotation factor of -4 would be a day where you have made 2 lower lows and 2 lower highs after the first THREE bars. inside bars (ie, high<high[1] AND low>low[2]) and outside bars are scored as a zero.

 

again, this WAS working but no longer does so what I need is for the same content to work --- but somehow coded differently in the hopes that OEC will be able to read the re-worked code.

 

thanks in advance:

 

vars: aa(0), bb(0), cc(0), dd(0), ee(0), firstbar(0), length(0);

if date>date[1] then begin

firstbar=currentbar;

end;

 

length=(currentbar-firstbar);

 

 

if h>h[1] then aa=1 else aa=0;

if h<h[1] then bb=-1 else bb=0;

if h=h[1] then cc=0;

 

if l>l[1] then dd=1 else dd=0;

if l<l[1] then ee=-1 else ee=0;

if l=l[1] then cc=0;

 

value1=aa+bb+cc+dd+ee;

if date = date[1] then value2=summation(value1,length);

 

if date = date[1] then begin

plot1(value2,"count1");

end;

 

plot2(0,"0");

Share this post


Link to post
Share on other sites

what seems to be your problem?

 

can you post the error message?

 

The code compiled in MultiCharts.

Here's the chart. Does it looks right?

 

p.s. I have added the up/down color.

 

 

10256d1240264538-rotation-factor-market-profile-code-rotation_factor.jpg

Rotation_Factor.thumb.jpg.734049fe7d5505644be9a3934e80dcb2.jpg

Edited by Tams

Share this post


Link to post
Share on other sites

thx tams,

 

it compiles without an error -- it just gives the wrong indicator -- (small problem huh)... note how mine is wrong (look at the 4th bar in the indicator pane today) and yours is right using the same code.... this is why was just hoping for the same type of code but just re-worded in a diff't way --- I just don't know how to do it another way....

 

thanks for any help:

 

attachment.php?attachmentid=10257&stc=1&d=1240266134

5aa70ec72b913_WrongCode.thumb.png.0ca493b830e467c2af4143d4e26bf8b2.png

Share this post


Link to post
Share on other sites

Frank, below is a Rotation Factor indicator using EL code. Hope it helps.

 

vars: 
RotationFactor( 0 );

if CurrentBar > 1 then
begin
if Date <> Date[1] then
	RotationFactor = 0;

if Date = Date[1] then
begin
	if High > High[1] then
		RotationFactor = RotationFactor + 1;

	if High < High[1] then
		RotationFactor = RotationFactor - 1;

	if Low > Low[1] then
		RotationFactor = RotationFactor + 1;

	if Low < Low[1] then
		RotationFactor = RotationFactor - 1;
end;
end;

Plot1(0,"ZeroLine");
Plot2(RotationFactor,"RF");

Share this post


Link to post
Share on other sites

With colored bars like in TAMS' chart

 

//-----------------------------------------------------
	inputs:
//----------------------------------------------------

up.color( blue );

//----------------------------------------------------
vars: 
//----------------------------------------------------	

RF(0);

if CurrentBar > 1 then
begin
if Date <> Date[1] then
	RF = 0;

if Date = Date[1] then
begin
	if High > High[1] then
		RF = RF + 1;

	if High < High[1] then
		RF = RF - 1;

	if Low > Low[1] then
		RF = RF + 1;

	if Low < Low[1] then
		RF = RF - 1;
end;
end;

Plot1( 0  , "ZeroLine" );
Plot2( RF , "RF"	  );

if RF > RF[1] then
		SetPlotColor( 1 , up.color	);

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.