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.

Sign in to follow this  
Tams

Switch/Case (EasyLanguage)

Recommended Posts

This thread is about the EasyLanguage keywords Switch and Case.

 

 

Switch/Case (EasyLanguage)

 

 

Reserved word used to transfer control to an associated Case or Default statement.

 

 

Syntax

 

Switch ( expression )

Begin

Case case-expression: statements;

Default: statements;

End;

 

Control passes to the statements whose case-expression matches the value of the switch ( expression ).

 

The switch statement can include any number of case instances,

but no two case constants within the same switch statement can have the same constant value.

 

 

Note Once the statements associated with a matching case are evaluated,

control passes to the end of the switch statement.

This is an implied break and is different than a similar structure found in some other languages that require an explicit break.

 

Remarks

 

A single case statement can carry multiple values,

as the following example shows:

 

Case 1, 2, 3, 4, 5, 6, 20: Value1 = Lowest(Close,3);

 

Ranges like this are also valid:

 

Case 1 to 6, 20: Value2 = Highest(High,5);

 

In both of the above examples,

if case-expression equals any number between 1 and 6 or equal to 20,

a function is called and assigned to a value.

 

In addition,

logical operators may be used with case statements including: >, <, >=, <=, <> and =.

 

Case > Average( Close, 50 ): Value1 = Close ;

 

The “is” keyword is an EasyLanguage skip keyword and can be use for better clarity as in the following:

 

Case is < Average( High, 75 ): Value1 = High ;

 

 

Example

 

Switch(Value1)  
Begin 

   Case 1 to 5:         
       Value2 = Value2 + 1; 

   Case 10, 20, 30: 
       Value3 = Highest(High,10); 

   Case is > 40: 
       Value3 = Value3 + 1; 

   Default: 
    Value5 = Value5 + 1; 

End;

 

 

The above switch statement Increments Value2 when the switch expression (Value1) is a value from 1 to 5;

assigns Value3 to the highest high of 10 bars ago when the switch expression is either 10, 20 or 30;

increments Value4 for all switch expression values above 40;

and increments Value5 for any other values of the switch expression.

 

 

 

Source: EasyLanguage manual

Share this post


Link to post
Share on other sites

Example...

 

switch (BarType)
begin

  case 0:
     {this is a Tick or Contract chart}

  case 1:
     {this is a Decond, Minute, or Hourly chart}

  case  2:
     {this is a Daily chart}

  case  3:
     {this is a Weekly chart}

  case 4:
     {this is a Months, Quarters, or Yearly chart}

  case 5: 
     {this is a Points or Changes chart}

end; // end of switch

Share this post


Link to post
Share on other sites

The above code is a lot more elegant than the traditional way of filtering:

 

if BarType = 0 then
begin
     {this is a Tick or Contract chart}
end
else
if BarType = 1 then
begin
     {this is a Second, Minute, or Hourly chart}
end
else
if BarType = 2 then
begin
     {this is a Daily chart}
end
else
if BarType = 3 then
begin
     {this is a Weekly chart}
end
else
if BarType = 4 then
begin
     {this is a Months, Quarters, or Yearly chart}
end
else
if BarType = 5 then
begin
     {this is a Points or Changes chart}
end; 

// end of filtering

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.

Sign in to follow this  

×
×
  • Create New...

Important Information

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