
В статье в основном анализируется количественная стратегия торговли, разработанная Ravikant_sharma, основанная на множественном индексе скользящих средних ((EMA) и относительно сильных индексов ((RSI)). Эта стратегия определяет ценовые тенденции, определяя время входа и выхода из рынка, путем скрещивания различных циклов EMA и количественного определения RSI.
Стратегия использует 5 различных периодических ЭМА, включая 9-ю, 21-ю, 51-ю, 100-ю и 200-ю линий. В коде только первые 4 ЭМА были нанесены.
Стратегия пополнения позиций, если выполняется одно из следующих условий:
При этом RSI должен быть выше 65, чтобы показать сильную тенденцию к росту.
Выход из стратегического равновесия осуществляется при выполнении любого из следующих условий:
Это типичная стратегия отслеживания трендов, которая имеет следующие преимущества:
Однако эта стратегия также несет в себе некоторые риски:
Эта стратегия также может быть оптимизирована в следующих направлениях:
Эта стратегия в целом является надежной, легко реализуемой стратегией отслеживания тенденций. Она использует многоциклические перекрестные ЭМА для определения направления тенденции, затем в сочетании с RSI фильтруют ложные сигналы, на основе лучшего эффекта отслеживания для оптимизации параметров и оптимизации моделей, ожидается стабильная прибыль. Однако, когда трейдер использует эту стратегию, он должен быть бдительным к рискам, связанным с обратными движениями и неправильными параметрами.
/*backtest
start: 2024-01-30 00:00:00
end: 2024-02-29 00:00:00
period: 3h
basePeriod: 15m
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/
// © Ravikant_sharma
//@version=5
strategy('new', overlay=true)
start = timestamp(1990, 1, 1, 0, 0)
end = timestamp(2043, 12, 12, 23, 59)
ema0 = ta.ema(close, 9)
ema1 = ta.ema(close, 21)
ema2 = ta.ema(close, 51)
ema3 = ta.ema(close, 100)
ema4 = ta.ema(close, 200)
rsi2=ta.rsi(ta.sma(close,14),14)
plot(ema0, '9', color.new(color.green, 0))
plot(ema1, '21', color.new(color.black, 0))
plot(ema2, '51', color.new(color.red, 0))
plot(ema3, '200', color.new(color.blue, 0))
//plot(ema4, '100', color.new(color.gray, 0))
//LongEntry = ( ta.crossover(ema0,ema3) or ta.crossover(ema0,ema2) or ta.crossunder(ema2,ema3) ) // ta.crossover(ema0,ema1) //
LongEntry=false
if ta.crossover(ema0,ema1)
if rsi2>65
LongEntry:=true
if ta.crossover(ema1,ema2)
if rsi2>65
LongEntry:=true
LongExit = ta.crossunder(ema0,ema2) or close >(strategy.position_avg_price*1.25) or rsi2 <40 or close < (strategy.position_avg_price*0.98)
if time >= start and time <= end
if(LongEntry and rsi2>60)
strategy.entry('Long', strategy.long, 1)
if(LongExit)
strategy.close('Long')