重複ギャップに基づく反転取引戦略


作成日: 2023-12-15 15:47:23 最終変更日: 2023-12-15 15:47:23
コピー: 0 クリック数: 586
1
フォロー
1621
フォロワー

重複ギャップに基づく反転取引戦略

概要

この戦略の主な考えは,価格の重複差を活用して市場動向を判断することである.差が負数から正数に逆転すると多し,正数から負数に逆転すると空し,逆転取引戦略に属する.

原則

この戦略は,まず価格の重複差を計算します.[1]),すなわち,今日の閉盘価格を昨日の閉盘価格から減算し,その後,過去30日間の差の合計を計算する. 総和が負から正に逆転すると多値シグナルが生じ,総和が正から負に逆転すると空値シグナルが生じると,典型的な逆転取引戦略に属する.

具体的には,戦略は以下の3つの指標を保持しています.

  1. ff:過去30日間の差額の合計
  2. dd1:FFの15日目加重移動平均
  3. dd2:FFの30日目加重移動平均

ffが負から正に逆転すると,すなわち0より小さいものが0より大きいと,dd1も負から正に逆転すると,多元信号が生成される.

ffが正数から負数へ逆転し,つまり0より大きいが0より小さいと,dd1も正数から負数へ逆転すると空白信号が発生する.

余分な空白をすると,止損線が設定されます.

利点

この戦略の利点は以下の通りです.

  1. 思考が明確で,理解し,実現しやすい.
  2. 価格の反転の特性を利用して,市場の転換点でより良い入場時間を獲得できます.
  3. 偽の突破をフィルターする2つの認証メカニズムを組み合わせて.
  4. 異なる市場環境に対応するカスタマイズ可能なパラメータ

リスク

この戦略にはいくつかのリスクがあります.

  1. 逆転の失敗の確率は高く,区間振動市場の損失は容易である.
  2. パラメータを正しく設定しない場合,取引が頻繁になり,取引コストが増加する可能性があります.
  3. 他の指標と組み合わせて入場をフィルタリングし,トップとダウンを避ける必要があります.

対応方法は以下の通りです.

  1. 合理的なストップ・ロスの割合を設定し,単一損失を制御する.
  2. パラメータを最適化して,最適なパラメータの組み合わせを見つけます.
  3. フィルタリング条件を追加し,不要な入場を防ぐ.

最適化の方向

この戦略は以下の点で最適化できます.

  1. トランジメントのフィルタを増加させる.例えば,突破時にトランジメントを拡大させる.
  2. トレンド指標のフィルターと組み合わせて逆操作を避ける.
  3. パラメータを動的に調整し,市場の状況に応じてパラメータが変化できるようにする.
  4. 価格の動きに伴いストップを最適化する.

要約する

この戦略は,価格差の逆転を計算して市場転換点を判断する,典型的な逆転取引戦略である.戦略の構想は明確で,実行しやすい,実用的な価値がある.しかし,いくつかのリスクも存在し,市場の変化に適応するためにさらに最適化する必要がある.全体的に,この戦略は,量的な取引のための基本的な枠組みを提供し,その基礎で拡張することができる.

ストラテジーソースコード
/*backtest
start: 2023-12-07 00:00:00
end: 2023-12-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="Fst",currency="USD",initial_capital=100000)

//Length0 = input(30, title="fastperiod", minval=1)
Length = input(30, title="SUMM")
Length1 = input(15, title="Signalperiod", minval=1)
Length2= input(30, title="Info", minval=1)
profit=input(95, title="profit", minval=1)
loss=input(95, title="loss", minval=1)
//f=iff(close>open,close-open,iff(close>open[1],close[1]-open[1],0))
f=0.0
dd1=0.0
dd2=0.0
ff=0.0
ff0=0.0
f:=close-close[1]
ff:=sum(f,Length)
//ff0:=sum(f,Length0)
dd1:=wma(ff,Length1)
dd2:=wma(ff,Length2)

bull=ff<0 and dd1<0 and ff[1]<dd1 and ff>dd1 and abs(ff)>20
bear=ff>0 and dd1>0 and ff[1]>dd1 and ff<dd1 and abs(ff)>20
if(bull)
    
    strategy.entry("long", strategy.long)
strategy.exit("exit", "long", profit = close*profit/1000, loss=close*loss/1000) 

strategy.close("long", when = bear)




plotchar(bull,size=size.small,location=location.bottom)
plot(ff,color=black,linewidth=2)
plot(ff0,color=green,linewidth=2)
plot(wma(ff,Length1),color=red,linewidth=2)
plot(wma(ff,Length2),color=blue,linewidth=2)
plot(wma(ff,Length1)-wma(ff,Length2),color=green,style=columns)

plot(0,linewidth=1,color=black)
plot(500,linewidth=1,color=red)
plot(-500,linewidth=1,color=red)