Эта стратегия использует индикатор RSI для определения условий перекупа и перепродажи, в сочетании с системой оценки тренда, построенной с помощью быстрых, средних и медленных скользящих средних линий, для выявления возможностей для открытия длинных или коротких позиций при скачках цен.
Использовать индикатор RSI для определения условий перекупления и перепродажи
Используйте три линии SMA разных периодов для определения тренда
Когда быстрая линия пересекает среднюю линию, и индикатор RSI показывает перепроданность, идите на длинный
Когда быстрая линия пересекается ниже средней линии, и индикатор RSI показывает перекупленность, перейдите на короткий
Стоп-лосс устанавливается на 4% от входной цены
Приобретение прибыли происходит по партиям, сначала получают прибыль в размере 20%, затем получают 15% по мере роста цены, постепенно выходя из позиций
Эта стратегия сочетает в себе движущиеся средние показатели и индикатор перекупленности/перепроданности RSI. Захватывая изменения тренда цен при оценке торговых возможностей, она относится к общепринятой стратегии отслеживания тренда. Дальнейшая оптимизация и улучшение показателя выигрыша могут быть достигнуты путем тестирования параметров и включения дополнительных вспомогательных показателей суждения.
/*backtest start: 2023-11-13 00:00:00 end: 2023-11-20 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/ // © syfuslokust //@version=4 strategy(shorttitle='CoinruleCombinedCryptoStrat',title='CoinruleCombinedCryptoStrat', overlay=true) // RSI inputs and calculations lengthRSI = 14 RSI = rsi(close, lengthRSI) //Normal oversold = input(30) overbought = input(70) //ALGO //oversold= input(26) //overbought= input(80) //sell pct SellPct = input(20) ExitPct = input(15) //MA inputs and calculations movingaverage_signal = sma(close, input(9)) movingaverage_fast = sma(close, input(50)) movingaverage_slow = sma(close, input(200)) movingaverage_mid= sma(close, input(100)) //Look Back inp_lkb = input(12, title='Lookback Long Period') inp_lkb_2 = input(2, title='Lookback Short Period') perc_change(lkb) => overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100 //Entry //MA bullish = crossover(movingaverage_signal, movingaverage_fast) //Execute buy strategy.entry(id="long", long = true, when = (RSI < oversold and movingaverage_fast < movingaverage_mid)) //when = crossover(close, movingaverage_signal) and movingaverage_signal < movingaverage_slow and RSI < oversold) //Exit //RSI Stop_loss= ((input (4))/100) longStopPrice = strategy.position_avg_price * (1 - Stop_loss) //MA bearish = crossunder(movingaverage_signal, movingaverage_fast) //Execute sell strategy.close("long", qty_percent = SellPct, when = RSI > overbought and movingaverage_fast > movingaverage_mid) //when = (crossunder(low, movingaverage_signal) and movingaverage_fast > movingaverage_slow and RSI > overbought) or (movingaverage_signal < movingaverage_fast and crossunder(low, movingaverage_fast)) or (low < longStopPrice)) //PLOT plot(movingaverage_signal, color=color.black, linewidth=2, title="signal") plot(movingaverage_fast, color=color.orange, linewidth=2, title="fast") plot(movingaverage_slow, color=color.purple, linewidth=2, title="slow") plot(movingaverage_mid, color=color.blue, linewidth=2, title="mid")