While creating a strategy, click on the 「Detect Error」 button in the upper right corner of the canvas, and the system will check the strategy in real time for missing parameters, inapplicable Conditions and Operations, and other problems.
Click on the text in the 「Detection Results」, and the system will locate the abnormal Conditions or Operations so that you can you fix them.
Backtest can help test the effectiveness of a strategy. Before conducting live trading, it is recommended that you perform multiple backtests on the strategy to see if it has been configured properly and if it will be executed as you expect.
In addition, Futu supports trading of a variety of products in multiple markets, including the Hong Kong stock, US stock, A-share, and futures markets. However, the specific types of products you can trade vary slightly with each market. For example, the A-share market does not support market orders, while stop loss market orders and market if touched orders are not available in the futures market. You will discover it via backtest.
Running logs are available for both backtest and live trading. Running logs contain details of Operations execution, order status and transaction status after an order is placed, reports of various exceptions, etc.
Each log consists of 3 parts:
● Time: Beijing time
● Properties: 3 categories
○ Info: information and records during normal running. E.g.: operations execution results, order status changes, transaction status changes, quotes access changes, etc.
○ Warning: exception alerts that will not interrupt the running of the entire strategy. E.g.: order failed, order invalid, etc.
○ Error: exception reports that will interrupt the running of the strategy. E.g.: global variable assignment exception leading to strategy initialization failure, quotes subscription exception leading to strategy initialization failure, insufficient validity period after trade is unlocked, etc.
○ Title: If the log content is related to a Condition or Operation, the format of the title will be 「Condition/Operation Name-Condition/Operation Type」 so as to indicate the corresponding Condition or Operation in the canvas
○ Body: details
1）Check the running logs of a strategy for errors or warnings. If there are any errors or warnings, adjust the strategy according to the instructions in the logs to prevent these errors from happening again.
2）If you want to check whether a Condition judged correctly, you can use 「Value Assignment」 to print the values of its variables (see 3.2.1 for details). Or you can use 「Alert Settings」 to print customized information (see 3.2.2 for details).
3.2.1 How to use 「Value Assignment」
You can now print logs of execution results of Operations, but you may wonder how to identify problems of Conditions. In fact, we only need to print the values of Conditions’ variables.
E.g.: When comparing the sizes of two MAs, we usually configure a Condition as below.
However, when MA(5) was found to be less than MA(10) in the backtest, the system did not continue to run the strategy. In this case, we can create two new global variables, and assign MA(5) and MA(10) to the two global variables by using 「Value Assignment」, so that we can view the exact values of MA(5) and MA(10) in the logs during the running of the strategy.
3.2.2 How to use 「Alert Settings」
You can print customized alerts in the logs by adding 「Alert Settings」 as needed.
E.g.: For a double moving average strategy, you may want to know which condition was not met, thus leading to the failed execution of the order. In this case, we can put a 「Alert Settings」 after each Condition and get the answer from the logs.
If you still have problems after trying all the above methods, please join our official QQ group for Quant communication (Group No.: 972441253), and contact our project team for assistance.