Hiring guide for EasyLanguage Engineers

EasyLanguage Developer Hiring Guide

EasyLanguage is a proprietary programming language developed by Omega Research in 1984. It is primarily used for creating trading strategies for the company's MetaTrader platform. EasyLanguage was the first programming language specifically designed for technical analysis and remains one of the most popular choices for traders today. Sources: [1] https://en.wikipedia.org/wiki/EasyLanguage [2] https://www.metatrader5.com/en/learn/easylanguage

Ask the right questions secure the right EasyLanguage talent among an increasingly shrinking pool of talent.

First 20 minutes

General EasyLanguage app knowledge and experience

The first 20 minutes of the interview should seek to understand the candidate's general background in EasyLanguage application development, including their experience with various programming languages, databases, and their approach to designing scalable and maintainable systems.

How would you define EasyLanguage?
EasyLanguage is a proprietary programming language that was developed by TradeStation Securities for their trading software. It is used to create custom indicators and strategies in TradeStation.
What are the basic data types in EasyLanguage?
EasyLanguage supports several data types including numeric, boolean, string, and datetime.
How would you declare a variable in EasyLanguage?
In EasyLanguage, you can declare a variable by using the 'Var:' keyword followed by the variable name and its type. For example, 'Var: MyVariable(Numeric);' declares a numeric variable named MyVariable.
What is the purpose of the 'Once' keyword in EasyLanguage?
The 'Once' keyword is used to ensure that a block of code is executed only once, regardless of how many times the condition for its execution is met.
How would you create a simple moving average in EasyLanguage?
You can create a simple moving average in EasyLanguage by using the 'Average' function. For example, 'Average(Close, 20)' calculates the 20-period simple moving average of the closing price.
The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

What you’re looking for early on

Does the candidate have a firm understanding of EasyLanguage?
Has the candidate demonstrated an ability to problem-solve effectively?
Does the candidate have experience with real-time trading systems?
Can the candidate work well in a team?

Next 20 minutes

Specific EasyLanguage development questions

The next 20 minutes of the interview should focus on the candidate's expertise with specific backend frameworks, their understanding of RESTful APIs, and their experience in handling data storage and retrieval efficiently.

What is the difference between 'If' and 'If-Then-Else' in EasyLanguage?
'If' is used to execute a block of code if a certain condition is met. 'If-Then-Else' is used to execute one block of code if a condition is met, and another block of code if the condition is not met.
How would you use the 'MaxBarsBack' setting in EasyLanguage?
'MaxBarsBack' is used to specify the maximum number of bars that an indicator or strategy can reference. For example, 'MaxBarsBack = 50;' means that the indicator or strategy can reference up to 50 bars back.
What is the purpose of the 'Plot' function in EasyLanguage?
The 'Plot' function is used to create a graphical representation of data on a chart. For example, 'Plot(Close)' plots the closing price on a chart.
How would you create a custom function in EasyLanguage?
You can create a custom function in EasyLanguage by using the 'Function' keyword followed by the function name, parameters, and body. For example, 'Function MyFunction(Param1, Param2) Begin ... End;' creates a function named MyFunction with two parameters.
What is the difference between 'Inputs' and 'Variables' in EasyLanguage?
'Inputs' are values that are provided to an indicator or strategy when it is applied to a chart, while 'Variables' are values that are calculated or used internally by the indicator or strategy.
The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

The ideal back-end app developer

What you’re looking to see on the EasyLanguage engineer at this point.

At this point, a skilled EasyLanguage engineer should demonstrate strong problem-solving abilities, proficiency in EasyLanguage programming language, and knowledge of software development methodologies. Red flags include lack of hands-on experience, inability to articulate complex concepts, or unfamiliarity with standard coding practices.

Digging deeper

Code questions

These will help you see the candidate's real-world development capabilities with EasyLanguage.

What does this basic EasyLanguage code do?
Inputs: Price(NumericSeries), Length(NumericSimple);
Vars: Avg(0);
Avg = Average(Price, Length);
Plot1(Avg, 'Avg');
This code calculates the average of a price over a certain length and plots the average on a chart.
What will be the output of this EasyLanguage code snippet?
Vars: intrabarpersist counter(0);
If MarketPosition = 1 then counter = counter + 1;
Print('Counter: ', counter);
This code will increment the counter by 1 every time the market position is 1 and print the value of the counter.
What does this EasyLanguage code do that involves array manipulation?
Array: MyArray[3](0);
MyArray[1] = High;
MyArray[2] = Low;
MyArray[3] = Close;
Print('High: ', MyArray[1], ' Low: ', MyArray[2], ' Close: ', MyArray[3]);
This code creates an array with 3 elements, assigns the high, low, and close prices to the elements, and then prints these values.
What does this EasyLanguage code do that involves threading or concurrency?
Vars: intrabarpersist counter(0);
If LastBarOnChart_s and counter = 0 then Begin
  counter = counter + 1;
  Print('Last bar on chart.');
End;
This code prints 'Last bar on chart.' only once at the last bar on the chart. The counter is used to ensure the message is printed only once, demonstrating a basic form of concurrency control.

Wrap-up questions

Final candidate for EasyLanguage Developer role questions

The final few questions should evaluate the candidate's teamwork, communication, and problem-solving skills. Additionally, assess their knowledge of microservices architecture, serverless computing, and how they handle EasyLanguage application deployments. Inquire about their experience in handling system failures and their approach to debugging and troubleshooting.

How would you handle errors in EasyLanguage?
EasyLanguage does not have built-in error handling features like try-catch blocks. However, you can use conditional statements to check for potential errors and handle them accordingly.
What is the purpose of the 'SetStopLoss' function in EasyLanguage?
The 'SetStopLoss' function is used to set a stop loss level for a trade. For example, 'SetStopLoss(1000)' sets a stop loss level of 1000 points below the entry price.
How would you optimize a strategy in EasyLanguage?
You can optimize a strategy in EasyLanguage by using the 'Optimize' function to find the best values for the strategy's parameters. This involves running the strategy with different parameter values and comparing the results.

EasyLanguage application related

Product Perfect's EasyLanguage development capabilities

Beyond hiring for your EasyLanguage engineering team, you may be in the market for additional help. Product Perfect provides seasoned expertise in EasyLanguage projects, and can engage in multiple capacities.