極端な流通のスイング戦略

作者: リン・ハーンチャオチャン開催日:2023年11月13日 17:03:08
タグ:

img

この戦略は,主にビットコインと暗号通貨の1分間のタイムフレームで極端な分布検出を使用して,チャンデモメントオシレーターの極端を検出することを目的としています.しかし,パラメータは任意のペアに調整できます.

チャンデ・モメント・オシレーターに関する広範な研究の後,エントリをスナイプするために通常の分布百分位値を使用する戦略を作成することにしました.これは1分間のタイムフレームで連続した日にわたって良い利益を生むことができます.最終目標は,ボットで動作するこの戦略のより強力なバージョンを得て,お金を印刷することです. 戦略は厳格に定義されていますが,より大きなサンプルサイズとより良いシャープ比率を与え,より多くの取引を行うために緩めることもできます.

この戦略は,最後の数百のチャンデ値に基づいて,チャンデ値が極端な百分点にあるかどうかをチェックします. そうであれば,ポジションを開きます.

損失を最小限に抑え 潜在的利益を増大させるための 次の追加となります 損失を最小限に抑え 潜在的利益を増大させるための 次の追加となります

低期間の暗号ペアなら この戦略で良い結果が得られます

15Mと1Hの戦略も用意しています

戦略の論理

この戦略はまず,現在の期間の終了と前の期間の終了との間の変化に基づいたチャンド・モメンタム・オシレーターを計算します.具体的には,上昇変化の和と下落変化の和の比率を計算することによって価格変化の勢いを測定します.

チェンデ値が設定された前置極限パーセンチルに達すると,長/短エントリー信号が起動する. 終了信号はチェンデ値が通常のパーセンチルレベルに達すると起動する (デフォルトは97.5%と2.5%).

この方法により,戦略はチャンド値の極端なブレイクを把握し,急激なトレンド動きを把握することができます.また,チャンド値が長期間にわたって極端なレベルにとどまる場合,繰り返しエントリのリスクを回避します.

利点分析

  • チェンデ指標の勢いを利用して市場爆発を迅速に捕捉します
  • 通常分布の極限検出で低得益リスク
  • 柔軟なパラメータ 異なる市場体制に適応可能
  • シンプルで直感的な戦略論理,理解し実行しやすい

リスク分析

  • 短時間ノイズに敏感なモメントインジケーターとして偽信号に敏感なチャンデ
  • 超高値取引の長期引き上げ期間,日中取引頻度が低い
  • ストップ損失/利益目標なしの振動損失リスク
  • パラメータの調節が不適切で過度に最適化されるリスク

リスクマネジメントは,ストップを使用し,極端なパラメータを正規化し,トレンドとシグナルをフィルタリングすることに焦点を当てるべきです.パラメータを過剰に最適化することを避ける.

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

戦略は,いくつかの側面で最適化することができます:

  1. ストップ・ロース/プロフィート・テイクを合理的なレベルで取引ごとに損失を制御するために追加します.

  2. パラメータを最適化するには,異なる市場に対する短/長いバックバックを調整する.ステップワースウォークフォワード最適化により最適なパラメータを見つけることができます.

  3. MAのようなトレンドインジケーターをフィルター条件に追加して,全体的なトレンドに対する誤った信号を削除します. 戦略の安定性を向上させます.

  4. 複数のタイムフレームを組み合わせ,より高いTFをトレンド方向を測定し,より低いTFをエントリーに使用します.

  5. 異なる製品でパラメータの強度をテストし,より多くの品種に調整します.

  6. マシン学習を導入して パラメータとフィルターを動的に最適化します

結論

この戦略は,トレンドの動きを把握するためにチャンデモメントオシレーターの極端値を使用する戦略である.その直線な論理と効率的な実行は,ブレストトレンドを迅速にキャピタライズするのに非常に適している.同時に,リスク制御,過剰最適化回避,多次元最適化が市場体制に適応するために必要である.要約すると,さらなる研究と適用に値する取引市場のブレストのための効果的なアプローチを提供します.


/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Chande Minute Swinger", overlay=true)

//Chande

length = input(9, minval=1)
src = close
momm = change(src)
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m
m1 = f1(momm)
m2 = f2(momm)
sm1 = sum(m1, length)
sm2 = sum(m2, length)
percent(nom, div) => 100 * nom / div
chandeMO = percent(sm1-sm2, sm1+sm2)

//Parameters to change

lengthLookback = 425 //425 golden number
buyPercentile = 1
sellPercentile = 99
linePercentileLow = 2.5
linePercentileHigh = 97.5

buy = percentile_nearest_rank(chandeMO, lengthLookback, buyPercentile)
exitBuy= percentile_nearest_rank(chandeMO, lengthLookback, linePercentileHigh)
sell = percentile_nearest_rank(chandeMO, lengthLookback, sellPercentile)
exitSell = percentile_nearest_rank(chandeMO, lengthLookback, linePercentileLow)

chandeMA = sma(chandeMO, 9) //sma for potential other strategies implementing cross / trend

//Entry conditions

closeLongCondition = chandeMO > exitBuy ? true : false
closeShortCondition = chandeMO < exitSell ? true : false
longCondition = chandeMO < buy
shortCondition = chandeMO > sell

if (longCondition)
    strategy.entry("long", strategy.long)
    

if (shortCondition)
    strategy.entry("short", strategy.short)
    
//Introducing the closes and a stoploss will minimise loss and bring up the sharpe ratio
//Current settings are enabled for maximum potential but big risk
    
//strategy.close("long", when=(closeLongCondition == true))
//strategy.close("short", when=(closeShortCondition == true))

もっと