
この戦略は,異なる周期の移動平均を計算し,それらの交差を買入と売却の信号として設定することで,トレンドの追跡を実現します. 核心的な論理は,より短い周期の移動平均を使用して,より長い周期のトレンドの転向を追跡することです.
上記の取引シグナル設定の背後にある論理は,短期移動平均は価格の変化により迅速に反応し,最新のトレンドを反映することであり,長期移動平均は全体的なトレンドを反映し,ノイズをフィルターすることである.短期移動平均が長期移動平均を通過すると,トレンドの転換が起こることを示すため,取引シグナルが設定されます.
この戦略は,単純な移動平均線交差法によって,価格トレンドの転換を捕捉し,典型的なトレンド追跡戦略に属している. 優点は,単純に分かりやすく,操作が簡単で,パラメータを調整することで,多種多様な市場環境に適応できる. 欠点は,突発的な出来事への反応が敏感でないこと,誤った信号を生じやすいことである. 概して,この戦略の考え方は明確で,定量取引の入門戦略の一つであるが,実盤の適用ではリスク管理に注意を払い,適切な最適化を行う必要がある.
/*backtest
start: 2023-02-23 00:00:00
end: 2024-02-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MA Crossover Strategy", overlay=true)
// Функция для получения скользящего среднего на заданном таймфрейме
getMA(source, length, timeframe) =>
request.security(syminfo.tickerid, timeframe, ta.sma(source, length))
// Вычисляем 200-периодное и 100-периодное скользящее среднее для текущего таймфрейма
ma200 = getMA(close, 200, "240")
ma100 = getMA(close, 100, "240")
// Открываем позицию Long, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз
if (ta.crossover(ma100, ma200))
strategy.entry("Long", strategy.long)
// Закрываем позицию Long, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз
if (ta.crossunder(ma100, ma200))
strategy.close("Long")
// Открываем позицию Short, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз
if (ta.crossunder(ma100, ma200))
strategy.entry("Short", strategy.short)
// Закрываем позицию Short, если 100-периодное скользящее среднее пересекает 200-периодное снизу вверх
if (ta.crossover(ma100, ma200))
strategy.close("Short")
// Рисуем линии скользящих средних на графике
plot(ma200, color=color.blue, linewidth=2, title="200 MA")
plot(ma100, color=color.red, linewidth=2, title="100 MA")