Длинный сигнал: запускается, когда ближайший превышает все три SMA, RSI превышает 50 и текущий максимум больше предыдущего фрактала вверх.
Короткий сигнал: активируется, когда ближайший находится ниже всех трех SMA, RSI ниже 50, а текущий низкий меньше предыдущего фрактала вниз.
Размер позиции динамически рассчитывается на основе выбранного процента собственного капитала и уровня кредитного плеча.
Эта стратегия сочетает в себе несколько индикаторов для фильтрации ложных сигналов и выявления высоких уровней вероятности прорыва, значительно снижая торговый риск.
Особые преимущества:
Использование многочасовых индикаторов для подтверждения, чтобы избежать ловушек.
Значения выше 50 сигнализируют о росте, а ниже 50 - о падении.
Фракталы Уильямса подтверждают прорыв, входя только при проникновении крайностей.
Динамическое распределение позиций на основе процента баланса счета строго управляет негативными тенденциями.
Настраиваемые параметры подходят для различных стилей торговли.
К основным рискам этой стратегии относятся:
Неспособность полностью избежать ударов, когда SMA расходятся.
Неспособность своевременно выйти из рынка до изменения тренда из-за отставания показателей.
Риск потери полной позиции при экстремальных движениях, когда потеря превышает предопределенную.
Решения:
Оптимизируйте комбинации SMA, чтобы найти лучшие параметры.
Добавьте фильтры свечей, чтобы избежать ложных прорывов.
Сократить процентные ставки и уровень кредитного плеча.
Стратегия может быть дополнительно усилена путем:
Испытание различных комбинаций SMA и RSI для получения оптимальных параметров.
Включение дополнительных фильтров, таких как ширина полос Боллинджера, сигналы трейдера и т.д.
Добавление механизмов остановки потерь для сокращения потерь на заранее определенном уровне.
Интеграция моделей глубокого обучения для обнаружения поддержки и сопротивления.
/*backtest start: 2024-01-17 00:00:00 end: 2024-01-24 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // Written by I3ig_Trades. Follow And Let Me Know Any Strategies You'd Like To See! strategy("Best Scalping Strategy Period (TMA)", shorttitle="Best Scalping Strategy Period (TMA)", overlay=false, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Leverage Input leverage = input.float(1, title="Leverage", minval=1, step=0.1) // Calculate position size based on the percentage of the portfolio and leverage percentOfPortfolio = input.float(100, title="Percent of Portfolio") // Define input options rsiLength = input.int(14, title="RSI Length", minval=1) williamsLength = input.int(2, title="Williams Fractals Length", minval=1) sma21Length = input.int(21, title="SMA 21 Length", minval=1) sma50Length = input.int(50, title="SMA 50 Length", minval=1) sma200Length = input.int(200, title="SMA 200 Length", minval=1) // Smoothed Moving Averages sma21 = ta.sma(close, sma21Length) sma50 = ta.sma(close, sma50Length) sma200 = ta.sma(close, sma200Length) // RSI rsiValue = ta.rsi(close, rsiLength) // Williams Fractals fractalUp = ta.highest(close, williamsLength) fractalDown = ta.lowest(close, williamsLength) // Conditions for Buy Entry buyCondition = close > sma21 and close > sma50 and close > sma200 and rsiValue > 50 and high > fractalUp[1] // Conditions for Sell Entry sellCondition = close < sma21 and close < sma50 and close < sma200 and rsiValue < 50 and low < fractalDown[1] positionSizePercent = percentOfPortfolio / 100 * leverage positionSize = strategy.equity * positionSizePercent / close // Executing strategy with dynamic position size if buyCondition strategy.entry("Buy", strategy.long, qty=positionSize) if sellCondition strategy.entry("Sell", strategy.short, qty=positionSize) // Plotting the Smoothed Moving Averages plot(sma21, color=color.white) plot(sma50, color=color.green) plot(sma200, color=color.red) // Plotting RSI and Fractals for visual confirmation hline(50, "RSI 50", color=color.yellow) plot(rsiValue, color=color.blue, title="RSI") // Input text boxes for trading actions var buy_entry_params = input("", title="Buy Entry Parameters") var buy_exit_params = input("", title="Buy Exit Parameters") var sell_entry_params = input("", title="Sell Entry Parameters") var sell_exit_params = input("", title="Sell Exit Parameters")