ストーキャスティック・オシレーターK値と指数関数移動平均値をダブルフィルターで組み合わせた長期的取引戦略である.ストーキャスティック・KがDを越えて過売れ領域に入るときの購入機会を特定する.ストーキャスティック・Kが移動平均値を下回り,ストーキャスティック・Kが限界値を超えると販売信号を生成し,トレンド逆転からの通常の反転をフィルタリングする.ストップ・ロスのルールも実装されている.
この戦略の主な考え方は,エントリーシグナルをタイミングにするためにストキャスティックKを使用し,利益を記録するために指数移動平均を使用することです.ストキャスティックオシレーターは過買い/過売り状況を検出するのに優れています.移動平均はトレンドを定義します.両方を組み合わせることで,過売りレベルでエントリが行われ,移動平均を使用してトレンドに沿って利益が追われます.
この戦略では,21期ストキャスティックKとD値,および38期EMAを計算する.KがD以上を超売りゾーン (デフォルト25) に突破すると,買い信号が生成される.価格がEMAを下回り,ストキャスティックKがフィルターしきい値 (65) を上回ると,トレンド逆転が想定され,ポジションが閉鎖される.13%ストップロスのルールも実装される.
この戦略は,二重指標と二重フィルターにより,偽信号を効果的にフィルタリングする.過売値に買い込み,上昇傾向を追跡することで,良い利益を得ることができます.中長期保有に適しています.
この戦略の主な利点は以下の通りです.
ストキャスティックKは 過剰販売地域への 入り口を決定します
K/Dのダブルフィルターと価格の極限は 誤った信号を効果的に回避します
EMAで利益を引き継ぐことは 上向きの勢いを充分利用します
ストカスティックは 利益の記録時に 逆転から通常の反転をフィルターします
中期から長期にわたる投資に適しています.
考慮すべきいくつかのリスク:
システムリスク - 熊市は大きな損失を引き起こす可能性があります
ローバックリスク - 価格の一時的な引き下げは,MAストップロスを早急に引き起こす可能性があります.
パラメータ最適化リスク - パラメータの適切な調整が性能に影響を与える.
ブラック・スワンリスク - 技術指標は市場のショックに逆らわない
戦略を最適化する方法:
厳格なバックテストによって指標パラメータを最適化します
ストップ・ロスの他の方法も追加します 例えば 変動やストップ・ロスの後続です
ボランス,ボリンジャー帯などなどの他の指標を含みます.
短い/長い移動平均期間のテスト
市場制度に基づいてパラメータを動的に調整する.
これは,全体的に堅調なトレンドフォロー戦略である.エントリー,移動平均からトレイル出口を決定するためにストキャスティックを使用し,偽信号を避けるためにダブルフィルターを実装する.十分なパラメータ調節柔軟性,中長期保有,トレンドを捉える有効性により,これは効率的な株式取引戦略である.
/*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')