
Эта стратегия основана на настраиваемом индикаторном интеграторе, который позволяет отслеживать тенденции путем суммирования расстояния цены от скользящей средней и определяет направление ценового тренда.
Эта стратегия использует пользовательские индикаторы для суммирования расстояния между ценами и скользящими средними, и реализуется следующим образом:
Расчет цены относительно простой скользящей средней длины 200 k=close-sma ((close 200)
Определение накопительного цикла s=29, с накопительным суммированием значений k за последний период s: sum = 0, for i = 0 to s, sum := sum + k[i]
Когда sum>0 производится многозначный сигнал, когда sum производится пустой сигнал
При входе в позицию с плюсом, если сумма < 0, то она будет равной; при входе в позицию с минусом, если сумма > 0, то она будет равной
Эта стратегия определяет направление общей тенденции цены путем отслеживания суммы положительных и отрицательных отклонений от расстояния цены от скользящей средней, и при интегральном и положительном значении, считая, что цена находится в восходящей тенденции, следует держать многоглазые; при интегральном и отрицательном значении, считая, что цена находится в нисходящей тенденции, следует держать пустые головы.
Использование индивидуального индикатора, который позволяет эффективно определять направление ценовых тенденций
Применение интегрального мышления для накопления расстояния между ценами и скользящими средними позволяет повысить точность определения тенденций
Относительно простая логика, легко понятная реализация, удобная оптимизация улучшений
Возможность гибкой корректировки параметров интегрального цикла для оптимизации чувствительности интегратора к определению тенденций
Отзывы о хорошем результате, стабильный доход и практическое применение
Неправильная настройка интегрального цикла может привести к нечувствительной реакции интегратора и пропуску переломного момента в тренде
Неправильно настроенная длина скользящей средней может привести к ошибочному пониманию интегратором ценовых тенденций
Внезапные крупные события приводят к резким изменениям цен, которые могут привести к ошибочному сигналу в интеграторе.
Неправильный выбор торговых сортов, например, выбор слишком волатильных сортов, может привести к плохой эффективности интегратора
Решение риска:
Оптимизация параметров интегрального цикла, чтобы сделать интегратор более чувствительным к изменениям тенденции
Тестирование эффективности движущихся средних разных длин, выбор длины, которая позволяет эффективно определить тенденцию
Приостановка стратегии перед крупными событиями, чтобы избежать ошибочных сигналов, вызванных существенными изменениями цен
Выбор низко волатильных торговых разновидностей повышает эффективность интегратора
Можно рассмотреть возможность добавления других вспомогательных показателей, таких как RSI и т. Д., в основу интегратора для формирования комплексного суждения.
Можно изучать интегральные эффекты разных типов скользящих средних с расстоянием от цены
Можно попробовать автоматически оптимизировать параметры интегрального цикла, чтобы они могли адаптироваться к различным видам торгов
Можно включить индикатор объема торговли, чтобы избежать ошибочного сигнала интегратора при резких колебаниях цен
Можно автоматически оптимизировать параметры интегратора с помощью методов машинного обучения и т. д., чтобы сделать стратегию более грубой
Эта стратегия позволяет эффективно отслеживать тенденции путем определения направления ценовых тенденций с помощью пользовательских индикаторов, используя метод суммирования цены с расстоянием от скользящей средней. Логика стратегии проста, понятна, хорошо отслеживается.
/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true)
l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=29)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
sum := sum + k[i]
plot(a,color=yellow,linewidth=2,transp=0)
//bc = iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)
inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na
longCondition = sum>0
exitlong = sum<0
shortCondition = sum<0
exitshort = sum>0
strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = exitlong)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)
strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = exitshort)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)