Стратегия многовременного стохастического осциллятора и торговая система подтверждения тренда

STOCH MTF HH/LL SL/TP KDJ
Дата создания: 2025-02-19 10:53:25 Последнее изменение: 2025-02-19 10:53:25
Копировать: 5 Количество просмотров: 413
1
Подписаться
1617
Подписчики

Стратегия многовременного стохастического осциллятора и торговая система подтверждения тренда

Обзор

Стратегия является многочасовой системой торговли, основанной на стохастическом, в сочетании с подтверждением тенденции и анализом ценовой конфигурации. Стратегия использует три временных цикла: 15 минут, 30 минут и 60 минут, чтобы идентифицировать торговые возможности с помощью перекрестных сигналов случайных индикаторов и подтверждения конфигурации более высоких высоких и более низких низких. В то же время, стратегия использует фиксированные процентные установки для остановки потерь и получения прибыли для контроля риска и блокировки прибыли.

Стратегический принцип

Основная логика стратегии включает в себя следующие ключевые части:

  1. Анализ движения рынка с использованием трех случайных индикаторов с различными временными периодами (15 минут, 30 минут, 60 минут)
  2. На основном временном периоде (15 минут), когда K-линия прорывает D-линию и находится в зоне перепродажи, в сочетании с более высокой низкой формой подтверждает сигнал покупки
  3. Аналогичным образом, когда K-линия опускается ниже D-линии и находится в зоне перекупа, в сочетании с более низкой формой вершины подтверждается сигнал продажи
  4. Управление рисками и доходами на каждой сделке с использованием 3,7%-го стоп-лосса и 1,8%-го прибыли

Стратегические преимущества

  1. Многочасовой анализ дает более полное представление о рынке и позволяет лучше отфильтровывать ложные сигналы.
  2. Анализ ценовой динамики в сочетании с повышением надежности торговых сигналов
  3. Фиксированные параметры управления рисками делают результаты торгов более стабильными и контролируемыми
  4. Стратегии, применимые в условиях высокой волатильности рынка
  5. Автоматизированные сигналы входа и выхода снижают эмоциональное воздействие субъективных суждений

Стратегический риск

  1. На нестабильных рынках могут возникать частые ложные сигналы
  2. Фиксированная стоп-лосс и прибыль настройки могут не подходить для всех рыночных условий
  3. Сигналы с большим временным периодом могут иметь задержку
  4. В быстрых рынках стоп-сет может закрепить прибыль слишком рано
  5. Необходимо большое управление капиталом, чтобы выдержать стоп-лосс в размере 3,7%

Направление оптимизации стратегии

  1. Можно рассматривать возможность корректировки стоп-лосс и прибыльных целей в зависимости от динамики рыночных колебаний
  2. Повышение показателя загрузки в качестве вспомогательного подтверждающего сигнала
  3. Введение индикатора интенсивности тренда для улучшения показателей на рынке волатильности
  4. Оптимизировать настройки весов между несколькими временными циклами
  5. Рассматривается возможность добавления индикаторов рыночных настроений для повышения точности сигналов.

Подвести итог

Это полная торговая система, объединенная с многократным анализом временных циклов и подтверждением тенденций. Благодаря совместному использованию случайных индикаторов и ценовых паттернов, можно лучше улавливать переломные моменты рынка. Фиксированные параметры управления риском, хотя и простые, гарантируют согласованность торгов.

Исходный код стратегии
/*backtest
start: 2025-01-19 00:00:00
end: 2025-02-18 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Swing Fairas Oil", overlay=true)

// Pilih Timeframe Utama & 2 Timeframe Konfirmasi
tf_main = "15"
tf_mid = "30"
tf_high = "60"

// Parameter Stochastic
length = input(15, title="Stochastic Length")
k_smooth = input(4, title="K Smoothing")
d_smooth = input(5, title="D Smoothing")

// Overbought & Oversold Levels
overbought = input(85, title="Overbought Level")
oversold = input(15, title="Oversold Level")

// Stochastic pada Timeframe Utama
k1 = ta.sma(ta.stoch(close, high, low, length), k_smooth)
d1 = ta.sma(k1, d_smooth)

// Stochastic pada Timeframe Menengah
k2 = request.security(syminfo.tickerid, tf_mid, ta.sma(ta.stoch(close, high, low, length), k_smooth))
d2 = request.security(syminfo.tickerid, tf_mid, ta.sma(k2, d_smooth))

// Stochastic pada Timeframe Tinggi
k3 = request.security(syminfo.tickerid, tf_high, ta.sma(ta.stoch(close, high, low, length), k_smooth))
d3 = request.security(syminfo.tickerid, tf_high, ta.sma(k3, d_smooth))

// **Konfirmasi Higher High & Lower Low**
hh = ta.highest(high, 5)   // Highest High dalam 5 candle terakhir
ll = ta.lowest(low, 5)     // Lowest Low dalam 5 candle terakhir

// **Kondisi Buy**
confirm_buy = ta.crossover(k1, d1) and k1 < oversold  // Stochastic Bullish
higher_low = low > ta.lowest(low[1], 5)  // Higher Low terbentuk

longCondition = confirm_buy and higher_low

// **Kondisi Sell**
confirm_sell = ta.crossunder(k1, d1) and k1 > overbought  // Stochastic Bearish
lower_high = high < ta.highest(high[1], 5)  // Lower High terbentuk

shortCondition = confirm_sell and lower_high

// Stop Loss & Take Profit
sl = input(3.7, title="Stop Loss (%)") / 100
tp = input(1.8, title="Take Profit (%)") / 100

longStopLoss = close * (1 - sl)
longTakeProfit = close * (1 + tp)

shortStopLoss = close * (1 + sl)
shortTakeProfit = close * (1 - tp)

// Eksekusi Order
if longCondition
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell TP/SL", from_entry="Buy", stop=longStopLoss, limit=longTakeProfit)

if shortCondition
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover TP/SL", from_entry="Sell", stop=shortStopLoss, limit=shortTakeProfit)

// Label Buy & Sell
if longCondition
    label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, size=size.small, style=label.style_label_down)

if shortCondition
    label.new(bar_index, high, "SELL", color=color.red, textcolor=color.white, size=size.small, style=label.style_label_up)

// Label Stop Loss & Take Profit
if longCondition
    label.new(bar_index, longStopLoss, "SL: " + str.tostring(longStopLoss, "#.##"), color=color.red, textcolor=color.white, size=size.small, style=label.style_label_left)
    label.new(bar_index, longTakeProfit, "TP: " + str.tostring(longTakeProfit, "#.##"), color=color.green, textcolor=color.white, size=size.small, style=label.style_label_left)

if shortCondition
    label.new(bar_index, shortStopLoss, "SL: " + str.tostring(shortStopLoss, "#.##"), color=color.red, textcolor=color.white, size=size.small, style=label.style_label_left)
    label.new(bar_index, shortTakeProfit, "TP: " + str.tostring(shortTakeProfit, "#.##"), color=color.green, textcolor=color.white, size=size.small, style=label.style_label_left)