高値と安値のTEMA平均オシレーション戦略


作成日: 2023-11-15 17:49:52 最終変更日: 2023-11-15 17:49:52
コピー: 0 クリック数: 655
1
フォロー
1617
フォロワー

高値と安値のTEMA平均オシレーション戦略

概要

この戦略は,TEMA,VWMACD,HMAの3つの指標を使用して,ビットコインの下落の動きを捉えています.その主な論理は,VWMACDの下の0軸を穿越し,HMA平均線より低い価格と,快線TEMAが慢線TEMAより低い価格で空いていることです.VWMACD上の0軸を穿越し,HMA平均線より高い価格または,快線TEMA上の慢線TEMAを穿越し,平仓です.

原則

まずVWMACDを計算し (普通MACDと異なるのは,移動平均の計算方法だけ) 柱状のグラフを描いてください. そして,トレンドフィルターとしてHMAを追加してください. それから,高速線TEMAを作成して追加してください. (周期5) 遅い線TEMAを追加してください. (周期8) そして,両者の差を計算して0軸の近くで描いてください. これは空白決定の鍵です.

具体的入場ルールは,VWMACDが0軸以下で,価格がHMA平均線より低く,快線TEMAが慢線TEMAより低いときに空きをする.

具体的出場ルールは,VWMACDで0軸を貫通し,HMA平均線や速線TEMAで慢線TEMAを貫通した価格より高い時,平仓する.

優位分析

  • 3つの指標の組み合わせを使用し,取引信号の信頼性を高めます.
  • VWMACDは,より正確な判断を提供する傾向を識別します.
  • HMAfiltは,騒音に惑わされないように,トレンドフィルターとして機能します.
  • TEMAのポートフォリオは,短期的な逆転を捉える
  • 短期的な下落を捉えるために,高周波取引に適した短期的なパラメータを使用

リスク分析

  • 多指標組合せ,パラメータ設定が複雑で,経験により調整が必要
  • HMAフィルターがあるにもかかわらず,揺れ動いている市場の偽突破を防ぐ必要があります.
  • 短期パラメータは,市場騒音に容易に干渉され,誤信号が発生する.
  • 予想以上に大きな損失を防ぐために,ストップ・ローズを厳格に管理する必要があります.
  • 取引コストの管理に注意する.高周波取引は手数料の摩擦による損失に容易である.

最適化の方向

  • 異なる周期のパラメータの組み合わせをテストし,最適なパラメータを見つけることができます.
  • RSI,KDなどの補助判断を添付できます
  • 異なる市場状況に応じて自主的に調整できるパラメータ
  • 価格の動きに伴うストップのようなストップ戦略を最適化できます.
  • 量子エネルギー指標を組み合わせることで,量子エネルギー不足の偽ブレークを回避できます.

要約する

この戦略は,VWMACD,HMA,快速TEMAの組み合わせを採用し,Zielはビットコインの短期下落の動きを捕捉する.その優点は,信号が信頼性があり,高周波取引に適している.しかし,パラメータ調整が複雑で,ノイズによる干渉に容易なリスクもあります.パラメータの組み合わせを継続的に最適化し,補助指標を追加することによって,戦略をより安定して信頼できるようにすることができます.全体的に,この戦略は,複数の指標の確認と短い周期のパラメータの特性を利用し,ビットコインの短期下落の動きを正確に判断することができ,有効な高周波空き策の1つである.

ストラテジーソースコード
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="TEMA_HMA_VWMACD short strategy", shorttitle="Short strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.018, currency='USD')
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(9999,1,1,0,0)
_testPeriod() =>
    iff(time >= startP and time <= end, true, false)
    

slow = input(13, "Short period")
fast = input(21, "Long period")
signal = input(5, "Smoothing period")

Fast = ema( volume * close, fast ) / ema( volume, fast ) 
Slow = ema( volume * close, slow ) / ema( volume, slow ) 
Macd = Slow - Fast 
Signal = ema(Macd, signal) 
Hist=Macd-Signal
plot(Hist, color=color.silver, linewidth=1, style=plot.style_histogram)
plot(0, color=color.red)

length = input(400, minval=1, title = "HMA")
hullma = wma(2*wma(close, length/2)-wma(close, length), floor(sqrt(length)))

tema_length_1 = input(5, "Fast moving TEMA")
tema_length_2 = input(8, "Slow moving TEMA")


tema(sec, length)=>
    tema1= ema(sec, length)
    tema2= ema(tema1, length)
    tema3= ema(tema2, length)
    tema = 3*tema1-3*tema2+tema3

tema1 = tema(hlc3, tema_length_1)
tema2 = tema(hlc3, tema_length_2)

threshold  = 0
tm = tema1 - tema2
plot_fast = plot(tm, color = tm > 0 ? color.green : color.red)
plot(threshold, color=color.purple)

up =  crossover(tm, 0) 
down = crossunder(tm, 0)

longCondition =  (Hist < 0) and hullma > close and (tema1 < tema2)  and _testPeriod() 
strategy.entry('BUY', strategy.short, when=longCondition)  
 
shortCondition =  (Hist > 0) or hullma < close or up
strategy.close('BUY', when=shortCondition)


// Take profit  
tp = input(1, type=input.float, title='Take Profit (%)')  
sl = input(4, type=input.float, title='Stop Loss (%)')  
strategy.exit('XLong', from_entry='BUY', profit=(close * (tp/100) * (1/syminfo.mintick)), loss=(close * (sl/100) * (1/syminfo.mintick)))