哈嘍,大家好,我是木頭左!
Dual Thrust策略起源于20世紀80年代,由美國著名交易員和金融作家Larry Williams首次提出。這一策略的核心思想是通過捕捉市場中的短期波動來實現盈利。Larry Williams通過多年的研究和實踐,發現市場中存在一種周期性的波動模式,通過這種模式可以預測價格的短期走勢。
策略原理
Dual Thrust策略的核心思想是利用市場的波動性來捕捉趨勢。Dual Thrust策略主要依賴于兩個關鍵參數:Range和ATR(平均真實波動范圍)。Range是指當前收盤價與前一個交易日的最高價和最低價之間的最大距離,而ATR則是過去一段時間內Range的平均值。通過這兩個參數,投資者可以確定買入和賣出的觸發點,從而實現盈利。該策略通過計算上軌和下軌兩個閾值,來判斷市場的多空方向。當價格突破上軌時,策略認為市場處于多頭趨勢,進行做多操作;當價格跌破下軌時,策略認為市場處于空頭趨勢,進行做空操作。上軌和下軌的計算公式如下:
上軌:開盤價 + K1 * 波動
下軌:開盤價 - K2 * 波動
其中,波動是指在給定的時間窗口內,最高價與最低價之間的最大差值。K1和K2是兩個參數,用于調整上下軌的敏感度。
在聚寬平臺運行Python代碼
選股方式
在Dual Thrust策略中,選股方式相對簡單。選擇一個特定的合約作為交易標的,例如螺紋鋼(SHFE.RB)。在策略初始化時,訂閱該合約,并設置相關參數。
def init(context):context.symbol = 'SHFE.RB'context.N = 5context.k1 = 0.2context.k2 = 0.2schedule(schedule_func=algo, date_rule='1d', time_rule='21:00:00')schedule(schedule_func=algo, date_rule='1d', time_rule='09:30:00')
擇時
擇時是Dual Thrust策略的關鍵環節。通過計算歷史數據中的最高價、最低價、收盤價等信息,來確定上下軌的位置。在每個交易時段開始時,計算當前的上下軌,并根據這些閾值來決定交易方向。
def algo(context):# ...(省略部分代碼)data = history_n(symbol=context.main_contract, frequency='1d', end_time=context.now,fields='symbol,open,high,low,close', count=context.N + 1, df=True)current_open = data.open.iloc[-1]data.drop(context.N, inplace=True)HH = data['high'].max()HC = data['close'].max()LC = data['close'].min()LL = data['low'].min()range = max(HH - LC, HC - LL)context.buy_line = current_open + range * context.k1context.sell_line = current_open - range * context.k2
策略交易
在每個交易時段,根據當前價格與上下軌的關系,來執行交易操作。如果價格突破上軌,進行做多操作;如果價格跌破下軌,進行做空操作。同時,還需要處理平倉和開倉的邏輯。
def on_bar(context, bars):bar = bars[0]positions = get_position()position_long = list(filter(lambda x: x['symbol'] == context.main_contract and x['side'] == PositionSide_Long, positions))if bar.close > context.buy_line:# 情況1:已經持有多倉,直接返回if position_long: return# 情況2:沒有持倉時,直接開多倉 else: order_volume(symbol=context.main_contract, volume=1, side=OrderSide_Buy, order_type=OrderType_Limit, position_effect=PositionEffect_Open, price=bar.close)elif bar.close < context.sell_line:order_volume(symbol=context.main_contract, volume=1, side=OrderSide_Sell, order_type=OrderType_Limit, position_effect=PositionEffect_Close, price=bar.close)
策略的優勢與風險
簡化版的Dual Thrust策略在股票市場中具有以下優勢:
- 簡單易懂:策略邏輯簡單,易于理解和實施。
- 趨勢跟蹤:能夠捕捉市場的主要趨勢,提高收益。
- 適應性強:適用于多種股票、期貨市場環境。
市場有風險,交易需謹慎。
感興趣的朋友,可以共同交流!
我是木頭左,感謝各位童鞋的點贊、收藏,我們下期更精彩!