
Эта стратегия определяет ценовые тенденции путем расчета перекрестков двух равновесных линий и в сочетании с определенными параметрическими ограничениями для подачи сигналов покупки и продажи. Она состоит из трех основных частей: во-первых, для определения ценовых тенденций путем расчета перекрестков быстрых средних линий и медленных средних линий; во-вторых, в сочетании с определенными параметрическими ограничениями для предотвращения ошибочных сделок; и, в-третьих, для контроля риска с использованием стоп-стопов.
В основе этой стратегии лежит вычисление быстрых и медленных средних линий. При наличии параметров быстрых средних линий, которые составляют половину цикла средних линий, реакция на изменения цены более чувствительна. При наличии параметров медленных средних линий, которые составляют половину цикла средних линий, реакция на изменения цены более устойчива.
Кроме того, стратегия также устанавливает определенные параметры для предотвращения ошибочных сделок. В случае, если устанавливается порог принятия решений, торговые сигналы появляются только в том случае, если средне-медленное расхождение превышает определенную величину. Параметры доверия используются для фильтрации колебаний и появляются только в том случае, если ценовые колебания достигают определенного уровня.
В конце концов, стратегия использует остановку с остановкой для контроля риска. Если открытая прибыль меньше, чем остановка, выходите из позиции, если она превышает остановку, выходите из позиции, эффективно контролируя одиночные потери.
Наибольшее преимущество этой стратегии заключается в том, что она сочетает в себе равнолинейный индикатор для определения ценовых тенденций и волатильных характеристик. Двулинейный перекрестный индикатор для определения ценовых тенденций является классическим эффективным методом технического индикатора, который позволяет точно улавливать тенденции после оптимизации параметров. Волатильный индикатор confidence эффективно фильтрует колебания рынка и избегает частых ошибочных торгов.
Кроме того, настройка параметров, таких как принятие решений о приостановке и остановке, может значительно снизить риск торговли и избежать преследования высоких и низких уровней.
Основной риск этой стратегии заключается в возможности ошибочного сигнала от двухместных средних линий. Быстрые средние и медленные средние линии являются взвешенными движущимися средними, медленно реагируют на внезапные события и могут пропустить краткосрочный ценовой поворот.
Кроме того, неправильная установка стоп-стоп может увеличить риск. Слишком высокие и слишком низкие стоп-стоп-стоп могут привести к потере больше, чем ожидалось. Это требует установки разумных параметров в зависимости от характеристик и колебаний разных сортов.
Эта стратегия может быть оптимизирована в следующих аспектах:
оптимизация среднелинейных циклов с установкой адаптивных среднелиний, позволяющих лучше моделировать колебания цен в разных циклах;
Установка механизма динамического отслеживания остановочных потерь, позволяющего динамически изменять остановочные точки, с учетом волатильности в режиме реального времени;
Добавление моделей машинного обучения для определения направления ценовых тенденций, использование большего количества исторических данных для определения текущего ценового направления, уменьшение ошибочных сигналов.
Эта стратегия в целом является классической, простой и эффективной стратегией торговли тенденциями. Используется двойная равнолинейная перекрестная определение тенденции, параметры настройки для контроля риска, конфигурируемая, применяется для многообразных торгов. Если можно ввести более интеллектуальные методы суждения, такие как машинное обучение, общая эффективность будет лучше, и это заслуживает дальнейшего изучения.
/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
// Any timeFrame ok but good on 15 minute & 60 minute , Ichimoku + Daily-Candle_cross(DT) + HULL-MA_cross + MacD combination 420 special blend
strategy("Trade Signal", shorttitle="Trade Alert", overlay=true )
keh=input(title="Double HullMA",defval=14, minval=1)
dt = input(defval=0.0010, title="Decision Threshold (0.001)", type=float, step=0.0001)
SL = input(defval=-10.00, title="Stop Loss in $", type=float, step=1)
TP = input(defval=100.00, title="Target Point in $", type=float, step=1)
ot=1
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green
confidence=(request.security(syminfo.tickerid, '5', close[1])-request.security(syminfo.tickerid, '60', close[1]))/request.security(syminfo.tickerid, '60', close[1])
conversionPeriods = input(9, minval=1, title="Conversion Line Periods")
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods")
displacement = input(26, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
LS=close, offset = -displacement
MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(26)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength)
aMACD = ema(MACD, MACD_Length)
closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
strategy.close("Long")
closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
strategy.close("Short")
longCondition = n1>n2 and strategy.opentrades<ot and confidence>dt and close>n2 and leadLine1>leadLine2 and open<LS and MACD>aMACD
if (longCondition)
strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and strategy.opentrades<ot and confidence<dt and close<n2 and leadLine1<leadLine2 and open>LS and MACD<aMACD
if (shortCondition)
strategy.entry("Short",strategy.short)
//alerts
alertcondition(closelong, title='Close Buy Position', message='Close Buy Position')
alertcondition(closeshort, title='Close Short Position', message='Close Short Position')
alertcondition(longCondition, title='Buy Signal', message='Buy Signal Alert')
alertcondition(shortCondition, title='Sell Signal', message='Sell Signal Alert')
//a1=plot(n1,color=c)
//a2=plot(n2,color=c)plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
//plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 4)
plot(conversionLine, color=#0496ff, title="Conversion Line")
plot(baseLine, color=#991515, title="Base Line")
plot(close, offset = -displacement, color=#459915, title="Lagging Span")
p1=plot (leadLine1, offset = displacement, color=green, title="Lead 1")
p2=plot (leadLine2, offset = displacement, color=red, title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)
// remove the "//" from before the plot script if want to see the indicators on chart