
枢軸動量戦略は,枢軸と動量指標を組み合わせた取引方法である.この戦略は,前回の取引周期の最高価格,最低価格,閉店価格を中心に枢軸を計算し,ROC (変化率) とランダムなRSIなどの動量指標を使用して市場動向を判断する.価格が枢軸を突破して動量指標が確認されたときに,戦略は開きます.逆に,価格が枢軸を突破して動量指標が確認されたときに,戦略は平仓します.この戦略は,市場動向を捉え,同時にリスクを制御することを目的としています.
この戦略の核心は,枢軸と動力の指標の組み合わせである.枢軸は,前回の取引周期の最高価格,最低価格,閉店価格から計算され,市場の重要なサポートとレジスタンス値を代表する.価格が枢軸を突破すると,市場の傾向が変化する可能性が示唆される.
同時に,この戦略は,ROCとランダムなRSIの2つの動向指標を使用して,トレンドを確認する.ROCは価格の変化の速度を測定し,ROCが0より大きいときは,価格が上昇傾向にあることを示し,ROCが0より小さい場合は,価格が下降傾向にあることを示します.ランダムなRSIは,RSIを比較して,特定の周期内の位置から,市場が過買状態か過売状態かを判断します.
価格が枢軸を突破し,ROCとランダムなRSIが同時にトレンドを確認すると,戦略はポジションを開きます.価格が枢軸を突破し,ROCとランダムなRSIが同時にトレンドを確認すると,戦略は平仓します.この複数の条件の組み合わせは,偽の信号を効果的にフィルターし,戦略の勝利率を向上させます.
トレンド追跡: 枢軸と動力の指標を組み合わせることで,この戦略は市場トレンドを効果的に捉え,トレンドの形成の初期に介入し,利益を最大化することができます.
リスク管理:この戦略は,取引信号をフィルターするために複数の条件を採用し,偽の信号の出現を減らすため,取引リスクを軽減します.同時に,ストップ・ロスの設定によって,戦略は,単一の取引の最大損失を効果的に制御できます.
適応性:この戦略は,複数のタイムサイクルと異なる市場に適用され,パラメータを調整することで,異なる市場特性と取引スタイルに適応することができます.
パラメータ最適化:この戦略は,枢軸の計算方法,運動指標の周期など,複数のパラメータを含みます.異なるパラメータ設定は,戦略のパフォーマンスの大きな違いを引き起こす可能性があります.したがって,最適のパラメータ組み合わせを見つけるために,パラメータを最適化してテストする必要があります.
市場リスク:この戦略は,傾向が明らかな市場に主に適用され,震動的な市場では不良なパフォーマンスを示す可能性があります.また,市場が激しく波動または異常な事件が発生した場合,戦略は大きな引き下がりが起こる可能性があります.
過適合リスク:パラメータ最適化過程で過去データに過適合すると,戦略は実際の取引で不良なパフォーマンスを発揮する可能性がある.したがって,サンプル外テストと実際の取引で戦略の有効性を検証する必要がある.
動的調整パラメータ:市場の状況に応じて動的に戦略パラメータを調整することができる.例えば,波動的な市場で動力の指標の周期を減らし,市場のリズムの変化に適応させる.
他のフィルター条件を追加する:信号の信頼性をさらに高めるために,取引量,市場情緒などの他の技術指標または基本的要因をフィルター条件として追加することを検討することができます.
リスク管理の最適化:ポジション管理とストップ・ストップ・ルールを最適化することで,戦略のリスク・利益特性を改善することができる.例えば,ATR (=平均リアル波幅) を採用してダイナミック・ストップ・ストップを設定する.
枢軸動量戦略は,枢軸と動量指標を組み合わせて,トレンド追跡を中心に,リスク管理に重点を置く.この戦略は,複数の市場と時間周期に適用され,パラメータを最適化して他のフィルタリング条件を追加することによって,戦略の安定性と収益性をさらに向上させることができます.実際のアプリケーションでは,市場リスクと過度適合リスクに注意し,継続的な最適化と監視によって戦略の有効性を保証する必要があります.
/*backtest
start: 2023-04-24 00:00:00
end: 2024-04-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Pivot and Momentum", overlay=true)
//systemedic
// Pivot Hesaplama
highPrev = request.security(syminfo.tickerid, "60", high[1])
lowPrev = request.security(syminfo.tickerid, "60", low[1])
closePrev = request.security(syminfo.tickerid, "60", close[1])
pivotPoint = (highPrev + lowPrev + closePrev) / 3
R1 = 2 * pivotPoint - lowPrev
S1 = 2 * pivotPoint - highPrev
// Stochastic RSI
smoothK = input(3, "Stochastic RSI Smooth K")
smoothD = input(3, "Stochastic RSI Smooth D")
lengthRSI = input(14, "RSI Length")
lengthStoch = input(14, "Stochastic Length")
rsi = ta.rsi(close, lengthRSI)
k = ta.sma(ta.stoch(rsi, rsi, rsi, lengthStoch), smoothK)
d = ta.sma(k, smoothD)
// ROC
rocLength = input(9, "ROC Length")
roc = ta.roc(close, rocLength)
// Alım ve Satım Koşulları
longCondition = close > pivotPoint and ta.crossover(k, d) and roc > 0
shortCondition = close < pivotPoint and ta.crossunder(k, d) and roc < 0
// Pozisyon Kontrolü ve İşlem
if (longCondition)
strategy.close("short") // Mevcut short pozisyonunu kapat
strategy.entry("long", strategy.long, comment="Long Pozisyonu")
if (shortCondition)
strategy.close("long") // Mevcut long pozisyonunu kapat
strategy.entry("short", strategy.short, comment="Short Pozisyonu")
// Pivot ve Seviyeleri Çiz
plot(pivotPoint, "Pivot", color=color.red)
plot(R1, "R1", color=color.green)
plot(S1, "S1", color=color.blue)