この戦略は,単純な百分比ベースのトレーリングストップとトレーリング購入を実装する. タイムフレームやチャートで異なる百分比組み合わせを実験することで,戦略パラメータを最適化することができます.
この戦略は主に2つのメトリックを使用して,ストップ損失と購入を後押しします.
トレーリングストップライン (TSL): 閉店価格の最近のNバーとユーザーによって設定されたストップ損失オフセットパーセントに基づいて計算されます.価格がこのラインを下回るとストップ損失を誘発します.
トレイリング・バイ・ライン (TBL): 最近のNバーの最高価格とユーザーによって設定された購入オフセットパーセントに基づいて計算されます.価格がこのラインを超えると購入を誘発します.
この2つのメトリックと価格を比較することで,ストップ・ロストとトラッキング・バイのルールが実装されます.
この戦略の利点は次のとおりです.
シンプルで直感的で 分かりやすく実行できます
柔軟なストップ損失とパラメータ調整によるトライリング購入
市場と時間枠に当てはまる.
トレンドをフォローし,タイムリーストロップを可能にします.
この戦略のリスクは以下のとおりです.
パラメータの設定が正しくない場合,過剰なストップ・ロードまたは買いが起こる可能性があります.
市場での頻繁に取引と滑り込み
異なる市場特性に合わせてパラメータを最適化する必要があります
戦略は以下を通じて強化できます.
アダプティブアルゴリズムで ストップと購入のパラメータを自動最適化します
ポジションサイズとリスク管理モジュールの追加
他の指標を組み込み,全体的な傾向を測定し,不快を回避する.
概要すると,これは非常にシンプルで直感的なトレンドフォロー戦略である.パラメータチューニングにより,市場全体に適応することができる.適応アルゴリズムと追加のフィルターのさらなる組み込みにより,強度が向上することができる.全体として,定量的な取引のための基本的な効果的フレームワークを提供します.
/*backtest start: 2023-01-12 00:00:00 end: 2024-01-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //Developed from ©Finnbo code strategy("Simple Trailing Buy & Stop Strategy", overlay=true) offset = input(defval=1.5, title="Stop Offset %", type=float, minval=0.1, maxval=100, step=0.1) buyoffset = input(defval=1.9, title="Trailing Buy Offset %", type=float, minval=0.1, maxval=100, step=0.1) sumbars = input(defval=6, title="Use last x bars for calculation", minval=1) srcts = input(title="Source Trailing Stop calculation", defval=close) srctb = input(title="Source Trailing Buy calculation", defval=close) srctrigger = input(title="Source Stop Trigger", defval=low) srctriggerbuy = input(title="Source Buy Trigger", defval=high) tsl = rma(srcts, sumbars)*(1-(offset/100))// = (sum(srcts,sumbars)/sumbars)*(1-(offset/100)) tbuy = rma(srctb, sumbars)*(1+(buyoffset/100)) plot(tsl, color=(srctrigger<tsl)?red:green) plot(tbuy, color=(srctriggerbuy>tbuy)?red:green) //plotshape(crossunder(srctrigger,tsl), text="Long Stop", style=shape.circle, color=red) alertcondition(crossunder(srctrigger,tsl), "Long Stop alert", "SELL") //plotshape(crossover(srctriggerbuy,tbuy), text="Long", style=shape.circle, color=green) alertcondition(crossover(srctriggerbuy,tbuy), "Long alert", "BUY") longCondition = crossover(srctriggerbuy,tbuy) if (longCondition) strategy.entry("Long", strategy.long) closeCondition = crossunder(srctrigger,tsl) if (closeCondition) strategy.close("Long")