ガンオシレーターに基づく定量的取引戦略


作成日: 2023-09-15 11:37:37 最終変更日: 2023-09-15 11:37:37
コピー: 0 クリック数: 903
1
フォロー
1617
フォロワー

この記事では,甘氏振動指標を用いて量化取引を行う戦略について詳しく説明する.この戦略は,多空極点を計算して市場の多空傾向を判断し,取引信号を生成する.

戦略の原則

この戦略の核心指標は甘氏振動指標であり,計算の主要ステップは以下の通りである.

  1. 周期的な最高値と最低値の計算

  2. 過去の2つのK線の最高値と最新のK線の大きさの関係を比較して,多頭極点を判断する.

  3. 過去の2つのK線の最低値と最新のK線の大きさの関係を比較して,空頭極点を判断する.

  4. 極限点関係による甘氏振動指数値の計算

  5. 指数値から多空のトレンドを判断し,取引シグナルを生成する.

価格の多空極点を判断することで,市場の逆転点とトレンド方向を効果的に識別することができる.

2 戦略的優位性

この戦略の最大の利点は,指標の計算が簡単で,価格の極値の比較を直接利用してトレンドの方向を判断することです.

もう1つの優点は,パラメータの設定が簡単で,周期パラメータ1つしか必要ないことです.

最後に,取引信号は明確で,多か空か,重複操作を避ける.

3 潜在的リスク

しかし,この戦略にはいくつかの潜在的な問題があります.

まず,指標は突破信号の判断に遅れ,最適なエントリーポイントを逃す可能性がある.

2つ目は,ストップ・ロスト・ストップが設定されず,単一取引のリスクをコントロールできないことです.

最後に,シグナルにはしばしば,損失をコントロールするために合理的な資金管理が必要である.

内容と要約

この記事では,甘氏振動指数に基づく量化取引戦略について詳しく説明する.価格の極限点を判断することによって市場トレンドと逆転のタイミングを識別する.しかし,停止停止や信号の遅延を防ぐように,改善すべきいくつかの問題もあります.全体的に,価格の比較を活用してトレンドを判断するユニークな戦略の考え方を提供する.

ストラテジーソースコード
/*backtest
start: 2023-08-15 00:00:00
end: 2023-08-26 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/06/2017
// The Gann Swing Oscillator has been adapted from Robert Krausz's book, 
// "A W.D. Gann Treasure Discovered". The Gann Swing Oscillator helps 
// define market swings. 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Gann Trend Oscillator")
Length = input(3, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=hline.style_dashed)
xHH = highest(close, Length)
xLL = lowest(close, Length)
xGSO = iff(xHH[2] > xHH[1] and xHH[0] > xHH[1], -1,
         iff(xLL[2] < xLL[1] and xLL[0] < xLL[1], 1, nz(xGSO[1],0)))
pos = iff(xGSO > 0, 1,
	     iff(xGSO < 0, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )        
plot(xGSO, color=blue, title="GTO")