この戦略は,異なる期間の2つの移動平均値のクロスオーバーを使用して取引信号を生成する.これはトレンドフォロー戦略に属する.この戦略は,短い期間のMAがより長い期間のMAを横断するときに信号を使用してトレンド機会を捕捉する.
この戦略は9期間の短期MA (SMA) と50期間の長期MA (LMA) を使用する.SMAがLMAを超えると購入信号が生成される.SMAがLMAを下回ると販売信号が生成される.
この戦略には,トレンドの強さを測定するためのRSIインジケーターも組み込まれています.RSIが限界値 (デフォルト55) を上回った場合にのみ取引信号が生成されます.これはRSIがオーバーボートゾーンにあるときに誤った信号を回避します.
この戦略は,総資本の30%を毎回取引し,一度に1つのポジションしか開いていない. 0.1%の手数料が計算されます.
リスクはパラメータの最適化,他の指標の使用,厳格な資本管理,ストップ損失によって軽減できます
この戦略は,シンプルなMAクロスオーバーシステムを使用してトレンド機会を捉える.デフォルトパラメータは安定したリターンで最適化され,アルゴリズム取引に適している.他の指標を追加し,パラメータを最適化し,ストップロスを実装することによってさらなる改善が可能である.全体的に,クロスオーバー信号を使用してトレンド市場をフォローする効果的なトレンドフォロー戦略である.
/*backtest start: 2023-09-16 00:00:00 end: 2023-10-16 00:00:00 period: 2h basePeriod: 15m 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/ // © relevantLeader16058 //@version=4 strategy(shorttitle='Maximized Moving Average Crossing ',title='Maximized Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" //MA inputs and calculations inlong=input(50, title='MA long period') inshort=input(9, title='MA short period') MAlong = sma(close, inlong) MAshort= sma(close, inshort) // RSI inputs and calculations lengthRSI = (14) RSI = rsi(close, lengthRSI) RSI_Signal = input(55, title = 'RSI Trigger', minval=1) //Entry and Exit bullish = crossover(MAshort, MAlong) bearish = crossunder(MAshort, MAlong) strategy.entry(id="long", long = true, when = bullish and RSI > RSI_Signal and window()) strategy.close(id="long", when = bearish and window()) plot(MAshort, color=color.purple, linewidth=2) plot(MAlong, color=color.red, linewidth=2)