トレーリングストップとトレーリングバイに基づくシンプルな戦略


作成日: 2024-01-19 14:30:59 最終変更日: 2024-01-19 14:30:59
コピー: 4 クリック数: 554
1
フォロー
1617
フォロワー

トレーリングストップとトレーリングバイに基づくシンプルな戦略

概要

この戦略は,パーセンテージベースのシンプルなストップとトラッキングの組み合わせを実現している.異なる時間枠と異なるグラフで異なるパーセンテージの組み合わせを試すことで,戦略のパラメータの最適化が可能である.

戦略原則

この戦略は,主に2つの指標によってストップとバイの追跡を実現します.

  1. トレーリングストップライン (Trailing Stop Line,TSL):ユーザが設定したストップ偏移パーセントに基づいて,最近のN根Kラインの閉店価格の移動平均に基づいて計算される.価格がこのラインより低いとき,平仓ストップ.
  2. トレーリング・バイ・ライン (Trailing Buy Line,TBL):ユーザが設定したバイ・バイ偏移パーセントに基づいて,最近のN根Kラインの最高価格の移動平均を計算する.価格がこのラインより高いとき,多頭ポジションを確立する.

価格と2つの指標の関係を比較することで,ストップ・ロズと追買のルールを実現する.

戦略的優位性

この戦略の利点は以下の通りです.

  1. シンプルで直感的で,理解し,実行しやすい.
  2. ストップとピッチアップの弾力性は,パラメータの調整によって実現できます.
  3. 異なる市場や時間帯に適応できる
  4. 価格の上昇を予測し,価格の上昇を予測し,価格の上昇を予測する.

戦略リスク

この戦略には以下のリスクもあります.

  1. パラメータを正しく設定しない場合,過剰に激進的なストップまたはキャッチアップが発生する可能性があります.
  2. 頻繁に取引され,波動的な市場では滑り落としが起こりうる.
  3. 異なる市場の特徴に適したパラメータを適正に最適化する必要があります.

戦略最適化の方向性

この戦略は以下の点で最適化できます.

  1. 適応アルゴリズムを使用して,自動でストップ・ロスのポジションと買取パラメータを最適化します.
  2. ポジション数とリスク管理モジュールを増やすこと
  3. 動向を判断する他の指標と組み合わせて,震動の状況に巻き込まれるのを避ける.

要約する

この戦略は全体的に非常にシンプルで直感的なトレンド追跡戦略である.パラメータの調整によって異なる市場に適用でき,自己適応アルゴリズムと他の指標を組み合わせることで,戦略の安定性と実用性をさらに高めることができます.全体的に,この戦略は,量化取引のためのシンプルで効果的な基本戦略の枠組みを提供します.

ストラテジーソースコード
/*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")