レンコ移動平均に基づくトレンドフォロー戦略


作成日: 2024-02-21 16:36:00 最終変更日: 2024-02-21 16:36:00
コピー: 0 クリック数: 978
1
フォロー
1617
フォロワー

レンコ移動平均に基づくトレンドフォロー戦略

概要

これは,レンコ平均線を利用してトレンド判断と追跡を行う取引戦略である.この戦略の核心論理は,価格が22サイクルHL2平均線を突破したときに,相応の買取または販売操作を行うことである.同時に,この戦略は,停止,停止,移動停止などのリスク管理機構を設定している.

戦略原則

レンコ柱の閉盘価格が22周期HL2平均を上から突破すると,多めに; レンコ柱の閉盘価格が22周期HL2平均を下から突破すると,空いてください. このように,価格と平均の関係を判断することで,トレンドの方向を捉えます.

HL2平均 ((Highest High + Lowest Low) /2) は,トレンド型平均で,最高価格と最低価格の情報を組み合わせて,トレンドの方向をより正確に判断することができる.

また,特定の取引時にのみポジションを開設する制限を設けており,市場が激しく波動する可能性を回避しています.

優位分析

これはシンプルで直感的なトレンド追跡戦略で,以下の利点があります.

  1. レンコ柱線を取引信号として使用することで,市場騒音を効果的にフィルターし,主要トレンドを捉えることができます.

  2. HL2平均は,最高価格と最低価格の情報を組み合わせ,トレンド判断により正確で信頼性がある.

  3. 固定ストップ・ロスト・ポイントを設定することで,単一取引のリスクをコントロールできます.

  4. モバイルストップは,トレンドが進むにつれ利益を固定し,トレンドを追跡する.

  5. 取引の時間帯を制限することで,急激な市場の衝撃を一定程度回避できます.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. 平均策は偽信号を多く生み出します.

  2. 突発的な出来事による断絶のリスクを効果的に対処できない.

  3. レンコの設定を間違えると,良い取引機会を逃す可能性があります.

  4. 固定ストップは市場の変化に適応するのが難しい.

最適化の方向

この戦略は以下の方向から最適化できます.

  1. 偽信号を減らすために,フィルターする他の指標または条件を追加します.例えば,量能指標,振動指標など.

  2. 異なるパラメータの平均をテストして,より適切な周期数値を探します.

  3. レンコの箱のサイズもテストで最適化され,最適なパラメータが得られる.

  4. 波動率に基づく自律的な止損メカニズムの追加

  5. この条件を最適化するために,異なる取引時間帯の設定をテストできます.

要約する

全体として,これはRenko平均を用いてトレンド判断と追跡を行う簡単な実用的な戦略である.これは,より直感的な取引論理,リスク管理機構があり,安定した利益を追求するトレーダーに適している.しかし,パラメータ最適化,フィルタ条件の追加,自律的な止損などの手段によって,より良い戦略効果を得るためのいくつかの改善の余地がある.

ストラテジーソースコード
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("HL2 - 22 Cross", overlay=true)

// Stops and Profit inputs
inpTakeProfit   = input(defval = 300, title = "Take Profit", minval = 0)
inpStopLoss     = input(defval = 200, title = "Stop Loss", minval = 0)
inpTrailStop    = input(defval = 200, title = "Trailing Stop", minval = 0)
inpTrailOffset  = input(defval = 0, title = "Trailing Stop Offset", minval = 0)

// Stops and Profit Targets
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na

//Specific Time to Trade
myspecifictradingtimes = input('0500-1600',  title="My Defined Hours")

longCondition1 = crossover(close, ema(hl2, 22))
longCondition2 = time(timeframe.period, myspecifictradingtimes) != 0
if longCondition1 and longCondition2
    strategy.entry("Long", strategy.long, comment="LongEntry")

shortCondition1 = crossunder(close, ema(hl2, 22))
shortCondition2 = time(timeframe.period, myspecifictradingtimes) != 0
if shortCondition1 and shortCondition2
    strategy.entry("Short", strategy.short, comment="ShortEntry")

strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)