これは,二重移動平均をベースとした簡単な日中取引戦略である.異なる期間を持つ2つの単純な移動平均を使用し,移動平均が交差するときに長または短ポジションを取ります.シグナルが変化するときに二重量を使用してポジションが逆転します.すべてのオープンポジションは,日中セッションが終了するときに二乗されます.
この戦略は10日間の単純な移動平均と40日間の単純な移動平均を使用する. 短い期間の移動平均が長い期間の1を超えるとロングになり,逆クロスオーバーが発生するとショートになります. シグナルが変化すると,ポジションはダブル量を使用して閉鎖され,逆ポジションが開始されます. 取引は,定義された日中セッション中に移動平均信号に従ってのみ行われます. 残りのオープンポジションはセッション終了時に二乗されます.
この戦略は,主に短期間移動平均値の価格変化をより速く把握する能力を利用する.ショートSMAが長いSMAを超えると,短期間の価格上昇傾向を示し,それ故にロングはこれを把握することができる.逆向きは短期間の下落傾向を示します.ダブル量逆向きエントリは利益の可能性を拡大します.
リスク軽減
MAパラメータを最適化して より多くの組み合わせをテストします
偽信号を減らすためにMACDの確認のようなフィルターを追加します
パラメータ調整によって逆入力量倍数を最適化します
テストは,日中のセッション期間を延長して,より良い収益を得ます.
この戦略は,MAクロスオーバー信号から形成された短期的トレンドをキャッチし,二重量リバース取引を使用して利益を拡大し,日中セッションでの取引のみで一夜間のリスクを制限する.パラメータのさらなる最適化とフィルターを追加することで戦略のパフォーマンスを改善することができます.全体として,日中取引に適した効果的な戦略です.
/*backtest start: 2024-02-19 00:00:00 end: 2024-02-26 00:00:00 period: 1m 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/ // © Pritesh-StocksDeveloper //@version=4 strategy("Moving Average - Intraday", shorttitle = "MA - Intraday", overlay=true, calc_on_every_tick = true) // Used for intraday handling // Session value should be from market start to the time you want to square-off // your intraday strategy var i_marketSession = input(title="Market session", type=input.session, defval="0915-1455", confirm=true) // Short & Long moving avg. period var int i_shortPeriod = input(title = "Short MA Period", type = input.integer, defval = 10, minval = 2, maxval = 20, confirm=true) var int i_longPeriod = input(title = "Long MA Period", type = input.integer, defval = 40, minval = 3, maxval = 120, confirm=true) // A function to check whether the bar is in intraday session barInSession(sess) => time(timeframe.period, sess) != 0 // Calculate moving averages shortAvg = sma(close, i_shortPeriod) longAvg = sma(close, i_longPeriod) // Plot moving averages plot(series = shortAvg, color = color.red, title = "Short MA", linewidth = 2) plot(series = longAvg, color = color.blue, title = "Long MA", linewidth = 2) // Long/short condition longCondition = crossover(shortAvg, longAvg) shortCondition = crossunder(shortAvg, longAvg) // See if intraday session is active bool intradaySession = barInSession(i_marketSession) // Trade only if intraday session is active // Long position strategy.entry(id = "Long", long = strategy.long, when = longCondition and intradaySession) // Short position strategy.entry(id = "Short", long = strategy.short, when = shortCondition and intradaySession) // Square-off position (when session is over and position is open) squareOff = (not intradaySession) and (strategy.position_size != 0) strategy.close_all(when = squareOff, comment = "Square-off")