
Эта стратегия основана на показателях SSL-каналов, а также включает в себя такие функции, как ATR-стоп, ATR-стоп и управление средствами, чтобы более полно протестировать эффективность стратегии SSL-каналов.
SSL-канальный показатель состоит из средней линии каналов и полосы каналов. Средняя линия каналов представляет собой простое движущееся среднее, разделенное на верхнюю и нижнюю полосы, обычно принимая простое движущееся среднее в период высоких точек в качестве верхней полосы, а в период низких точек в качестве нижней полосы.
Когда цена приближается к верхней части канала, она рассматривается как перекуп, а когда цена приближается к нижней части канала, она рассматривается как перепродажа. Когда цена прорывает канал, это сигнализирует об изменении тренда.
В этой политике параметры индикатора SSL-каналов установлены так:ssl_period=16。
ATR означает среднюю реальную волну. Она может быть использована для оценки волатильности рынка и определения стоп-стоп-позиции.
Эта стратегия использует параметрыatr_period=14В сочетании сatr_stop_factor=1.5иatr_target_factor=1.0В качестве динамического кратного стопа и стоп-стопа реализуется стоп-стоп, основанный на волатильности рынка.
Кроме того, для адаптации к различным видам, в стратегию включены:two_digitПараметры, определяющие контракт с 2-битной точностью (например, золото, иена), позволяют гибко регулировать стоп-стоп.
Управление капиталом в основном осуществляется через параметрыposition_size(Фиксированные позиции) иrisk(процент рискового отверстия) реализация.use_mm=trueВключается модуль “Управление деньгами”.
Основная цель управления капиталом - контролировать размер позиции при открытии каждой позиции. При использовании фиксированной процентной модели риска, рисковый пробел, рассчитанный в соответствии с учетными записями, будет переведен в количество контрактов, что позволит сдерживать убытки.
Эти риски можно уменьшить следующими способами:
Эта стратегия может быть оптимизирована в следующих аспектах:
С помощью тестирования и оптимизации системы эта стратегия может стать надежной и стабильной системой количественных сделок.
Эта стратегия объединяет три механизма: определение тенденций по показателям SSL-каналов, установление ATR-стоп-лост-стоп и управление рисками по управлению деньгами. Эффективность этой стратегии может быть проверена с помощью всесторонней обратной связи и может служить основополагающей структурой для оптимизации количественной стратегии торговли. В то же время в этой стратегии есть место для улучшения, например, добавление других показателей фильтрации, параметров оптимизации и расширения функций.
/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 2h
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/
// © comiclysm
//@version=4
strategy("SSL Backtester", overlay=false)
//--This strategy will simply test the effectiveness of the SSL using
//--money management and an ATR-derived stop loss
//--USER INPUTS
two_digit = input(false, "Check this for 2-digit pairs (JPY, Gold, Etc)")
ssl_period = input(16, "SSL Period")
atr_period = input(14, "ATR Period")
atr_stop_factor = input(1.5, "ATR Stop Loss Factor")
atr_target_factor = input(1.0, "ATR Target Factor")
use_mm = input(true, "Check this to use Money Management")
position_size = input(1000, "Position size (for Fixed Risk)")
risk = input(0.01, "Risk % in Decimal Form")
//--INDICATORS------------------------------------------------------------
//--SSL
sma_high = sma(high, ssl_period)
sma_low = sma(low, ssl_period)
ssl_value = 0
ssl_value := close > sma_high ? 1 : close < sma_low ? -1 : ssl_value[1]
ssl_low = ssl_value < 0 ? sma_high : sma_low
ssl_high = ssl_value < 0 ? sma_low : sma_high
//--Average True Range
atr = atr(atr_period)
//--TRADE LOGIC----------------------------------------------------------
signal_long = ssl_value > 0 and ssl_value[1] < 0
signal_short = ssl_value < 0 and ssl_value[1] > 0
//--RISK MANAGMENT-------------------------------------------------------
strategy.initial_capital = 50000
balance = strategy.netprofit + strategy.initial_capital
risk_pips = atr*10000*atr_stop_factor
if(two_digit)
risk_pips := risk_pips / 100
risk_in_value = balance * risk
point_value = syminfo.pointvalue
risk_lots = risk_in_value / point_value / risk_pips
final_risk = use_mm ? risk_lots * 10000 : position_size
//--TRADE EXECUTION-----------------------------------------------------
if (signal_long)
stop_loss = close - atr * atr_stop_factor
target = close + atr * atr_target_factor
strategy.entry("Long", strategy.long, final_risk)
strategy.exit("X", "Long", stop=stop_loss, limit=target)
if (signal_short)
stop_loss = close + atr * atr_stop_factor
target = close - atr * atr_target_factor
strategy.entry("Short", strategy.short, final_risk)
strategy.exit("X", "Short", stop=stop_loss, limit=target)
//--PLOTTING-----------------------------------------------------------
plot(ssl_low, "SSL", color.red, linewidth=1)
plot(ssl_high, "SSL", color.lime, linewidth=1)