В процессе загрузки ресурсов... загрузка...

Стратегия последовательности и структурного прорыва по различным тенденциям

Автор:Чао Чжан, Дата: 2024-11-29 15:27:01
Тэги:ЕМАРСИSLТПБОС

img

Обзор

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

Принципы стратегии

Стратегия использует три экспоненциальные скользящие средние (EMA25, EMA50 и EMA200) для определения рыночных тенденций. Ускорительный тренд определяется, когда цена выше EMA200, а EMA200 наклоняется вверх; обратное указывает на нисходящий тренд. После определения направления тренда стратегия ищет ценовые отступления к EMA25 или EMA50. Кроме того, стратегия требует подтверждения недавних максимумов или минимумов и положения закрывающихся цен относительно открывающихся цен для проверки направления импульса.

Преимущества стратегии

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

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

  1. Многочисленные условия могут привести к упущенным торговым возможностям
  2. Фиксированные цели стоп-лосса и прибыли могут не соответствовать всем рыночным условиям
  3. Может вызывать частые остановки на сильно волатильных рынках
  4. Требует постоянного мониторинга рынка для обеспечения соответствия параметров
  5. Может генерировать ложные сигналы на различных рынках

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

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

Резюме

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


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Custom Buy/Sell Strategy", overlay=true)

// Input parameters
ema25 = ta.ema(close, 25)
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
rsi = ta.rsi(close, 14)
sl_pips = 10
tp_pips = 15

// Convert pips to price units
sl_price_units = sl_pips * syminfo.pointvalue
tp_price_units = tp_pips * syminfo.pointvalue

// Define conditions for buy and sell signals
uptrend_condition = ema200 < close and ta.rising(ema200, 1)
downtrend_condition = ema200 > close and ta.falling(ema200, 1)

pullback_to_ema25 = low <= ema25
pullback_to_ema50 = low <= ema50
pullback_condition = pullback_to_ema25 or pullback_to_ema50

break_of_structure = high > ta.highest(high, 5)[1]
candle_imbalance = close > open

buy_condition = uptrend_condition and pullback_condition and rsi > 50 and break_of_structure and candle_imbalance

pullback_to_ema25_sell = high >= ema25
pullback_to_ema50_sell = high >= ema50
pullback_condition_sell = pullback_to_ema25_sell or pullback_to_ema50_sell

break_of_structure_sell = low < ta.lowest(low, 5)[1]
candle_imbalance_sell = close < open

sell_condition = downtrend_condition and pullback_condition_sell and rsi < 50 and break_of_structure_sell and candle_imbalance_sell

// Plot signals on the chart
plotshape(series=buy_condition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.large)
plotshape(series=sell_condition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.large)

// Calculate stop loss and take profit levels for buy signals
var float buy_sl = na
var float buy_tp = na

if buy_condition and strategy.position_size == 0
    buy_sl := close - sl_price_units
    buy_tp := close + tp_price_units
    strategy.entry("Buy", strategy.long)
    strategy.exit("TP/SL Buy", from_entry="Buy", limit=buy_tp, stop=buy_sl)
    label.new(bar_index, high, text="Entry: " + str.tostring(close) + "\nSL: " + str.tostring(buy_sl) + "\nTP: " + str.tostring(buy_tp), style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)

// Calculate stop loss and take profit levels for sell signals
var float sell_sl = na
var float sell_tp = na

if sell_condition and strategy.position_size == 0
    sell_sl := close + sl_price_units
    sell_tp := close - tp_price_units
    strategy.entry("Sell", strategy.short)
    strategy.exit("TP/SL Sell", from_entry="Sell", limit=sell_tp, stop=sell_sl)
    label.new(bar_index, low, text="Entry: " + str.tostring(close) + "\nSL: " + str.tostring(sell_sl) + "\nTP: " + str.tostring(sell_tp), style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)

// // Plot stop loss and take profit levels for buy signals
// if not na(buy_sl)
//     line.new(x1=bar_index, y1=buy_sl, x2=bar_index + 1, y2=buy_sl, color=color.red, width=1)
// if not na(buy_tp)
//     line.new(x1=bar_index, y1=buy_tp, x2=bar_index + 1, y2=buy_tp, color=color.green, width=1)

// // Plot stop loss and take profit levels for sell signals
// if not na(sell_sl)
//     line.new(x1=bar_index, y1=sell_sl, x2=bar_index + 1, y2=sell_sl, color=color.red, width=1)
// if not na(sell_tp)
//     line.new(x1=bar_index, y1=sell_tp, x2=bar_index + 1, y2=sell_tp, color=color.green, width=1)


Связанные

Больше