
Индексовый плавный случайный экзотический индикатор - это стратегия, основанная на традиционном случайном индикаторе, с добавлением индекса весового параметра, который может регулировать чувствительность случайного индикатора, в результате чего создается торговый сигнал. Когда индикатор перевернулся сверхпокупной зоны, он был в плюсе, а когда перевернулся сверхпродажной зоны, он был пустым.
В центре стратегии экзотического движения индекса сглаженного случайного индикатора лежит индексный вес параметров ex. Формула вычисления традиционного случайного индикатора:
s=100 * (close - 最低价) / (最高价 - 最低价)
После добавления индексных параметров, вычислительная формула становится:
exp= ex<10? (ex)/(10-ex) : 99
s=100 * (close - 最低价) / (最高价 - 最低价)
ks=s>50? math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50
:-math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50
Изменение значения exp изменяет влияние s на s, увеличение значения exp делает показатель менее чувствительным, уменьшение значения exp делает показатель более чувствительным.
Сигналы “купить” и “продать” появляются, когда ks переворачивает от зоны “перекупить”; сигналы “продать” появляются, когда ks переворачивает от зоны “перепродать”.
По сравнению с традиционными методами рандомизации, стратегию с индексами сглаженного случайного индикатора имеет следующие преимущества:
Также существуют следующие риски:
Индексы сглаженного случайного индикатора могут быть оптимизированы в следующих аспектах:
Индексы сглаживают случайные индикаторы, чтобы создать более надежный торговый сигнал. Эта стратегия может эффективно отслеживать долгосрочные тенденции, а также может быть оптимизирована для краткосрочных стратегий.
/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
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/
// © faytterro
//@version=5
strategy("Exponential Stochastic Strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
len=input.int(14, "length")
ex=input.int(2, title="exp", minval=1, maxval=10)
exp= ex<10? (ex)/(10-ex) : 99
s=100 * (close - ta.lowest(low, len)) / (ta.highest(high, len) - ta.lowest(low, len))
ks=s>50? math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50 :
-math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50
plot(ks, color= color.white)
bot=input.int(20)
top=input.int(80)
longCondition = ta.crossover(ks, bot) and bar_index>0
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
shortCondition = ta.crossunder(ks, top) and bar_index>0
if (shortCondition)
strategy.entry("My Short Entry Id", strategy.short)
// strategy.close("My Long Entry Id")
alertcondition(longCondition, title = "buy")
alertcondition(shortCondition, title = "sell")
h1=hline(top)
h2=hline(bot)
h3=hline(100)
h4=hline(0)
fill(h1,h3, color= color.rgb(255,0,0,200-top*2))
fill(h2,h4, color= color.rgb(0,255,0,bot*2))