
Эта стратегия объединяет два показателя SuperTrend и Fisher Conversion, чтобы реализовать более стабильную стратегию торговли, следующую за длинной линией. Когда индикатор SuperTrend выдает сигнал покупки, а индикатор Fisher Conversion меньше чем -2.5 и поднимается, создается сигнал покупки.
Супертренд используется для определения направления ценовой тенденции. Когда цена выходит на траекторию, это является позитивным сигналом; когда цена выходит на траекторию, это является отрицательным сигналом.
Показатель преобразования Фишера отражает степень влияния ценовых колебаний на потребительскую психологию. Значение Фишера в диапазоне <= -2,5, <= 2,5, <= 2,5, <= 2,5, <= 2,5, <= 2,5, <= 2,5, <= 2,5, <= 2,5, <= 2,5, <= 2,5, <= 2,5, <= 2,5, <= 2,5, <= 2,5, <= 2,5, <= 2,5, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <= 2, <
Стратегия управляет позициями с разумным стоп-стопом. Стоп-стоп устанавливается как входная цена минус ATR и умножение ATR. Стоп-стоп устанавливается как входная цена плюс ATR и умножение ATR. Стоп-стоп больше, чем стоп-стоп.
При этом учитывается управление суммой риска. Размер позиции рассчитывается в соответствии с ATR и суммой риска, так что риск на единицу не превышает установленную сумму риска.
Объединение нескольких индикаторов, чтобы избежать частоты торговли по одному индикатору. Супертенд определяет направление тенденции, фишерский переход определяет психологическую сторону рынка, оба в сочетании образуют стабильный торговый сигнал.
Установка разумного стоп-стоп, способствующего удержанию тренда на долгой линии, одновременно контролируя риск.
Использование управления суммой риска и минимальных торговых единиц позволяет контролировать риск каждой сделки и избегать потерь, превышающих допустимую величину.
Торговые сигналы стабильны и подходят для длинных линий. Преобразование Фишера является гладким индикатором, который помогает фильтровать рыночный шум и избегать ложных сигналов.
Существует большое пространство для оптимизации параметров индикатора. Можно скорректировать ATR-циклические и умножающие параметры SuperTrend в зависимости от различных циклов различных сортов, а также сглаживающие параметры преобразования Fisher, чтобы найти оптимальную комбинацию параметров.
В качестве стратегии следования тренду, на этапе шокового сбора будет накапливаться небольшой убыток. Следует выбирать вид, в котором есть явная тенденция, и стратегию циклического функционирования.
Изменение Фишера не очень эффективно для экстремальных ситуаций. Когда рынок поддерживает определенное состояние в течение длительного времени, значение Фишера будет постоянно отклоняться от нейтрального диапазона, и в этот момент следует приостановить стратегию.
Слишком близкое к точке остановки может привести к слишком частому выходу. Следует разумно установить ATR-цикл и ATR-множественные параметры, чтобы обеспечить определенный буферный интервал между остановкой и остановкой.
Не обращая внимания на стоимость сделки, можно получить небольшую прибыль и убыток от сделки. Следует учитывать уровень сделок по разновидностям и соответствующим образом корректировать запасную маржу.
Для того, чтобы выявить стратегическое преимущество, требуется длительное участие в рынке. Следует обеспечить достаточное количество средств для поддержки долгосрочных сделок, а также поддерживать душевное спокойствие.
Настройка параметров ATR-циклов и ATR-множителей для оптимизации стоп-стоп-магнитности. Параметры могут быть оптимизированы с помощью отслеживания данных, а также могут быть динамически оптимизированы.
Попытайтесь использовать различные параметры преобразования Фишера, такие как сглаживание циклов, в поисках более стабильных торговых сигналов.
В сочетании с другими показателями в качестве фильтра, чтобы избежать ошибочной торговли при неопределенности крупной биржи. Можно использовать среднюю линию, волатильность и т. Д. для определения движения крупной биржи.
Тестирование различных стратегий остановки, таких как мобильная остановка, групповая остановка, остановка ATR, чтобы повысить рентабельность.
Оптимизированные стратегии управления капиталом, такие как фиксированная пропорциональность управления капиталом, формула Келли и т.д., приводят к более высокой прибыли, чем убыткам.
Оптимизация расходов на торговлю, чтобы обеспечить прибыльность после торговли с небольшими позициями.
Эта стратегия объединяет преимущества таких показателей, как SuperTrend и Fisher Conversion, чтобы сформировать стабильную тенденцию, следующую за долгосрочной торговой стратегией. С помощью стоп-стоп-контроля и контроля риска можно получить лучшую доходность риска. Стратегия должна быть дополнительно оптимизирована в таких аспектах, как параметры, фильтрующие сигналы и управление капиталом, чтобы получить более сильную показательную эффективность.
/*backtest
start: 2023-10-26 00:00:00
end: 2023-11-02 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend and Fisher_LONG", overlay=true)
//This block is for Fisher Transformation Calculation.
len = input.int(10, minval=1, title="Length") // Length is optional. 10 is good but is up to you.
high_ = ta.highest(hl2, len)
low_ = ta.lowest(hl2, len)
round_(val) => val > .99 ? .999 : val < -.99 ? -.999 : val
value = 0.0
value := round_(.66 * ((hl2 - low_) / (high_ - low_) - .5) + .67 * nz(value[1]))
fish1 = 0.0
fish1 := .5 * math.log((1 + value) / (1 - value)) + .5 * nz(fish1[1])
fish2 = fish1[1]
// Buy condition for Fisher transformation.
buy_signal = (fish1 < -2.5) and (fish1 > fish2)
durum = 0 //just for the situation.
if (buy_signal)
durum := 1 // now it changes from 0 to 1.
// Supertrend indicator inputs and calculations (same as in the indicator)
Periods = input(title='ATR Period', defval=10) // period is 10, but you can change it
src = input(hl2, title='Source')
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=2) //atr multiplier is important. it is 2 for this strategy but you can find another for best performance
RiskAmount = input.float(title='Risk Amount ($)', defval=10.0, minval=0.0, step=1.0) // ıf you use risk-reward method, risk is 10$ for each position. you can also change it
changeATR = input(title='Change ATR Calculation Method ?', defval=true)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
// Calculate position size based on risk amount
riskPerContract = atr * Multiplier
contracts = RiskAmount / (riskPerContract * syminfo.mintick)
//short signal condition
buySignal = trend == 1 and trend[1] == -1 and durum == 1
plotshape(buySignal, title='Buy Signal', location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
// variables
var float entryPrice = na
var float stopLoss = na
var float takeProfit = na
var float atr1 = na
var float takeProfit2 = na
var float takeProfit3 = na
//it calculates the stop level and reward profit levels using atr.
if (buySignal)
entryPrice := close
atr1 := atr
stopLoss := entryPrice - atr1 * Multiplier
contracts := entryPrice / (entryPrice - stopLoss) * RiskAmount / entryPrice
takeProfit := entryPrice + atr1 * Multiplier
takeProfit2 := entryPrice + 2 * atr1 * Multiplier
takeProfit3 := entryPrice + 3 * atr1 * Multiplier
if (buySignal)
strategy.entry("Buy", strategy.long, qty=contracts)
//
if (close <= stopLoss)
strategy.close("Buy", comment="Stop Loss Hit")
else if (close >= takeProfit)
strategy.close("Buy", comment="Take Profit Hit")
// draw the stop, entry and profit levels
plot(stopLoss, title="Stop Loss", color=color.red, linewidth=1, style=plot.style_linebr)
plot(entryPrice, title="Entry Price", color=color.orange, linewidth=1, style=plot.style_linebr)
plot(takeProfit, title="Take Profit", color=color.green, linewidth=1, style=plot.style_linebr)
plot(takeProfit2, title="Take Profit 2", color=color.blue, linewidth=1, style=plot.style_linebr)
plot(takeProfit3, title="Take Profit 3", color=color.purple, linewidth=1, style=plot.style_linebr)