Evaluating your trading strategy using backtesting and forward testing can help you double check your trade set-up. But what if you had one more tool at your disposal to triple check your strategy?
Well, there is! PHI 1’s unique – Strategy Grading.
First, what does strategy grading even mean…? Let us explain.
Strategy grading refers to the automatic scenario-based scoring of your trading strategies. In simple terms, it refers to scoring your algorithmic trading strategy for various market scenarios such as downtrend, uptrend, crash, and so on. The process involves grading any set of mechanical trading rules in a variety of market conditions.
Different market conditions are pre-defined in your algo trading system and when you enter your trading set-up or rules, the system generates a score or grade that shows how your strategy will perform in each market condition in the system.
Why should you grade your trading strategy?
Scoring your algorithmic trading strategy has obvious benefits. It can help you understand how your strategy will perform in various market conditions, including market extremes. This can enable you to refine your strategy before you trade and avert huge losses.
It also helps eliminate biased performance, when your trading strategy works only in certain market conditions or at least helps you decide when to use a particular strategy.
How does PHI 1’s strategy grading feature work?
The strategy grading mechanism measures the performance of any arbitrary trading strategy for various market scenarios. It can grade strategy for 7 different market scenarios currently:
1. Uptrend High Volatility (Bull Market)
2. Uptrend Low Volatility (Bull Market)
3. Downtrend High Volatility (Bear Market)
4. Downtrend Low Volatility (Bear Market)
5. Sideways High Volatility
6. Sideways Low Volatility
7. Market Crash
How to grade your trading strategy on PHI 1 in 6 simple steps
Step 1: First, you would need to create a strategy in the Code Mode or Form Mode (if you prefer not to code).
Step 2: Name the strategy and select Run and Save.
Caption: In this case, we have created the Trix Momentum strategy. The init code calculates the required indicator by providing the name and parameters of the built-in momentum indicator, and the step code takes entry and exit positions based on its values
The displayed summary results and individual trades can be assessed, and the strategy can be modified based on the analysis.
The Strategy Return Chart displays the equity return and drawdown for the strategy.
Step 3: You can now test the performance of your trading strategy over a wide range of market conditions. Simple select Strategy to list all your saved strategies.
Step 4: Select Grading corresponding to the strategy that you would like PHI 1 to score or grade.
This starts all relevant backtests that your strategy should be assessed on to know its suitability for a wide range of market scenarios.
Step 5: Once the process is complete, you can view and analyze the results. This will help you further fine tune your strategy or use it only in specific market environments.
Step 6: Well, this requires you to try it out! Are you still waiting? Well, you don’t have to, because PHI 1 offers a free trial for 14 days. Post the trial, you can choose a plan that suits you best.
Isn’t strategy grading a game changer in making trades more decisive?
Not just this, PHI 1 also offers screening, bulk backtesting, simulation, and deployment, all in one unified trading platform.
Experience the power of automation in trading. Go full throttle with PHI 1.
Here’s a surprise for you – Code for the above mentioned Trix Momentum Strategy. Try it now!
self.trix = Trix(self.data,period=20)
self.signal = EMA(self.trix, period=12)
if (self.trix > self.signal) and (self.trix[-1] < self.signal[-1]) and (self.position.size==0):
if (self.trix < self.signal) and (self.trix[-1] > self.signal[-1]) and (self.position.size > 0):
if (self.trix < self.signal) and (self.trix[-1] > self.signal[-1]) and (self.position.size==0):
if (self.trix > self.signal) and (self.trix[-1] < self.signal[-1]) and (self.position.size < 0):