Эта стратегия сочетает в себе индикаторы SuperTrend и Fisher Transform для реализации относительно стабильной тенденции после долгосрочной торговой стратегии. Она генерирует сигналы покупки, когда индикатор SuperTrend дает сигнал покупки, а индикатор Fisher Transform падает ниже -2,5 и повышается. Стратегия правильно управляет позициями с остановкой потери и получением прибыли.
Индикатор SuperTrend используется для определения направления ценовой тенденции. Когда цена пересекает верхнюю полосу, это бычий сигнал; когда цена пересекает нижнюю полосу, это медвежий сигнал. Эта стратегия выдает сигнал покупки, когда SuperTrend бычий.
Индикатор Fisher Transform отражает влияние колебаний цен на психологию потребителей. Значения Fisher между (-2.5, 2.5) представляют собой нейтральный рынок, ниже -2.5 представляет собой панический рынок, а выше 2.5 представляет собой эйфорический рынок.
Стратегия правильно управляет позициями с стоп-лосом и прибылью. Стоп-лосс устанавливается по цене входа минус значение ATR, умноженное на мультипликатор ATR, а прибыль устанавливается по цене входа плюс значение ATR, умноженное на мультипликатор ATR. Амплитуда стоп-лосса больше амплитуды прибыли, отражающая идею контроля риска следующей стратегии.
Укажите размер позиции на основе ATR и суммы риска, чтобы риск на единицу не превышал установленную сумму риска.
Сочетание нескольких индикаторов позволяет избежать частой торговли, вызванной одним индикатором.
Установление правильного стоп-лосса и прибыли способствует отслеживанию тенденций долгосрочного держания, одновременно контролируя риски.
Использование управления суммой риска и минимального размера тика позволяет контролировать риск каждой сделки, избегая больших потерь, которые не доступны.
Торговые сигналы стабильны и подходят для долгосрочного хранения.
Большое пространство оптимизации для параметров индикатора. Период и мультипликатор SuperTrend's ATR и плавность Fisher's могут быть настроены в соответствии с различными продуктами и временными рамками для поиска оптимальной комбинации параметров.
В качестве стратегии, следующей за трендом, он будет накапливать небольшие потери в течение периодов, ограниченных диапазоном.
Когда рынок остается в одном состоянии в течение длительного времени, значения Фишера будут продолжать отклоняться от нейтральной зоны, в этом случае стратегия должна быть приостановлена.
Слишком близкий стоп-лосс может привести к преждевременному выходу. Период ATR и мультипликатор ATR должны быть установлены разумно, чтобы обеспечить достаточный буфер для стоп-лосса.
Игнорирование транзакционных издержек приведет к потере прибыльных сделок.
Для реализации своей стратегии требуется длительное участие на рынке, обеспечение достаточного капитала для поддержки долгосрочной торговли и сохранение стабильного мышления.
Настройка периода ATR, мультипликатора ATR для оптимизации стоп-лосса и получения прибыли.
Попробуйте различные параметры Фишера, такие как плавный период, чтобы найти более стабильные торговые сигналы.
Добавьте другие индикаторы в качестве фильтров, чтобы избежать неправильных сделок, когда рынок неопределен.
Испытывайте различные стратегии получения прибыли, такие как перемещение, частичное, ATR, чтобы улучшить рентабельность.
Оптимизировать стратегии управления капиталом, такие как фиксированная фракционная, формула Келли и т. д., чтобы увеличить соотношение доходность/риск.
Оптимизируйте затраты на транзакции, сохраняйте прибыльность для небольших позиций.
Эта стратегия объединяет преимущества SuperTrend, Fisher Transform и других индикаторов, чтобы сформировать стабильную тенденцию после долгосрочной торговой стратегии. Благодаря стоп-лосс, риск-менеджменту и управлению рисками можно достичь хорошего соотношения риска и вознаграждения. Стратегия нуждается в дальнейшей оптимизации параметров, фильтрации сигналов, управлении капиталом и т. д. для улучшения практической производительности. Но общая логика надежна и стоит практической проверки и постоянной оптимизации. Если правильно управлять мышлением прибыли и риска, стратегия имеет потенциал для достижения стабильной долгосрочной отдачи.
/*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)