変化率最適化戦略

作者: リン・ハーンチャオチャン, 日付: 2024-02-20 13:54:49
タグ:

img

概要

この戦略は,元の変化率 (ROC) 戦略を最適化する.この戦略は,元のROC戦略と比較して,以下の最適化があります:

  1. 動的比較のための過去最大ROC値と現在のROC値を入力して相対モメント値を取得します.
  2. 相対運動量値を滑らかにして信号を生成します
  3. 購入・販売信号の限界値を追加する.

これらの最適化対策を通じて,多くの無効な信号をフィルタリングして戦略をより安定し信頼性のあるものにすることができます.

戦略原則

この戦略のコア指標は変化率 (ROC) である.ROCは,特定の期間における株式価格の変化率を測定する.この戦略は,まず9年間のROC値を計算し,その後,過去200期のこのROC指標の最大値を記録し,モメントの相対的な強さを得るため,現在のROCを最大歴史的ROCのパーセントとして計算する.例えば,過去200日の最高ROCが100に達した場合,今日のROCが80である場合,相対強度は80%である.

相対強度は10期SMAによってスムーズに調整され,短期変動をフィルタリングし,スムーズな曲線が得られる.スムーズな曲線が3日間連続して上昇し,値が -80%以下になると,株価下落が減速し始めると考えられ,底部サインが現れ,ロングになる.スムーズな曲線が3日間連続して低下し,値が80%以上になると,株価上昇が減速し始め,上位サインが現れ,接近すると考えられる.

利点分析

この戦略は,元のROC戦略と比較して,以下の主な利点があります.

  1. 過去の最大ROC値の比較を導入することで,動力指標の相対レベルを効果的に測定し,絶対値が十分でない無効信号をフィルタリングすることができます.
  2. スムーズな処理はノイズをフィルタリングし 信号をより安定して信頼性のあるものにします
  3. 購入・販売の限界を設定することで,無効な取引が減少します.

一般的には,この戦略はROC指標を効果的に処理し,ライブ取引に適している.

リスク分析

この戦略の主なリスクは,

  1. ROC指標は市場の動向を特定できず,誤りがある.この戦略は,高値から低値への移行期間に遭遇すると失敗する可能性があります.
  2. 買取・売却の値は完璧ではありません. 値が高くすぎたり低くすぎたりすると戦略の業績に影響します.
  3. 誤ったSMAパラメータ設定も戦略結果に影響を与える.

上記のリスクを軽減するために,主要な傾向を決定するために傾向指標を組み合わせることを検討し,値パラメータを調整し,最適なパラメータをテストし,SMAサイクルパラメータを最適化します.

オプティマイゼーションの方向性

戦略は以下の方法で最適化できます.

  1. トレンドインジケーターを組み合わせて 市場の全体的な方向性を決定し,牛と熊の変換中に失敗を回避します.
  2. ROC 長度パラメータと購入・販売の値パラメータをテストし,最適なパラメータ組み合わせを見つけます.
  3. 最適なパラメータを見つけるために SMAの滑らかなパラメータを最適化します
  4. ストップ・ロスのメカニズムを 強化する

概要

これはROC指標の二次開発に基づいた最適化戦略である.これは,歴史的な最大値比較,SMAスムージング,および無効な信号をフィルタリングし,戦略をより安定させるために購入・売却の値などの手段を導入する.主な利点は,ライブ取引に適した高い信号品質である.トレンドを組み合わせ,パラメータの最適化などからフォローアップ改善が進められ,戦略のパフォーマンスをさらに改善することができる.


/*backtest
start: 2024-02-12 00:00:00
end: 2024-02-19 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Rate Of Change Mod Strategy", shorttitle="ROC", format=format.price, precision=2)
//length = input.int(9, minval=1)
//source = input(close, "Source")
//roc = 100 * (source - source[length])/source[length]
//plot(roc, color=#2962FF, title="ROC")
//hline(0, color=#787B86, title="Zero Line")

length = input.int(9, minval=1, title="Length")
maxHistory = input(200, title="Max Historical Period for ROC")
lenghtSmooth = input.int(10, minval=1, title="Length Smoothed ROC")
lenghtBUY = input.int(-80, title="Buy Threshold")
lenghtSELL = input.int(80, title="Buy Threshold")

source = close
roc = 100 * (source - source[length]) / source[length]

// Calculate the maximum ROC value in the historical period
maxRoc = ta.highest(roc, maxHistory)

// Calculate current ROC as a percentage of the maximum historical ROC
rocPercentage = (roc / maxRoc) * 100


rocPercentageS = ta.sma(rocPercentage, lenghtSmooth)
if ta.rising(rocPercentageS, 3) and rocPercentageS < lenghtBUY
    strategy.entry("Buy", strategy.long)

if ta.falling(rocPercentageS, 3) and rocPercentageS > lenghtSELL
    strategy.close("Buy")


plot(rocPercentage, color=color.new(color.blue, 0), title="Percentage ROC")
plot(rocPercentageS, color=color.new(#21f32c, 0), title="Percentage ROC")
hline(0, color=color.new(color.gray, 0), title="Zero Line")


もっと