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.

Alex_

Crosses One Bar Ago (EasyLanguage)

Recommended Posts

Hi everybody!

 

I'm beginner in easylanguage and can't find information about crossing at one (two, three ...) bars ago.

 

E.g. If a do MA1 crosses above MA2, it determines crossing at the current bar.

What if I want to check crossing one bar ago (or two, or three)?

 

Thank you for help in advance!!! :)

Share this post


Link to post
Share on other sites
Hi everybody!

 

I'm beginner in easylanguage and can't find information about crossing at one (two, three ...) bars ago.

 

E.g. If a do MA1 crosses above MA2, it determines crossing at the current bar.

What if I want to check crossing one bar ago (or two, or three)?

 

Thank you for help in advance!!! :)

 

Hi Alex,

 

Position within the numeric series is identified in square brackets after the value. Take the close of the bar for example. The current close is c[0], although if no square brackets follow the value then it is automatically assumed to be that of the current bar, so you will seldom or never see c[0] written, as just stating c is the same.

 

The close one bar prior to the current close would be identified as c[1], and then c[2], and so on.

 

Here is an example of code that buys when the 20sma average five bars prior has crossed above the 100sma five bars back:

 

If average(c,20)[5] crosses over average(c,100)[5] then
Buy this bar;

 

If you wanted to ensure that the averages have not crossed back in the bars that followed, then you can either set up a variable that switches itself on and off when a crossover occurs, or you can repeat the process above to get something like the following:

 


Vars:
myAVG(0),
myAVGslow(0);

myAVG=Average(c,20);
myAVGslow=Average(c,100);

If myAVG[5] crosses over myAVGslow[5] and 
myAVG[4]>myAVGslow[4] and 
myAVG[3]>myAVGslow[3] and
myAVG[2]>myAVGslow[2] and
myAVG[1]>myAVGslow[1] and 
myAVG>myAVGslow then
Buy this bar;

 

I hope that answers your question.

 

BlueHorseshoe

Share this post


Link to post
Share on other sites
Hi everybody!

 

I'm beginner in easylanguage and can't find information about crossing at one (two, three ...) bars ago.

 

E.g. If a do MA1 crosses above MA2, it determines crossing at the current bar.

What if I want to check crossing one bar ago (or two, or three)?

 

Thank you for help in advance!!! :)

 

input:
bars.ago(1);

if MA1[ bars.ago ] > MA2[ bars.ago ]
and MA1[ bars.ago+1 ] <= MA2[ bars.ago+1 ]
then begin


Share this post


Link to post
Share on other sites

The "MRO" function reports "bars ago for a certain event or condition.

 

MRO(MA1 crosses over MA2, 100, 1) will scan the previous 100 bars and report the number of bars ago that the first instance of MA1 crossed over MA2.

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.