
Эта стратегия является количественной торговой стратегией, основанной на пересечении перемещающихся средних и динамических остановочных остановочных остановочных ATR. Эта стратегия использует простые перемещающиеся средние ((SMA) двух разных периодов для создания торговых сигналов, а также использует среднюю истинную колебательную частоту ((ATR) для динамического установления остановочных и остановочных позиций для лучшего контроля риска. Кроме того, эта стратегия фильтрует торговые сигналы в зависимости от различных торговых периодов, чтобы повысить устойчивость стратегии.
Ключевой принцип этой стратегии заключается в том, чтобы использовать пересечение движущихся средних для захвата изменений в ценовых тенденциях. Когда быстрые движущиеся средние пересекают медленные движущиеся средние снизу вверх, генерируются сигналы покупки; когда быстрые движущиеся средние пересекают медленные движущиеся средние сверху вниз, генерируются сигналы продажи. В то же время, стратегия использует ATR для динамического установления стопов и остановок, с установкой остановочного места для добавления ATR в 3 раза к цене входа, а с установкой остановочного места для уменьшения ATR в 1,5 раза от цены входа. Кроме того, стратегия генерирует торговые сигналы только во время европейских торговых часов, чтобы избежать торговли во время более низкой ликвидности.
Эта стратегия является простой и понятной стратегией для отслеживания тенденций, чтобы улавливать ценовые тенденции с помощью пересечения скользящих средних, а также использовать ATR для управления рисками. Несмотря на то, что стратегия имеет определенный риск, ее стабильность и прибыльность могут быть улучшены путем оптимизации параметров, фильтрации сигналов, управления рисками и т. Д.
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Enhanced Moving Average Crossover Strategy", overlay=true)
// Input parameters
fastLength = input(10, title="Fast MA Length")
slowLength = input(50, title="Slow MA Length")
atrLength = input(14, title="ATR Length")
riskPerTrade = input(1, title="Risk Per Trade (%)") / 100
// Time-based conditions
isLondonSession = hour >= 8 and hour <= 15
isAsianSession = hour >= 0 and hour <= 7
isEuropeanSession = hour >= 7 and hour <= 14
// Moving Averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)
// Average True Range (ATR) for dynamic stop loss and take profit
atr = ta.atr(atrLength)
// Buy and Sell Conditions
buySignal = ta.crossover(fastMA, slowMA)
sellSignal = ta.crossunder(fastMA, slowMA)
// Dynamic stop loss and take profit
stopLoss = close - atr * 1.5
takeProfit = close + atr * 3
// Strategy Logic
if (buySignal and isEuropeanSession)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", "Buy", limit=takeProfit, stop=stopLoss)
if (sellSignal and isEuropeanSession)
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit/Stop Loss", "Sell", limit=takeProfit, stop=stopLoss)
// Plotting
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")
plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")