Эта стратегия использует скользящие средние, чтобы сформировать ценовой канал и генерировать сигналы, когда цена выходит из диапазонов канала.
Вычислите скользящие средние с такими вариантами, как SMA/EMA/WMA/RMA.
Верхняя полоса представляет собой определенный процентный прирост скользящей средней. Нижняя полоса представляет собой определенный процентный спад.
Пройти длинный курс выше верхней полосы, пройти короткий курс ниже нижней полосы.
Установите точки остановки и получения прибыли. Точка получения прибыли - это определенный процентный прирост входной цены. Точка остановки - это определенный процентный спад входной цены.
Просто внедрить определение тренда с использованием скользящих средних.
Параметры, поддающиеся регулированию, учитывают различные периоды хранения и рисковые предпочтения.
Факультативные длинные/короткие направления адаптируются к различным рыночным условиям.
Фиксированный процент стоп-лосса и прибыли позволяет контролировать.
Склонны попасть в ловушку, когда тенденция резко меняется.
Неправильная настройка параметров может привести к переоценке или отставанию.
Фиксированный процент стоп-лосса/прибыли не имеет гибкости.
Увеличение частоты торговли и комиссионных с двусторонней торговлей.
Оптимизировать параметры скользящей средней, чтобы сбалансировать отставание и шум.
Оптимизировать пропускную способность канала, чтобы соответствовать частоте волатильности рынка.
Проверяйте различные конфигурации стоп-лосса и прибыли.
Добавить индикаторы тренда и колебаний для оценки общих рыночных условий.
Используйте временные фильтры, чтобы избежать значительных последствий событий.
Стратегия достигает простого тренда, следующего по каналам скользящей средней, но требует более сильной оптимизации параметров и контроля рисков.
/*backtest start: 2023-08-17 00:00:00 end: 2023-09-16 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/ // © TaylorTneh //@version=4 // strategy("Moving Average Band Taylor V1",shorttitle="MA Band+",overlay=true,default_qty_type=strategy.cash,default_qty_value=1000,initial_capital=1000,currency=currency.USD,commission_value=.1) price = input(close, title="Source") mabtype = input(title="Moving Average Type", defval="RMA", options=["SMA", "EMA", "RMA", "WMA"]) malen = input(10, "MA Period : 10") magap = input(0.6, "Band Gap : 0.6", minval = -10, maxval = 10, step = 0.1) mabup = if mabtype == "SMA" sma(high, malen) else if mabtype == "EMA" ema(high, malen) else if mabtype == "WMA" wma(high, malen) else if mabtype == "RMA" rma(high, malen) mabdn = if mabtype == "SMA" sma(low, malen) else if mabtype == "EMA" ema(low, malen) else if mabtype == "WMA" wma(low, malen) else if mabtype == "RMA" rma(low, malen) upex = mabup * (1 + magap/100) dnex = mabdn * (1 - magap/100) plot(upex, "Upper MA Band", color.orange) plot(dnex, "Lower MA Band", color.orange) //-------------------------------------------- (Strategy) strategy.entry("Long", strategy.long, stop = upex) strategy.entry("Short", strategy.short, stop = dnex) //Long Only//strategy.entry("Long", strategy.long, stop = upex) //Long Only//strategy.exit("Short", stop = dnex) //Short Only//strategy.entry("Short", strategy.short, stop = dnex) //Short Only//strategy.exit("Long", stop = upex) //-------------------------------------------- (Take Profit & Stop Lose) stopPer = input(500.0, title='# Stop Loss %', type=input.float) / 100 takePer = input(500.0, title='# Take Profit %', type=input.float) / 100 //Determine where you've entered and in what direction longStop = strategy.position_avg_price * (1 - stopPer) shortStop = strategy.position_avg_price * (1 + stopPer) shortTake = strategy.position_avg_price * (1 - takePer) longTake = strategy.position_avg_price * (1 + takePer) if strategy.position_size > 0 strategy.exit(id="L-TP/SL", stop=longStop, limit=longTake) if strategy.position_size < 0 strategy.exit(id="S-TP/SL", stop=shortStop, limit=shortTake) //-------------------------------------------- (Sample Time Filter Strategy) //fromyear = input(2018, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") //toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") //frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") //tomonth = input(10, defval = 10, minval = 01, maxval = 12, title = "To Month") //fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") //today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //strategy.entry("Long", strategy.long, stop = upex, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) //strategy.entry("Short", strategy.short, stop = dnex, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) //--------------------------------------------