Abstract

The Dual Thrust trading algorithm is a famous strategy developed by Michael Chalek. It has been commonly used in futures, forex and equity markets. The idea of Dual Thrust is similar to a typical breakout system, however dual thrust uses the historical price to construct update the look back period — theoretically making it more stable in any given period.

In this tutorial we give an instruction details to the strategy and show how to implement this algorithm on FMZ. After pulling in the historical price of the chosen trading pairs, the range is calculated based on the close, high and low over the most recent N-days. A position is opened when the market moves a certain range from the opening price. We tested the strategy on individual trading pairs under two market states a trending market and range bound market. The results suggest this momentum trading system works better in trending market but will trigger some fake buy and sell signals in much more volatile market. Under the range bound market, we can adjust the parameters to get better return. As a comparison of individual trading pairs, we also implemented the strategy on BTC/USDT. The result suggested that the strategy beat the market.

Its logical prototype is one of the more common Day trading strategies. The opening range breakout strategy is based on today’s opening price plus or minus a certain percentage of yesterday’s amplitude to determine the upper and lower rails. When the price breaks through the upper track, it will buy long, and when it breaks the lower track, it will sell short.

The basic principle of this strategy

1. after the market closed today, calculate two values: the highest price — the closing price, and the closing price — the lowest price. Then take the one which is larger in these two values, multiply this value by 0.7. let’s call it value K. The result is called the trigger value.

2. after the market opening tomorrow, record the opening price, then buy immediately when the price exceeds (opening price + trigger value), or sell short when the price is lower than (opening price — trigger value).

3. This strategy has no clear stop loss. This system is a reverse system, that is, if there is a short position order holding at the price exceed the (open + trigger value), then it will send two buying order (one to close the wrong position, another one to open the new position for the right direction). For the same reason, if there is a long position order holding at the price lower the (opening-trigger value), then it will send two selling order.

Which by mathematical expiation is :

range=max(HH−LC,HC−LL)

The long signal is calculated by

cap=open+K1×Rangecap=open+K1×Range

. The short signal is calculated by

floor=open–K2×Rangefloor=open–K2×Range

where K1 and K2 are the parameters. When K1 is greater than K2, it is much easier to trigger the long signal and vice versa. For demonstration, here we choose K1 = K2 = 0.5. In live trading, we can still use historical data to optimize those parameters or adjust the parameters according to the market trend. K1 should be small than k2 if you are bullish on the market and k1 should be much bigger if you are bearish on the market.

This system is a reversal system, so if the investor holds a short position when the price breaks the cap line, the short margin should be liquidated first before opening a long position. If the investor holds a long position when the price breaks the floor line, the long margin should be liquidated first before opening a new short position.

Dual Thrust has made improvements in this opening range breakthrough strategy:

1. In the range setting, the four price points of the previous N days are introduced, so that the range in a certain period is relatively stable, and can be applied to the daytime trend tracking;

2, Dual Thrust for the buying long and selling short trigger conditions, consider the asymmetric amplitude, long and short reference Range can choose a different number of cycles, can also be determined by parameters K1 and K2. When K1<K2, the long position is relatively easy to be triggered, and when K1>K2, the short position is relatively easy to be triggered.

Therefore, when using this strategy, on the one hand, you can refer to the optimal parameters of historical data testing. On the other hand, you can start to adjust K1 and K2 in stages according to your own judgment of the post-trend or from other major cycle technical indicators.

This is a typical trading way of waiting for signals, entering the market, arbitrage, and leaving the market, but the effect is outstanding.