Это динамический индекс ETF, следующий за трендом, основанным на скользящих средних. Он использует перекресток и наклон быстрых и медленных скользящих средних для определения направления тренда для низкорисковых динамических трендов активов индекса ETF.
Стратегия использует 50-периодные и 150-периодные скользящие средние. Когда быстрая скользящая средняя пересекает медленную скользящую среднюю, и наклон быстрой скользящей средней больше порога, это сигнализирует об обратном тренде для длинного входа. Когда быстрая скользящая средняя пересекает ниже медленной скользящей средней, или наклон быстрой скользящей средней меньше порога, это сигнализирует об обратном тренде для выходящих позиций.
Стратегия просто использует направление и наклон скользящих средних для определения тенденции рынка, избегая перенапряжения и эффективно контролируя риски.
Это низкорисковый тренд индекса импульса ETF, следующий за стратегией со следующими преимуществами:
Существуют также некоторые риски:
Решения:
Есть несколько областей, в которых эта стратегия может быть дополнительно оптимизирована:
В заключение, это низкорисковая, простая в реализации стратегия, следующая за трендом индекса ETF. Она определяет направления тренда с использованием пересечений скользящих средних и имеет такие преимущества, как сильный контроль рисков, низкие затраты на реализацию и стабильные прибыли.
/*backtest start: 2023-11-04 00:00:00 end: 2023-12-04 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //please use on daily SPY, or other indexes only strategy("50-150 INDEX TREND FOLLOWING", overlay=true) //user input fastSMA = input(title="Fast Moving Average (Int)",type=input.integer,minval=1,maxval=1000,step=1,defval=50,confirm=false) slowSMA = input(title="Slow Moving Average (Int)",type=input.integer,minval=1,maxval=1000,step=1,defval=150,confirm=false) longSlopeThreshold = input(title="Bullish Slope Angle (Deg)",type=input.integer,minval=-90,maxval=90,step=1,defval=5,confirm=false) shortSlopeThreshold = input(title="Bearish Slope Angle (Deg)",type=input.integer,minval=-90,maxval=90,step=1,defval=-5,confirm=false) atrValue = input(title="Average True Range (Int)",type=input.integer,minval=1,maxval=100,step=1,defval=14,confirm=false) risk = input(title="Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=100,confirm=false) //create indicator shortSMA = sma(close, fastSMA) longSMA = sma(close, slowSMA) //calculate ma slope angle(_source) => rad2degree=180/3.14159265359 ang=rad2degree*atan((_source[0] - _source[1])/atr(atrValue)) shortSlope=angle(shortSMA) longSlope=angle(longSMA) //specify crossover conditions longCondition = (crossover(shortSMA, longSMA) and (shortSlope > longSlopeThreshold)) or ((close > shortSMA) and (shortSMA > longSMA) and (shortSlope > longSlopeThreshold)) exitCondition = crossunder(shortSMA, longSMA) or (shortSlope < shortSlopeThreshold) strategy.initial_capital = 50000 //units to buy amount = (risk / 100) * (strategy.initial_capital + strategy.netprofit) units = floor(amount / close) //long trade if (longCondition and strategy.position_size == 0) strategy.order("Long", strategy.long, units) //close long trade if (exitCondition and strategy.position_size > 0) strategy.order("Exit", strategy.short, strategy.position_size) // Plot Moving Average's to chart plot(shortSMA, color=color.blue) plot(longSMA, color=color.green)