
Эта стратегия использует двойную подвижную среднюю для формирования каналов, чтобы улавливать направление тренда. Выпускает торговый сигнал, когда цена пробивает каналы. При этом в сочетании с индикатором RSI фильтрует ложные прорывы.
Эта стратегия использует две 5-летние скользящие средние, одна из которых рассчитана с самой высокой цены, а другая - с самой низкой цены, чтобы сформировать ценовой канал. Когда цена закрытия пробивается вверх по каналу, она делает больше, а когда она пробивается вниз, она делает меньше.
Для фильтрации фальшивых прорывов, также введены показатели RSI для определения перекупа и перепродажи. Сделайте больше, когда RSI выше 80, и делайте пустоту, когда RSI ниже 20.
Кроме того, стратегии торгуются только в лондонское время (с 3 до 11 часов утра) с максимальным количеством 5 ордеров в день и максимальным убытком не более 2% от доли акций.
Двойные подвижные средние строят трендовые каналы, чтобы лучше определять направление ценовых тенденций. Когда цена вверх пробивает канал, она улавливает тенденцию к росту цены; когда цена вниз пробивает канал, она улавливает тенденцию к снижению цены.
В сочетании с RSI, чтобы определить зоны перекупа и перепродажи, можно в некоторой степени уменьшить ложные прорывы, вызванные ценовыми колебаниями.
Стратегия заключает сделки только в основные активные торговые периоды, при этом частота торгов эффективно контролируется максимум 5 ордерами в день; установка максимального убытка в 2% позволяет контролировать максимальные убытки в течение одного дня в пределах допустимого диапазона.
При значительных колебаниях цены могут появляться определенные ложные сигналы прорыва, что может привести к ненужным торговым потерям. Этот риск можно уменьшить, оптимизировав параметры или добавив условия фильтрации.
Стратегия использует фиксированное количество точек для остановки убытков. При значительных колебаниях цены остановки убытков с фиксированным количеством точек могут быть сняты, в ответ на это используются процентные или динамические стопы убытков.
Стратегия открывает позиции только в фиксированный торговый период, и если в этот период не будет генерироваться сигнал, то будет пропущена потенциальная торговая возможность в другие периоды времени. Можно рассмотреть возможность соответствующего расширения времени торговли или динамической корректировки в соответствии с реальными обстоятельствами.
Можно оптимизировать длину скользящей средней, параметры RSI, число фиксированных стоп-стоп и т. д., чтобы найти оптимальную комбинацию параметров.
Можно добавить другие показатели или условия для вторичной проверки сигналов прорыва, такие как увеличение объема сделки, сокращение каналов буринга и т. д., чтобы уменьшить ложные прорывы.
Можно использовать стратегию процентного или динамического стоп-стоп, а не просто стоп-стоп с фиксированным количеством точек, чтобы лучше хеджировать риски односторонних действий.
Проверяйте сигналы вручную или входите только после подтверждения прорыва, чтобы избежать попадания в ловушку.
Эта стратегия в целом довольно проста и практична, с помощью двойной подвижной средней построен канал для определения направления тенденции; в то же время показатель RSI может эффективно фильтровать некоторые ложные прорывы. В отношении контроля риска, ограничение времени торговли и максимальный убыток могут контролировать общий риск.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-16 23:59:59
period: 1h
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/
// © SoftKill21
//@version=4
strategy(title="Moving Average", shorttitle="MA", overlay=true)
timeinrange(res, sess) => time(res, sess) != 0
len = input(5, minval=1, title="Length")
src = input(high, title="Source")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out = sma(src, len)
plot(out, color=color.white, title="MA", offset=offset)
len2 = input(5, minval=1, title="Length")
src2 = input(low, title="Source")
offset2 = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out2 = sma(src2, len2)
plot(out2, color=color.white, title="MA", offset=offset2)
length = input( 5 )
overSold = input( 10 )
overBought = input( 80 )
price = input(close, title="Source RSI")
vrsi = rsi(price, length)
longcond= close > out and close > out2 and vrsi > overBought
shortcont = close < out and close < out2 and vrsi < overSold
tp=input(150,title="tp")
sl=input(80,title="sl")
strategy.entry("long",1,when=longcond)
//strategy.close("long",when= close < out2)
strategy.exit("long_exit","long",profit=tp,loss=sl)
strategy.entry("short",1,when=shortcont)
//strategy.close("short",when=close >out)
strategy.exit("short_exit","short",profit=tp,loss=sl)
// maxOrder = input(6, title="max trades per day")
// maxRisk = input(2,type=input.float, title="maxrisk per day")
// strategy.risk.max_intraday_filled_orders(maxOrder)
// strategy.risk.max_intraday_loss(maxRisk, strategy.percent_of_equity)
// strategy.close_all(when =not timeinrange(timeframe.period, "0300-1100"))