この記事では,ローカル・ハイスからの百分比的なリトラセーションに基づくトレンドを追跡する定量的な取引戦略を詳細に説明します.これは,固定した百分比的なリトラセーションの後のエントリー信号を特定します.
I. 戦略の論理
この戦略の主な論理は,特定の期間における地方高値を特定し,一定の割合のリトラセーションに入ることである.具体的ステップは:
まず,過去90バーの最高値を ローカルピークとして計算します.
価格がピークから一定の割合 (例えば3%) を追いつく場合,トレンドを追うためにロングをします.
入場価格より一定の割合 (例えば6%) に利益を引き出す目標を設定し,利益を引き出すときにポジションを閉じる.
ストップ・ロスは使わないし,トレンドフォローに集中する.
ローカル・トップからの百分比的な引き下げに基づいてエントリーを決定することで,トレンド確認は統合を効果的にフィルタリングすることで達成できます. 収益の設定は,取引ごとに利益予想の管理も保証します.
戦略の利点
この戦略の最大の利点は,トレンドを測定するために百分比リトレースを使用し,大量のノイズをフィルタリングすることです. ターニングポイントに直接入力すると比較して,誤ったタイムエントリの確率を減らすことができます.
もう一つの利点は,利益を引き出す論理です.これは,健全なマネーマネジメント原則に沿って,取引ごとに制御可能な利益と損失を保証します.
最後に,リトラセインメントパーセントよりも大きな利得目標は,一定のリスク報酬動態も提供します.
III.潜在的な弱点
この戦略には利点がありますが,実際の取引では以下のリスクに注意する必要があります.
まず,リトレースメントの割合は慎重に設定する必要があります. 過剰に深いリトレースメントも浅いリトレースメントも利益の可能性に影響します.
2つ目は,ストップ・ロスの欠如は,戦略を大きなシングル・トレードリスクにさらす.トレンドの逆転は,過大損失をもたらす可能性があります.
最後に,不適切なパラメータ最適化も 過適性問題や信号品質の悪化につながる可能性があります.
IV.要約
概要すると,この記事では,パーセントリトラセーションに基づく定量的なトレンドフォローする戦略を詳細に説明しています. 効果的にトレンド方向を特定し,引き下げを入力することができます. 利益の管理は,特定のリスク制御メカニズムも提供しています. 全体的に,地元のピークリトラセーションに基づいたルールを構築することによって,この戦略は適切な最適化後に強力なトレンドフォローするシステムとして機能することができます.
/*backtest start: 2022-09-07 00:00:00 end: 2023-09-13 00:00:00 period: 1d basePeriod: 1h 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/ // © luboremenar //@version=4 strategy("test_%_down_up", overlay = false, initial_capital = 1000, pyramiding = 0, default_qty_value = 1000, default_qty_type = strategy.cash, precision = 8, commission_type = strategy.commission.percent, commission_value = 0.1) // inputs range_of_tops = input(title="Range of candles to find highest value from.", defval=90, type=input.integer, minval=1 ) basis_points = input(title="Basis points, if asset has two decimals use 100, three decimals 1000, etc.", defval=100, type=input.integer, minval=1) retrace_percent = input(title="Percent value retrace from the top.", type=input.integer, defval=3, minval = 1, maxval=99) take_profit_percent = input(title="Percent value of take profit from entry price.", type=input.integer, defval=6, minval=1) // strategy definition three_months_top = highest(range_of_tops) longCondition1 = (close <= float((three_months_top*(1-(take_profit_percent/100)))) and strategy.position_size == 0) if (longCondition1) strategy.entry("Long1", strategy.long, qty = strategy.equity/close) strategy.exit(id="TP1", from_entry="Long1", profit=((close*(1 + take_profit_percent/100)-close)*basis_points), when= crossover(strategy.position_size, 0)) // plot plot(strategy.equity) // for testing, debugging //test=0.0 //if(crossover(strategy.position_size, 0)) // test := (close*1.06-close)*basis_points //plot(test)