相互に重複する価格差値に基づく逆取引戦略

作者: リン・ハーンチャオチャン開催日:2023年12月15日 15:47:23
タグ:

img

概要

この戦略の主なアイデアは,重なる価格差を活用して市場の動向を判断することです.差がマイナスから正に逆転すると長くなって,差がマイナスから正に逆転すると短くなってしまいます.これは逆の取引戦略に属します.

原則

ストラテジーは,まず,重なり合う価格差 (Close-Close[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. 偽の脱出は 双重確認メカニズムで フィルタリングできます
  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)


もっと