ハーストの未来の境界線戦略

SMA
作成日: 2024-04-29 13:58:06 最終変更日: 2024-04-29 13:58:06
コピー: 2 クリック数: 903
1
フォロー
1617
フォロワー

ハーストの未来の境界線戦略

概要

ハーストの未来境界線戦略は,J.M. ハーストが1970年代に提唱した未来境界線 (Future Line of Demarcation,FLD) の概念に基づく取引戦略である.この戦略は,財務図に単純な,しかし深い意味を持つ線を描き,すなわち,価格データをタイム軸で半サイクル前に偏移して,将来の価格動きを予測する.具体的には,この戦略は,主に3つのハースト周期:シグナル周期,取引周期,トレンド周期の相互作用に焦点を当てている.価格とFLDの線との交差および偏離パターンを観察することにより,トレーダーは,市場の傾向または収束を判断し,出口を決定することができます.

戦略原則

ハーストの未来境界線戦略の核心は,価格データを時間軸で半サイクル前に偏移させ,未来境界線を構成することである.例えば,40日周期の場合,FLDは,現在の価格データをグラフで20日前に移動することによって表現される.この戦略は,主に3つのハースト周期を重視する.信号周期 (20日),取引周期 (20日),トレンド周期 (80日).価格が3つのFLDラインと交差し,偏離するパターンを観察することによって,トレーダーは市場の傾向または収束を判断することができる.価格がFLD信号の上方,FLD信号はFLD上で取引され,FLDはトレンドの上方であるとき,市場は上昇傾向にある.

戦略的優位性

ハーストの”未来における境界線戦略”の主な利点は,

  1. シンプルで分かりやすい:この戦略は,FLDのシンプルな概念に基づいており,理解し,適用しやすい.
  2. 前向き性:価格データを前向きに偏移させることで,FLDは将来の価格動向の予測を提供します.
  3. マルチサイクル分析:この戦略は,3つの異なるハーストサイクルを組み合わせて,より包括的な市場分析を提供します.
  4. 傾向と収束の識別:価格とFLD線の相互作用パターンを観察することで,トレーダーは市場の傾向または収束を判断することができます.
  5. カスタマイズ性:この戦略は,調整可能な平仓トリガーを提供し,トレーダーは自分の好みに応じて退出点を設定できます.

戦略リスク

ハーストの”未来境界線”戦略には利点がありますが,いくつかの潜在的なリスクがあります.

  1. パラメータ感性:この戦略のパフォーマンスは,周期長さなどのパラメータに敏感であり,異なるパラメータ設定は,異なる結果をもたらす可能性があります.
  2. 市場適応性:この戦略は,トレンドが不明な,または急激に変動する市場などの特定の市場条件下で,うまく機能しない可能性があります.
  3. 遅滞:FLDは過去のデータに基づいて計算されているため,一定の遅滞がある可能性があります.
  4. 取引過多:平仓のトリガーの設定が不適切である場合,過剰取引と高取引コストを引き起こす可能性があります.

これらのリスクを軽減するために,トレーダーはパラメータの最適化,異なる市場条件に合わせて戦略の調整,適切なストップ・ロスとリスク管理の設定を検討することができます.

戦略最適化の方向性

ハーストの将来的な境界線戦略は,以下の点で最適化できる:

  1. パラメータ最適化:戦略のパフォーマンスを向上させるために,周期長さ,平仓トリガーなどのパラメータを最適化します.
  2. 多時間枠分析:この戦略を異なる時間枠に適用し,より包括的な市場視点を得ます.
  3. 他の指標と結合:FLDを他の技術指標 (移動平均,振動器など) と結合して,信号の信頼性を向上させる.
  4. リスク管理:リスクを制御し,収益を最適化するために,ストップ損失とポジション管理の仕組みを導入する.
  5. 市場適応性:異なる市場条件 (トレンド,揺れなど) に対して,ターゲットを絞った最適化方案を開発する.

これらの最適化により,ハストの将来の境界線戦略は,異なる市場環境により良く適応し,安定性と収益性を向上させることができます.

要約する

ハーストの未来区画策は,J.M. ハーストの未来区画概念に基づいた革新的な取引戦略である.価格データを半サイクル前方に偏移して,未来区画を構築し,3つの異なるハースト周期 (信号周期,取引周期,トレンド周期) を組み合わせることで,この戦略は将来の価格動きの予測を提供します.トレーダーは,FLDラインとの交差と偏差のパターンを観察して,市場の傾向や整合を判断し,出口を決定することができます.この戦略は,簡単で分かりやすく,前向きで多周期的な分析などの利点があるものの,パラメータの感受性,市場の適応性および遅滞などの潜在的なリスクもあります.

ストラテジーソースコード
/*backtest
start: 2024-04-27 00:00:00
end: 2024-04-28 00:00:00
period: 10m
basePeriod: 1m
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/
// © BarefootJoey

//@version=5
strategy("Hurst Future Lines of Demarcation Strategy", overlay=true)

// FLD Settings
source      = input(ohlc4, 'Source')
smoothFLD   = input.bool(false, 'Smooth FLD')
FLDtransp   = input(33, 'FLD transparency')
FLDsmooth   = input.int(5, "FLD Smoothing", minval=1, tooltip="Number of trading days to smooth the FLD")   
FLD_out = ta.sma(source , smoothFLD ? FLDsmooth : 1)

close_buy_in_1 = input.string('Price', 'Input Close Trigger 1', options=['Price', 'Signal', 'Trade', 'Trend', 'None'])
close_buy_in_2 = input.string('Trade', 'Input Close Trigger 2', options=['Price', 'Signal', 'Trade', 'Trend', 'None'])

// Quarter Cycle (Default: 20 day) Length Pivot Cycle
col_q = input.color(#da00ff, "Quarter Cycle Color")
cyc_q = input.int(5, "Signal Cycle Length")
plot(FLD_out, color=color.new(col_q, FLDtransp), title='Signal FLD', offset = math.round(cyc_q/2) )

// Trade Cycle (Default: 20 day) Length Pivot Cycle
col = input.color(#ff9800, "Trade Cycle Color")
cyc = input.int(20, "Trade Cycle Length")
plot(FLD_out, color=color.new(col, FLDtransp), title='Trade FLD', offset = math.round(cyc/2) )

// Double Cycle (Default: 80 day) Length Pivot Cycle
col_d = input.color(color.aqua, "Double Cycle Color")
cyc_d = input.int(80, "Trend Cycle Length")
plot(FLD_out, color=color.new(col_d, FLDtransp), title='Trend FLD', offset = math.round(cyc_d/2) )

// Strategy Plots
price = source
signal = FLD_out[math.round(cyc_q/2)]
trade = FLD_out[math.round(cyc/2)]
trend = FLD_out[math.round(cyc_d/2)]

// Trend State
var state = 0
if signal > trade and trade > trend 
    state := 1 // (A)
    state
if state == 1 and price < signal
    state := 2 // (B)
    state
if signal < trade and trade > trend 
    state := 3 // (C)
    state
if state == 3 and price < signal 
    state := 4 // (D)
    state
if signal < trade and trade < trend 
    state := 5 // (E)
    state
if state == 5 and price < signal
    state := 6 // (F)
    state
if signal > trade and trade < trend
    state := 7 // (G)
    state
if state == 7 and price < signal
    state := 8 // (H)
    state
state := state

// Strategy Definitions
close_buy_out_1 = close_buy_in_1 == 'Price' ? price : close_buy_in_1 == 'Signal' ? signal : close_buy_in_1 == 'Trade' ? trade : close_buy_in_1 == 'Trend' ? trend : na
close_buy_out_2 = close_buy_in_2 == 'Price' ? price : close_buy_in_2 == 'Signal' ? signal : close_buy_in_2 == 'Trade' ? trade : close_buy_in_2 == 'Trend' ? trend : na
buy = ta.crossover(price, signal) and state == 1
close_buy = strategy.position_size>0 and ta.crossunder(close_buy_out_1, close_buy_out_2)
sell = ta.crossunder(price, signal) and state == 6
close_sell = strategy.position_size<0 and ta.crossover(close_buy_out_1, close_buy_out_2)

// FLD Interaction State Background
interaction_color = state == 1 ? color.green : // A
  state == 2 ? color.aqua : // B
  state == 3 ? color.blue : // C
  state == 4 ? color.purple : // D
  state == 5 ? color.white : // E
  state == 6 ? color.red :// F
  state == 7 ? color.orange : // G
  state == 8 ? color.yellow : na // H

bgcolor(color.new(interaction_color, 90), title= "A-H Background")

bar_color = strategy.position_size>0 ? #00ff0a : strategy.position_size<0 ? #FF0000 : na
barcolor(bar_color)

if buy
    strategy.entry("Buy", strategy.long)
if close_buy
    strategy.close("Buy", qty_percent=100)

if sell
    strategy.entry("Sell", strategy.short)
if close_sell
    strategy.close("Sell", qty_percent=100)

// EoS made w/ ❤ by @BarefootJoey ✌💗📈