Introduction to the StrategyQuant templating system – Part II

In the previous article (link) I explained how StrategyQuant templating system works and how you can define strategy logic using template. In this article I will continue with practical example directly in StrategyQuant.

Loading templates into StrategyQuant

How to generate strategies using a template? You can choose which template will be used in Builder/Full Settings/What to build tab. The third option is “Strategy from template”. Let’s choose example template SQ4StrategyTemplateExample.sq4 from folder C:\StrategyQuant X\user\settings\StrategyTemplates


Using templates for generating strategies in StrategyQuant

 

Modifying templates logic

Now let’s move into AlgoWizard module and load above mentioned template SQ4StrategyTemplateExample.sq4 from folder C:\StrategyQuant X\user\settings\StrategyTemplates

 
Loading template into AlgoWizard for further editing

 

On the image below, you can see template loaded in StrategyQuant. It consists of several tabs.

  • Trading signals
  • Long entry
  • Short entry
  • Long exit
  • Short exit

 

The number of tabs is optional. You can define one or even ten tabs depending on the complexity of the strategy and your preferences. Red markers indicate parts in the template where building blocks or values will be used.


The template can consist of multiple tabs

 

Conditions part:


The section marked with orange frame defines conditions part.

 

Now let’s focus on the “Long entry” tab and describe its parts. The first section marked with the orange frame is “If conditions”. Here you define which conditions must be met to perform the action. On the image above, you  can see that conditions defined on the “Trading signals” tab are being used. However, you can add as many conditions you want, according to your preferences (will be discussed later in an example).

 

Action part:


The section marked with the orange frame define actions part.

This part of the template defines  what will happen if all conditions are met. You can find it on the image above marked with the orange frame. For now, let me skip the details. You just need to know that this will simply open a trade.

Adding extra filter


Adding new condition

Finally, let me show you how to add your  first condition to the example template. Click on the  “Add another condition” button.

 
Select comparison “Is greater”


Now click on the #Left# and choose Close[1], then click on #Right” and  select MovingAverage(200)


The new condition has been added

 

 
You can save the template as a new file

 
Saving template

 
Selecting the template for generating strategies

Now you can start generating strategies using your modified template.

Conclusion

As you can see, using  templating system opens almost unlimited possibilities for generating strategies. Many of you have been asking me how to preset StrategyQuant for creating strategies for Gaps , Pullbacks,.. etc. Now you can do it easily by yourself.

Thank you for your attention and I wish you a lot of success with the realization of your trading ideas.

Subscribe
Notify of
11 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Pieter Kotzee
Pieter Kotzee
27. 2. 2020 4:25 am

Great article.
Is it possible to reference a second data source in the templates above? I am looking into intermarket analysis and an example would be the ES and the NQ. If the ES is leading (and NQ therefore lagging) and the NQ diverge, trade the NQ with the assumption the divergence is temporary and it will follow the ES again eventually.

Mark Fric
Mark Fric
Reply to  Pieter Kotzee
27. 2. 2020 8:40 am

you can use multiple charts (symbols or TFs) for your randomly generated blocks, but right now it is not possible to choose that random block 1 will use chart 1 and random block 2 will use chart 2.

But we are working on it, templates functionality will be greatly enhanced in the new build 127.

Emmanuel
27. 11. 2021 11:18 pm

This is very helpful, would it be possible to have more examples :

For example, closing 50% position at target price and breakeven stop
Then closing on random condition the other 50%

Another template, would be to take a second position on the first stop and close
Both position on profit or second stop loss.

Another, possibility, would be to take an hedge position instead of a stop loss

Another template would be multiplier position,
a sideway strategy template would be a good test as well

tomas262
Admin
Reply to  Emmanuel
29. 11. 2021 8:39 pm

Partial closing is not possible now. Better open 2 orders with 50% size and set different targets for each

Emmanuel
Reply to  tomas262
30. 11. 2021 1:33 pm

Thank you tomas for your answer, I will use 2 orders 🙂

Emmanuel
27. 11. 2021 11:37 pm

where is this strategytemplate folder ? i didn’t find these example

It would be helpful to have example of ‘action’, ‘if then’, tab as well.
How do you declare variable ?
Can they work in a template in SQX ?
Thank you for this instructive article ?

PaperoneJ12
Reply to  Emmanuel
15. 1. 2022 8:28 am

The folder is reported in the article 😉 Anyway, it is C:\StrategyQuant X\user\settings\StrategyTemplates
You can create a new variable in the “other properties” menu on the top right of the streen 😉

Last edited 2 years ago by PaperoneJ12
PaperoneJ12
15. 1. 2022 8:30 am

I dont’ understand file extensions. Templates are .sq4 files, but strategies are saved as .sqx files. Which is the difference between .sq4 and .sqx file?
Another question: is it possible to create a strategy template in java? I mean, create a .sqx file from scratch.

Last edited 2 years ago by PaperoneJ12
Andrea Angiolini
Andrea Angiolini
Reply to  PaperoneJ12
21. 8. 2023 2:01 pm

Are there any news regarding these questions?

tomas262
Admin
Reply to  Andrea Angiolini
23. 8. 2023 7:17 pm

Now only SQX files are of valid extension for strategy files

Andrea Angiolini
Andrea Angiolini
Reply to  tomas262
29. 8. 2023 7:13 am

Thank you tomas262. Is it possible to create a strategy / strategy template in java? I mean, create a .sqx file from scratch without AlgoWizard?

Continue reading