この戦略は,仮想通貨市場とトレードにおけるトレンド方向を特定するために,VIDYA (変数指標動的平均値) 指標を使用しています.これは定量的な技術的なトレード戦略です.
この戦略はまずVIDYAインジケーターを計算する.VIDYAインジケーターは価格動向に基づいているため,トレンド変化により早く反応することができる.具体的には,チャンデ・モメンタム・オシレーター (CMO) とシンプル・ムービング・アベレージ (SMA) を組み合わせている.CMOはトレンド強さを測定するために上下動向の違いを測定する.SMAは価格データをスムーズにします.VIDYAはCMO値に基づいてSMAの重量を動的に調整し,トレンド変化の初期にCMOにより多くの重量を与え,トレンドが確立されるとSMAにより多くの重量を与えます.したがって,VIDYAはトレンドの変化に迅速に対応し,トレンドのスムーズな追跡を維持することができます.
VIDYA を計算した後,戦略は,VIDYA の曲線に基づいてトレンド方向を判断します. VIDYA が上昇するときに長引いて,VIDYA が落ちるときにポジションを閉じます.
VIDYAは迅速に対応し,SMAのような伝統的な指標と比較して傾向の変化を早期に把握できます.
傾向の強さと方向性を組み合わせることで,強いトレンドと弱いトレンドを効果的に区別し,異なる市場における誤ったトレンドを避けることができます.
VIDYAのみに頼ることで 戦略は簡単になります 多数の指標から 矛盾したり 誤解を招くような信号が ありません
長い VIDYA 設定により,長期的なトレンドを追跡し,主要なトレンド方向を把握できます.
良いバックテスト結果で 期待される収益はポジティブです
VIDYAは急激な市場動向に反応して遅れて 短期的な取引機会を逃す可能性があります
長 VIDYA 設定は短期的なトレンド変化に敏感性が低下し,より大きな引き上げにつながる可能性があります.
純粋なトレンドフォローは 不安定な市場では 良くない結果を出します 追加のフィルターは 業績を改善できます
制限されたバックテストデータは信頼性を完全に検証することはできません. パラメータはライブ取引で繰り返しの最適化とテストが必要です.
仮想通貨市場での高い変動性. 厳格なリスク管理のために,ポジションサイズとストップロスは注意深く管理されるべきです.
トレンド変化に対する感受性を向上させるため,ボリュームまたは波動性指標を追加してテストする.
VIDYAを他のトレンドインジケーターと組み合わせてみてください
ストップ・ロスの戦略を最適化して トレンドが逆転すると早く退場する
市場の状況に基づいて ポジションサイズを動的に最適化する
異なる暗号通貨とタイムフレームで 安定性をテストします
一般的に,これは戦略の定量的なトレンドフォローです. 傾向の方向性を決定するためにVIDYA指標を使用し,暗号トレンドを単純かつ効果的に把握します. しかし,ストップ損失,ポジションサイズ等でさらなる最適化を必要とするいくつかの制限もあります. 戦略をより堅牢かつ実用的に実行可能にするため. 一般的に,暗号トレンド戦略を構築するための基本的な枠組みとアプローチを提供します. しかし,現実世界のアプリケーションには依然として慎重な評価が必要です.
/*backtest start: 2023-09-29 00:00:00 end: 2023-10-29 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // @version=5 // Author = TradeAutomation strategy(title="VIDYA Trend Strategy", shorttitle="VIDYA Trend Strategy", process_orders_on_close=true, overlay=true, pyramiding=25, commission_type=strategy.commission.percent, commission_value=.075, slippage = 1, initial_capital = 1000000, default_qty_type=strategy.percent_of_equity, default_qty_value=4) // Backtest Date Range Inputs // StartTime = input(defval=timestamp('01 Jan 2000 08:00'), group="Date Range", title='Start Time') EndTime = input(defval=timestamp('01 Jan 2099 00:00'), group="Date Range", title='End Time') InDateRange = true // Strategy Inputs // len = input.int(title="VIDYA Length", defval=50, step=5,group="Trend Settings") src = input.source(title="VIDYA Price Source",defval=ohlc4, group="Trend Settings") // VIDYA Calculations // valpha=2/(len+1) vud1=src>src[1] ? src-src[1] : 0 vdd1=src<src[1] ? src[1]-src : 0 vUD=math.sum(vud1,9) vDD=math.sum(vdd1,9) vCMO=nz((vUD-vDD)/(vUD+vDD)) var VIDYA = 0.0 VIDYA := na(VIDYA[1]) ? ta.sma(src, len) : nz(valpha*math.abs(vCMO)*src)+(1-valpha*math.abs(vCMO))*nz(VIDYA[1]) plot(VIDYA, title="VIDYA",color=(VIDYA > VIDYA[1]) ? color.green : (VIDYA<VIDYA[1]) ? color.red : (VIDYA==VIDYA[1]) ? color.gray : color.black, linewidth=2) // Entry & Exit Signals // if (InDateRange) strategy.entry("Long", strategy.long, when = VIDYA>VIDYA[1]) strategy.close("Long", when = VIDYA<VIDYA[1]) if (not InDateRange) strategy.close_all()