
多重移動平均総合策は,非常に包括的で汎用的な技術分析策である.多重時間周期の移動平均を組み合わせて,市場動向の全般的な洞察を提供している.この策は,明確な買入と売却のシグナルを生成することによって,潜在的な入場と退出点を識別するのに役立ちます.また,強力なカスタマイズ性を提供し,ユーザーが自分の取引の好みと目標に応じて移動平均の長さを調整することができます.
この戦略の核心は,10日,20日,30日から100日までの移動平均を含む,複数の異なる長さの期間の移動平均を計算し,追跡することである.これらの移動平均は,現在の収束価格と過去の一定の周期 (例えば,10日,20日など) の収束価格の平均として設定されている.例えば,20日移動平均は,過去20日の収束価格の平均である.
今日の閉盘価格がこれらの移動平均のすべてより高いとき,買入シグナルが生成されます. 今日の閉盘価格がこれらの移動平均のすべてより低いとき,売出シグナルが生成されます. このように,すべての周期の移動平均が同じ方向を指している場合にのみ,シグナルが生成され,多くのノイズ取引機会をフィルターし,シグナルをより信頼できます.
複数の時間尺度の洞察を提供し,異なる市場環境に対応します.
複数の確認,ノイズフィルター,信号の信頼性
取引規則は明確で,理解しやすく,実行できます.
高度なカスタマイズ性があり,ユーザはパーソナライズされたニーズに合わせてパラメータを調整できます.
リスク管理に役立つ,入場,停止,停止の明確な指針を提供
市場が振動期にあるとき,複数の移動平均線が互いに交差し,不明確なシグナルが生じることがあります.移動平均線の周期の数と長さを調整することで交差の確率を減らすことができます.
将来の価格が複数の移動平均を突破する確率は低いため,一部の取引機会を逃す可能性があります.移動平均の数を適切に減らすことで,破裂の難易度を減らすことができます.
信号は遅延し,価格転換点の前にトレンドを捕捉することができません. MACDなどの他の先行指標と組み合わせると,トレンド転換の判断を向上させることができます.
取引回数は少ないため,安定した利益を得ることが困難である.移動平均の長さは適切に短縮され,または他の戦略/指標の組み合わせで使用することができます.
パラメータ調整:移動平均の周期数と長さを調整し,最適なパラメータの組み合わせを探します.例えば,5日,10日,20日移動平均の組み合わせをテストできます.
他の指標と組み合わせる:MACD,RSIなどの他の指標の組み合わせで使用され,戦略の性を高めます.異なる指標は互補することができます.
戦略の組み合わせ: 突破システム,トレンド追跡システムなどの他の戦略と組み合わせて,安定性を高めます. 異なる戦略はリスクを分散します.
自動最適化:アルゴリズムを用い,異なるパラメータを自動的にテストし,期待される最大化パラメータの組み合わせを探します.人工介入を減らす,効率を上げる.
多重移動平均の総合戦略は,非常に包括的で強力な戦略ツールである. それは,複数の時間尺度の洞察を提供し,信号は信頼性があり,使用しやすく理解し,高度にカスタマイズ性がある. また,一定の制限があるが,パラメータを調整し,他のモデルとの組み合わせなどの方法で最適化され,より複雑な市場状況に適応することができる. この戦略は,学習ツールとして補助技術分析思考を構築し,実物取引に使用することもできる. ユーザーは,自分のニーズに応じて調整し,それを専門化することができます.
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Multiple Moving Average Strategy", overlay=true)
// Function to calculate moving average
get_ma(src, length) =>
ta.sma(src, length)
// Initialize moving average lengths
ma_length_10 = 10
ma_length_20 = 20
ma_length_30 = 30
ma_length_40 = 40
ma_length_50 = 50
ma_length_60 = 60
ma_length_70 = 70
ma_length_80 = 80
ma_length_90 = 90
ma_length_100 = 100
// Calculate 10-day, 20-day, 30-day, 40-day, 50-day, 60-day, 70-day, 80-day, 90-day, and 100-day moving averages
ma_10 = get_ma(close, ma_length_10)
ma_20 = get_ma(close, ma_length_20)
ma_30 = get_ma(close, ma_length_30)
ma_40 = get_ma(close, ma_length_40)
ma_50 = get_ma(close, ma_length_50)
ma_60 = get_ma(close, ma_length_60)
ma_70 = get_ma(close, ma_length_70)
ma_80 = get_ma(close, ma_length_80)
ma_90 = get_ma(close, ma_length_90)
ma_100 = get_ma(close, ma_length_100)
// Generate Buy/Sell signals for the 10 moving averages
buy_signal = close > ma_10
sell_signal = close < ma_10
// Add conditions for each additional moving average length
buy_signal := buy_signal and (close > get_ma(close, ma_length_20))
sell_signal := sell_signal and (close < get_ma(close, ma_length_20))
buy_signal := buy_signal and (close > get_ma(close, ma_length_30))
sell_signal := sell_signal and (close < get_ma(close, ma_length_30))
buy_signal := buy_signal and (close > get_ma(close, ma_length_40))
sell_signal := sell_signal and (close < get_ma(close, ma_length_40))
buy_signal := buy_signal and (close > get_ma(close, ma_length_50))
sell_signal := sell_signal and (close < get_ma(close, ma_length_50))
buy_signal := buy_signal and (close > get_ma(close, ma_length_60))
sell_signal := sell_signal and (close < get_ma(close, ma_length_60))
buy_signal := buy_signal and (close > get_ma(close, ma_length_70))
sell_signal := sell_signal and (close < get_ma(close, ma_length_70))
buy_signal := buy_signal and (close > get_ma(close, ma_length_80))
sell_signal := sell_signal and (close < get_ma(close, ma_length_80))
buy_signal := buy_signal and (close > get_ma(close, ma_length_90))
sell_signal := sell_signal and (close < get_ma(close, ma_length_90))
buy_signal := buy_signal and (close > get_ma(close, ma_length_100))
sell_signal := sell_signal and (close < get_ma(close, ma_length_100))
// Plot Buy/Sell signals on the chart
plotshape(buy_signal, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(sell_signal, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)
// Execute long buy order when all ten moving averages give a Buy signal
if (buy_signal)
strategy.entry("Buy", strategy.long)
// Execute sell order when all ten moving averages give a Sell signal
if (sell_signal)
strategy.close("Buy")
// Execute short sell order when all ten moving averages give a Sell signal
if (sell_signal)
strategy.entry("Sell", strategy.short)
// Execute buy order when all ten moving averages give a Buy signal
if (buy_signal)
strategy.close("Sell")
// Plot closing price and moving averages on the chart
plot(close, title="Close", color=color.blue)
plot(ma_10, title="MA 10", color=color.orange)
plot(ma_20, title="MA 20", color=color.purple)
plot(ma_30, title="MA 30", color=color.blue)
plot(ma_40, title="MA 40", color=color.red)
plot(ma_50, title="MA 50", color=color.green)
plot(ma_60, title="MA 60", color=color.yellow)
plot(ma_70, title="MA 70", color=color.fuchsia)
plot(ma_80, title="MA 80", color=color.gray)
plot(ma_90, title="MA 90", color=color.teal)
plot(ma_100, title="MA 100", color=color.maroon)