複数移動平均トレンドフォロー戦略


作成日: 2024-02-05 11:10:41 最終変更日: 2024-02-05 11:10:41
コピー: 0 クリック数: 599
1
フォロー
1617
フォロワー

複数移動平均トレンドフォロー戦略

概要

この戦略は,典型的なトレンドフォロー戦略である.これは,複数の異なる周期の移動平均を使用して,市場のトレンドを判断し,トレンドが確立されたときに入場し,短期的なトレンドが逆転したときに退場する.

戦略原則

この戦略は,4つの移動平均のグループを使用します:9,21,50,200日線. これらはそれぞれ異なる時間次元を表しています.

短期移動平均が下から上へと長期移動平均を突破すると,市場が上昇傾向に入ると考えられる.短期移動平均が上から下へと長期移動平均を突破すると,市場が下へと入ると考えられる.

策略は,9日線を参考にして,他のいくつかの移動平均の並列関係を判断し,その結果,全体的なトレンド方向を判断する.具体的論理は:

多頭入場条件:閉盤価格 > 9日線で9日線 > 21日線で21日線 > 50日線で50日線 > 200日線

空頭入場条件:閉盤価格 < 9日線 9日線 < 21日線 < 50日線 < 200日線

その中,閉盤価格と9日線の関係判断は最短トレンド,9日線と21日線の関係判断は短期トレンド,21日線と50日線の関係判断は中期トレンド,50日線と200日線の関係判断は長期トレンドである. 4組の移動平均の関係が一致する時のみ,トレンドが成立することを判断し,取引信号を発行する.

終了条件:閉盤価格が21日移動平均を下回り,すべての多項を平らにする;閉盤価格が21日移動平均を下回り,すべての空券を平らにする.

戦略的優位性

  1. 複数の移動平均を用いてトレンドを判断し,非主流のトレンドの市場騒音を効果的にフィルターし,中長線トレンドを捉える.

  2. 入学条件は厳格で,多種多様な時間的なトレンド判断が有効で,短期的な調整に巻き込まれないようにする.

  3. リスクの早期停止と効率的な管理

リスクと解決策

  1. 長期横横整理市場では,大量に偽信号が生み出されやすく,取引リスクが増加する.パラメータを最適化して,移動平均の周期数を調整し,部分的なノイズをフィルターすることができる.

  2. 激しい状況では,移動平均はしばしばデッドフォークまたは黄フォークが発生する.このとき,他の要因と組み合わせて真のトレンドを判断する必要がある.RSI,MACDなどの指標を添加して確認することができ,大状況を見逃さないようにする.

最適化の方向

  1. パラメータ最適化。異なるパラメータの組み合わせをテストして,最適なパラメータを探す。例えば,移動平均の周期数を調整したり,止損条件を追加したり,調整したりする。

  2. 質量フィルターを追加する.例えば,入場時に交通量が増大したかどうかを判断し,容量不足の空飛ぶのを避ける.または波動が増大したかどうかを判断し,震動整理を避ける.

  3. 他の技術指標の確認を追加し,急激な状況で誤った信号を発信するのを避ける.RSI,MACDなどの指標を追加することを考慮して多要素判断を行う.

要約する

この戦略は,全体として典型的な,実用的なトレンドフォロー戦略である. それは,複数の移動平均のグループを使用して,トレンドを判断し,入場条件は厳格であり,中長期トレンドを効果的にロックすることができます.同時に,タイミングで止まり,リスクを制御することができます.パラメータ最適化,確認指標の追加などの手段によって,戦略の安定性と収益性をさらに向上させることができます.

ストラテジーソースコード
/*backtest
start: 2023-01-29 00:00:00
end: 2024-02-04 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/
// © shayak1

//@version=5
strategy('Super SR', overlay=true)

r = input.int(14,"rsi-length",1,100)
rsi = ta.rsi(close,r)

len1 = 9
len2 = 21
len3 = 50
len4 = 200

ema1 = ta.ema(close, len1)
ema2 = ta.ema(close, len2)
ema3 = ta.ema(close, len3)
ema4 = ta.ema(close, len4)

plot(ema1,color= color.green)
plot(ema2,color= color.yellow)
plot(ema3,color= color.orange)
plot(ema4,color= color.red)


// *** entries 
Long1 = close > ema1
Long2 = ema1 > ema2
Long3 = ema2 > ema3
Long4 = ema3 > ema4
buy_condition = Long1 and Long2 and Long3 and Long4 and strategy.position_size == 0

if (buy_condition and strategy.position_size <= 1)
    strategy.entry("B", strategy.long)

Short1 = close < ema1
Short2 = ema1< ema2
Short3 = ema2< ema3
Short4 = ema3< ema4
sell_condition = Short1 and Short2 and Short3 and Short4 and strategy.position_size == 0

//if (sell_condition)
//    strategy.entry("S", strategy.short)

// trailing SL
//Long_sl = min(strategy.position_avg_price * 0.95, strategy.pos


//EXIT CONDITIONS

exit_long = ta.crossunder(close, ema2)
exit_short = ta.crossover(close, ema2)

if(exit_long)
    strategy.close("B", "LE", qty_percent=100)
if(exit_short)
    strategy.close("S", "SE", qty_percent=100)

//==============================================================================
//INSERT SECTION
//This section is where users will be required to insert the indicators they
//would like to use for their NNFX Strategy.
//==============================================================================
//INSERT - CONFIRMATION INDICATOR 1
//==============================================================================


//==============================================================================
//INSERT - CONFIRMATION INDICATOR 2
//==============================================================================


//==============================================================================
//INSERT - VOLUME INDICATOR
//==============================================================================


//==============================================================================
//INSERT - BASELINE INDICATOR
//==============================================================================


//==============================================================================
//INSERT - EXIT INDICATOR
//==============================================================================


//==============================================================================
//INSERT - CONTINUATION TRADES INDICATOR
//==============================================================================


//==============================================================================
//COMPLETED SECTION
//This section has been optimised to work with the above indicators the user
//has inserted above. The user does not require to change any code below and
//is completed and optimised for the full NNFX strategy. Users may wish to 
//customise this section of code if they wish to alter the NNFX strategy.
//==============================================================================
//COMPLETE - BACKTEST DATE RANGE
//==============================================================================
// start_day = input.int(1,"start day",1,31)
// start_month = input.int(1,"start month",1,12)
// start_year = input.int(1,"start year",2010,2023)



//==============================================================================
//COMPLETE - CURRENCY CONVERSION
//==============================================================================


//==============================================================================
//COMPLETE - ATR MONEY MANAGEMENT
//==============================================================================


//==============================================================================
//COMPLETE - USER INPUT CONDITIONS - C1
//==============================================================================


//==============================================================================
//COMPLETE - USER INPUT CONDITIONS - C2
//==============================================================================


//==============================================================================
//COMPLETE - USER INPUT CONDITIONS - Vol
//==============================================================================


//==============================================================================
//COMPLETE - USER INPUT CONDITIONS - Bl
//==============================================================================


//==============================================================================
//COMPLETE - USER INPUT CONDITIONS - Exit
//==============================================================================


//==============================================================================
//COMPLETE - CONTINUATION TRADES
//==============================================================================


//==============================================================================
//COMPLETE - ONE CANDLE RULE
//==============================================================================


//==============================================================================
//COMPLETE - BRIDGE TOO FAR
//==============================================================================


//==============================================================================
//COMPLETE - BASELINE AND ATR RULE
//==============================================================================


//==============================================================================
//COMPLETE - ENTRY CONDITIONS
//==============================================================================


//==============================================================================
//COMPLETE - ENTRY ORDERS
//==============================================================================


//==============================================================================
//COMPLETE - TAKE PROFIT AND STOP LOSS CONDITIONS
//==============================================================================


//==============================================================================
//COMPLETE - EXIT ORDERS
//==============================================================================


//==============================================================================
//COMPLETE - CLOSE ORDERS
//==============================================================================


//==============================================================================