
Это стратегия, которая сочетает в себе различные технические индикаторы для отслеживания стоп-порогов. Основные индикаторы, используемые для определения торговых сигналов и установления стоп-порогов, - это Supertrend, Stochastic, 200-дневная скользящая средняя и ATR. Эта стратегия подходит для торговли средне- и долгосрочными трендами и позволяет эффективно контролировать риск.
Когда линия Stochastic K падает из зоны сверхпокупа, Supertrend указывает на тенденцию вверх, цена пересекает 200-дневную подвижную среднюю, делайте больше; когда линия Stochastic K поднимается из зоны сверхпродажи, Supertrend указывает на тенденцию вниз, цена пересекает 200-дневную подвижную среднюю, делайте больше.
В частности, когда Stochastic K превышает 80, это считается сигналом о перекупке; когда Stochastic K превышает 20, это считается сигналом о перепродаже. Супертрендный индикатор определяет направление ценовой тенденции. Супертрендный индикатор показывает, что цена находится в восходящей тенденции, а Супертрендный индикатор показывает, что цена находится в нисходящей тенденции.
Условия для запуска множественного сигнала: Стохастическая линия K снижается сверхпокупной зоны (<80); Супертенд указывает на повышение; цена выше 200-дневного скользящего среднего значения.
Условия для запуска сигналов: Стохастическая линия K выходит из зоны суперпродажи (<20), Супертренд указывает на снижение, цена ниже 200-дневного скользящего среднего значения.
После входа в рынок, установить ATR-стоп, чтобы отслеживать риски управления ценовыми колебаниями. Многократный стоп - это минимальная цена, минус ATR-значение, умноженное на коэффициент; пустой стоп - это максимальная цена, плюс ATR-значение, умноженное на коэффициент.
Эта стратегия в сочетании с различными показателями, определяющими направление тренда и время входа, может эффективно отфильтровывать ложные сигналы. В то же время, использование ATR для динамического отслеживания стоп-лостов позволяет контролировать риск в зависимости от рыночных колебаний и максимально сохранять средства.
По сравнению со стратегией отслеживания тенденций, такой как простая движущаяся средняя, эта стратегия может лучше улавливать переломные моменты. По сравнению с одиночным стопом, динамический стоп ATR может быть более гибким. Таким образом, эта стратегия в целом имеет лучший риск-прибыль.
Эта стратегия основывается на оценке показателей, которые могут привести к убыткам из-за обратной операции, если они подадут ошибочный сигнал. Кроме того, при шокирующем движении стоп-убыток может быть часто вызван, что приводит к убыткам.
Кроме того, ATR-стоп, хотя и может корректироваться в зависимости от колебаний, не может полностью избежать вероятности того, что стоп будет пробит. В случае скачка цены, стоп-уведомление может быть непосредственно вызвано.
Эта стратегия может быть оптимизирована в следующих аспектах:
Настройка параметров индикатора, оптимизация точности сигналов о покупке и продаже. Например, Stochastic индикатор, который может тестировать различные параметры, или настройка ATR-периодов и кратных параметров индикатора Supertrend.
Испытать эффективность других методов остановки убытков. Например, можно попробовать адаптивные алгоритмы умных остановок, которые более гибки, чем остановка ATR, или рассмотреть возможность остановки, следующей за мобильной остановкой.
Добавление условий фильтрации, в более надежных случаях. Например, можно добавить такие фильтры, как энергетический показатель объема сделки, чтобы избежать ошибочного входа в соответствии с показателем, когда количество не хватает.
Оптимизация стратегий управления капиталом, например, динамическая корректировка позиций.
Stochastic Supertrend использует множество показателей для определения направления тренда и использует интеллектуальное отслеживание ATR для контроля риска. Эта стратегия может эффективно фильтровать шум отдельных входов с хорошим риском-доходностью. Мы можем постоянно оптимизировать эту стратегию, чтобы она могла адаптироваться к более сложным рыночным условиям, путем корректировки параметров, изменения методов остановки и добавления фильтрующих условий.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 00:00:00
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/
// © araamas
//@version=5
strategy("stoch supertrd atr 200ma", overlay=true, process_orders_on_close=true)
var B = 0
if strategy.position_size > 0 //to figure out how many bars away did buy order happen
B += 1
if strategy.position_size == 0
B := 0
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)
[supertrend, direction] = ta.supertrend(factor, atrPeriod)
bodyMiddle = plot((open + close) / 2, display=display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend = plot(direction < 0? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr)
ema = ta.ema(close, 200)
plot(ema, title="200 ema", color=color.yellow)
b = input.int(defval=14, title="length k%")
d = input.int(defval=3, title="smoothing k%")
s = input.int(defval=3, title="smoothing d%")
smooth_k = ta.sma(ta.stoch(close, high, low, b), d)
smooth_d = ta.sma(smooth_k, s)
////////////////////////////////////////////////////////////////////////////////
length = input.int(title="Length", defval=12, minval=1)
smoothing = input.string(title="Smoothing", defval="SMA", options=["RMA", "SMA", "EMA", "WMA"])
m = input(1.5, "Multiplier")
src1 = input(high)
src2 = input(low)
pline = input(true, "Show Price Lines")
col1 = input(color.blue, "ATR Text Color")
col2 = input(color.teal, "Low Text Color",inline ="1")
col3 = input(color.red, "High Text Color",inline ="2")
collong = input(color.teal, "Low Line Color",inline ="1")
colshort = input(color.red, "High Line Color",inline ="2")
ma_function(source, length) =>
if smoothing == "RMA"
ta.rma(source, length)
else
if smoothing == "SMA"
ta.sma(source, length)
else
if smoothing == "EMA"
ta.ema(source, length)
else
ta.wma(source, length)
a = ma_function(ta.tr(true), length) * m
x = ma_function(ta.tr(true), length) * m + src1
x2 = src2 - ma_function(ta.tr(true), length) * m
p1 = plot(x, title = "ATR Short Stop Loss", color=color.blue)
p2 = plot(x2, title = "ATR Long Stop Loss", color= color.blue)
///////////////////////////////////////////////////////////////////////////////////////////////
shortCondition = high < ema and direction == 1 and smooth_k > 80
if (shortCondition) and strategy.position_size == 0
strategy.entry("sell", strategy.short)
longCondition = low > ema and direction == -1 and smooth_k < 20
if (longCondition) and strategy.position_size == 0
strategy.entry("buy", strategy.long)
g = (strategy.opentrades.entry_price(0)-x2) * 2
k = (x - strategy.opentrades.entry_price(0)) * 2
if strategy.position_size > 0
strategy.exit(id="buy exit", from_entry="buy",limit=strategy.opentrades.entry_price(0) + g, stop=x2)
if strategy.position_size < 0
strategy.exit(id="sell exit", from_entry="sell",limit=strategy.opentrades.entry_price(0) - k, stop=x)
//plot(strategy.opentrades.entry_price(0) - k, color=color.yellow)
//plot(strategy.opentrades.entry_price(0) + g, color=color.red)