デュアルインジケーターフィルター取引戦略


作成日: 2024-02-02 11:28:58 最終変更日: 2024-02-02 11:28:58
コピー: 0 クリック数: 652
1
フォロー
1617
フォロワー

デュアルインジケーターフィルター取引戦略

概要

この戦略は,ランダムな指標K値と指数移動平均を用いて組み合わせフィルタリングを行う長線取引戦略である.この戦略は,ランダムな指標K値が超売り領域に入るときに購入条件を判断し,価格が移動平均を下回り,ランダムな指標フィルタリング条件が成立したときには,ストップ・ロスまたはストップ・プリーズとして判断する.

戦略原則

双指数波取引戦略は,主にランダム指数K値が買入時を判定し,指数移動平均が止損時を判定する技術的指標特性を使用する.ランダム指数K値は,超売り超買を識別するために使用できるが,移動平均は価格トレンドを判定するためのツールである.両者を組み合わせて,超売り点で買入し,移動平均を使用して止損時を判定する.

この戦略は,まず,21周期の長さのランダムな指標K値とD値,および38周期の長さの指数移動平均を計算する.K値がD値を突破して超売り領域に入るときに買入シグナルを生成する.価格が移動平均を下回り,ランダムな指標K値が65以上の過抜値になると,トレンドの逆転を判断し,平仓シグナルを生成する.同時に13%のストップ・ロスの条件を設定する.

双指数と双フィルターで取引することで,偽の信号を効果的にフィルターし,超売り区で購入した後に長線トレンドを追跡して利益を得る.この戦略は中長線ポジションに適している.

優位分析

この戦略には以下の利点があります.

  1. ランダムな指数Determine買点:ランダムな指数K値がD値を越えて超売り区域に入ると,株価の逆転信号として考えられ,比較的に良い買い時である.

  2. 双フィルター設計:戦略は,K値/D値の金叉と価格の低位フィルターを同時に使用して,購入のタイミングを決定し,偽信号を効果的にフィルターします.

  3. 指数移動平均はストップを追跡する:指標は遅滞性があり,ストップを活用してトレンドを追跡して最大限の利益を得ることができる.

  4. ランダム指数再フィルター反調: ストップ・オフ・プレミアム判断の際には,再利用したランダム指数フィルターで,通常の反調とトレンドの反転をフィルターして,戦略をより安定させる.

  5. 中長線に適したポジション:双指数組合せ設計により,中長線に適したポジションに適した戦略により,よりよい収益を得ることができる.

リスク分析

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

  1. 系統的リスク:この戦略は大都市環境に敏感で,熊市では損をする可能性が高い.

  2. 逆調リスク:短期的な逆調が起こり,移動平均の破損を誘発し,早退する可能性がある.

  3. パラメータ最適化リスク:指標パラメータは,繰り返しテストして最適化する必要がある.不適切な設定は,戦略のパフォーマンスを影響する可能性がある.

  4. 突発事件の危険性: 突発的な重大ニュースの前に,技術指標は効かないので,このようなタイミングを避けるように注意する必要があります.

最適化の方向

この戦略を最適化できる可能性のある方向は以下の通りです.

  1. オプティマイズ指標パラメータ:異なるパラメータの組み合わせを繰り返しテストし,最適なパラメータを探します.

  2. 止損を増やす方法:変動率止損,止損追跡などの方法が導入できる.

  3. 他の指標と組み合わせて: 量能指標,ブリン帯などの判断ポイントを導入することができる.

  4. 移動平均期数を最適化:より長期またはより短期平均線の効果をテストする.

  5. 大都市環境の分析:大市場情勢の動態に応じて戦略パラメータの調整.

要約する

双指数波取引戦略は,全体として,より完全なトレンド追跡戦略である. それは,ランダムな指標を使用して買点を決定し,移動平均を使用してトレンドストップを追跡し,偽信号を効果的にフィルターできる二重フィルターを設計した. 戦略パラメータの最適化スペースが広く,中長期線保持に適した,有効な株式取引戦略である.

ストラテジーソースコード
/*backtest
start: 2024-01-25 00:00:00
end: 2024-02-01 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// English version
strategy(title='Stochastic & MA',  overlay=false)
// INPUTS : all default value have already been optimized
length = input.int(21, 'period', minval=1)
lossp = input.int(13, 'stop loss %', minval=2, step=1)
leverage = input.int(1, 'leverage', minval=1, step=1)
// leverage has been introduced for modifying stop loss levels for financial instruments with leverage, like ETF 
n = input(2, 'n days ago')
filtro = input.int(65, 'k filter for throwbacks', minval=20, step=1)
OverSold = input.int(25, 'Oversold value', minval=5, step=5)
// Building indicators
smoothK = input.int(6, 'k', minval=1)
smoothD = input.int(4, 'd', minval=1)
k = ta.sma(ta.stoch(close, high, low, length), smoothK)
d = ta.sma(k, smoothD)
//Empowerment: introducing EMA
sma_period = input.int(38, 'periodo Sma', minval=1)
emaf = ta.ema(close, sma_period)
//ENTRY condition and order
// First of all, it's better not trade shares with a quaterly loss or with a bad surprise towards to analysts' expectations or ipevaluated (P/E > 50), but on your choice
// You entry when Stochastic's K is higher than D in Oversold area (you may personalize), applying the condition that today's close should be higher than one of n-days ago (default of the day before yesterday or 2 candles ago)
entry1 = k > d and k <= OverSold and close >= close[n]
strategy.entry('Long', strategy.long, comment='k basso', when=entry1)
//EXIT CONDITIONS
//  1) close crosses under exponential movinig average with filter that k >= fixed level (65), in order to distinguish a violent movement of prices with a possibile beginning of a trend from an almost exhausted "ordinary" throwback
// 2) fixed stop loss on percentage
exit1 = ta.crossunder(close, emaf) and k >= filtro
losspel = strategy.position_avg_price * (1 - lossp / 100 * leverage)
exit2 = close < losspel
strategy.close('Long', when=exit1, comment='sma')
strategy.close('Long', when=exit2, comment='stop loss')
// plotting indicators (add Ema on your choice)
plot(k, color=color.new(color.blue, 0), linewidth=1, title='k Stoch')
plot(d, color=color.new(color.red, 0), linewidth=1, title='d stoch signal')
plot(OverSold, title='Oversold', color=color.new(color.aqua, 0))
plot(filtro, color=color.new(color.gray, 0), title='k-filter for ema')