
唐自適応移動平均取引システムは,価格トレンドを追跡する量化取引戦略である.この戦略は,唐通路指標を使用して,長線と短線移動平均を組み合わせて,価格トレンドを判断し,追跡し,中長線価格トレンドを捕捉し,トレンド取引を行う.
この戦略は,まず真波幅を計算する.真波幅とは,前K線の閉盘価格から,現在のK線の最高値と最低価格の間の価格変化の範囲である.そして,真波幅の長線の単純移動平均を計算し,唐通路の帯域として計算する.そして,より長い2つの時間周期の移動平均を組み合わせて,価格の傾向を判断する.具体的判断ルールは以下の通りである.
価格の上を長線移動平均加えた帯域と短線移動平均加えた帯域を走るときは,多めにする.価格下を長線移動平均減除帯域と短線移動平均減除帯域を走るときは,空にする.平仓条件は,価格下を横断帯域を増加させた長線移動平均を走るときは,多めにする.
このように,戦略は,実際の波幅のダイナミックで唐津通路の帯域を調整し,二重移動平均のフィルタリングと組み合わせることで,中長線価格のトレンドを効果的に追跡し,偽信号を軽減し,安定した長線取引機会を得ることができます.
この戦略には以下の利点があります.
チャンネル帯域の動的調整は,実際の波幅の計算を使用して,死パラメータを回避し,市場の変化に適応することができます.
双移動平均と組み合わせた判断は,ノイズを効果的にフィルターし,偽信号を減らすことができます.
中長期トレンドを追跡することで,重複取引を減らすことができ,取引の頻度を下げ,長期にわたる継続的な利益の機会を得ることができます.
戦略の論理はシンプルで明確で,実行しやすい. 誤差率が高い. 自動化された量化取引に適している.
この戦略にはいくつかのリスクがあります.
長線取引は,短線調整の入場時刻を把握することが困難である。波動指標などの短線状況を判断し,入場を最適化することができる。
業界,個人によって,パラメータを最適化する必要がある. 動的好みパラメータの組み合わせを考慮することができます.
突発的な事件が大きなトレンド変化を起こす場合,ストップダメージポイントは適切に緩和される必要があります.
全体として,唐津自律移動平均取引システム全体は,安定し,シンプルで,実行しやすい量化戦略である.この戦略は,ダイナミックチャネルと双均線フィルターを活用し,市場の中間長線トレンドを効果的に追跡し,取引頻度を低下させ,長期周期で継続的な収益を得ることができる.また,パラメータ設定の最適化,リスクの予防,突発的なイベントに適応するためのストップを注意する必要があります.全体的に言えば,この戦略は,中間長線量化追跡の使用に適した優れたパフォーマンスを発揮しています.
/*backtest
start: 2023-02-14 00:00:00
end: 2024-02-20 00:00:00
period: 1d
basePeriod: 1h
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/
// © dongyun
//@version=4
strategy("唐齐安移动平均交易系统", overlay=true)
longperiod = input(20,'长线')
shortperiod = input(5,'短线')
bandfactor = input(1.0,'')
TrueHigh = 0.0
TrueLow = 0.0
TrueRange = 0.0
TrueHigh := close[1] > high ? close[1] : high
TrueLow := close[1] < low ? close[1] : low
TrueRange := TrueHigh - TrueLow
AvgTrueRange = sma(TrueRange,longperiod)
MAlong = sma(close,longperiod)
MAshort = sma(close,shortperiod)
band = AvgTrueRange * bandfactor
if close > MAlong[1] + band[1] and close > MAshort[1] + band[1]
strategy.entry("Long", strategy.long, when=strategy.position_size < 1)
else
if close < MAlong[1] - band[1] and close < MAshort[1] - band[1]
strategy.entry("Short", strategy.short, when=strategy.position_size > -1)
if close < MAlong[1] - band[1] or close < MAshort[1] - band[1]
strategy.close("Long", when=strategy.position_size > 0)
else
if close > MAlong[1] + band[1] or close > MAshort[1] + band[1]
strategy.close("Short", when=strategy.position_size < 0)