トレンド トラッキング 最大化 利益 戦略

作者: リン・ハーンチャオチャン開催日:2023年10月11日 14:38:40
タグ:

概要

この戦略は,動的な上下線を形成するために価格の移動平均値と標準偏差チャネルを計算し,現在のトレンド方向を判断するために,最も高い価格と最も低い価格の平均値を組み合わせ,中間線を形成する.価格が上下線を突破すると,それは長いことを意味します.価格が下下線を突破すると,それは短いことを意味します.これはトレンド変化に基づいて取引する戦略を実装します.

戦略の論理

  1. 中央参照線のベースとして閉じる20日間の単純な移動平均を計算します.
  2. 上部と下部レールと中部レールの間の距離の基礎として,閉じる20日標準偏差を計算する.
  3. 中部レールのベース ± 2*dev は上部レールの上部と下部レールの下部を決定する.
  4. 最新20日間の最高上2値と最低下2値の平均値を,第2の中間線のベース2として計算する.
  5. 上記の2つの中間レールの平均値MBを最終的な中間レールとして
  6. 中央レール MB より大きいとき,それは長い信号です. MB より大きいとき,それは短い信号です.
  7. トレンドと利益を追跡するために信号に従って,長いと短い方向を決定

利点分析

  1. ダイナミック標準偏差チャネルを使用して,迅速に価格傾向の変化を把握することができます
  2. 最も高い価格と最も低い価格の情報を組み合わせると,中間線はより意味があります
  3. 双重 の 中間 電車 の 設計 に よっ て,信号 は より 精確 で 信頼 できる
  4. 戦略のアイデアは単純で明確で,理解し実行しやすい
  5. 設定可能なパラメータは少ないが,様々な市場環境に適している.

リスク分析

  1. 上方または下方レールのブレイクで取引する場合,単一の損失を制御するためにストップ損失戦略を検討する必要があります.
  2. 取引頻度は高い場合があり,手数料の影響を考慮する必要があります
  3. オーバーフィッティングを避けるために注意深く最適化する必要があります.
  4. トレンドが変わると,間違った取引信号の可能性があります.
  5. 適切な資本管理が必要であり,過剰なレバレッジは使用されるべきではない

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

  1. 偽のブレイクを避けるために上部と下部レールを突破するときにフィルターを追加することを検討
  2. ATRおよび他の指標に基づいて動的出口を設定する.
  3. ブレイクシグナルの信頼性を検証するために取引量に関する情報を組み込む.
  4. より多くの市場環境に適応するために計算サイクルのようなパラメータを最適化
  5. 単一の損失のリスクを制御するためにポジションサイズを設定することを検討する.

概要

この戦略の全体的な考え方は明確で理解しやすい.チャネルを通じて動的にトレンドをキャプチャし,複数のミドルレールデザインで取引信号を生成することで,取引のためのトレンド方向を効果的に追跡し,良いリターンを得ることができます.実際の応用では,長期的に安定したリターンを得るために,ストップ損失戦略,資本管理,パラメータ最適化などに注意を払う必要があります.


/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 4h
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/
// © ErdemDemir

//@version=4
strategy("Lawyers Trend Pro Strategy", shorttitle="Lawyers Trend Pro Strategy", overlay=true)

src = close
mult = 2.0
basis = sma(src, 20)
dev = mult * stdev(src, 20)
upper = basis + dev
lower = basis - dev
offset = 0


lower2 = lowest(20)
upper2 = highest(20)
basis2 = avg(upper2, lower2)


MB= (basis+basis2)/2





col1=close>MB
col3=MB>close
colorE = col1 ? color.blue : col3 ? color.red : color.yellow
p3=plot(MB, color=colorE, linewidth=3)

// Deternine if we are currently LONG
isLong = false
isLong := nz(isLong[1], false)

// Determine if we are currently SHORT
isShort = false
isShort := nz(isShort[1], false)

// Buy only if the buy signal is triggered and we are not already long
buySignal = not isLong and crossover(close,MB)

// Sell only if the sell signal is triggered and we are not already short
sellSignal= not isShort and crossover(MB,close)
if (buySignal)
    isLong := true
    isShort := false

if (sellSignal)
    isLong := false
    isShort := true







/// LONG
strategy.entry("long", true , when = buySignal, comment="Open Long")

strategy.close("long", when=sellSignal, comment = "Close Long")

/// SHORT
strategy.entry("short", false,  when = sellSignal, comment="Open Short")

strategy.close("short", when=buySignal, comment = "Close Short")



もっと