
Это комплексная количественная торговая стратегия, которая сочетает в себе многократный анализ временных рамок и подтверждение технических показателей. В основе этой стратегии лежит оценка силы рыночных трендов с помощью пересечения состояния движущихся средних в разные временные периоды (H1, H4 и солнечная линия), а также подтверждение торговых сигналов в сочетании с RSI и MACD. Система оснащена совершенным механизмом управления капиталом, использует динамические стоп-лосс-стопы на основе ATR и реализует комбинированную стратегию выхода с частичной прибылью и отслеживанием стоп-стопов.
Основными принципами стратегии являются многомерный анализ и подтверждение тенденций рынка:
Система ранжирования тенденций многовременных рамок:
Условия приема:
Управление рисками и стратегии выхода:
Панель управления:
Подтверждение многомерных тенденций: С помощью интеграции информации о тенденциях трех временных периодов, стратегия позволяет более точно идентифицировать сильные тенденции и эффективно отфильтровывать ложные сигналы и шум. Более высокий вес присваивается более длительным временным периодам, что соответствует принципу приоритета средне-долгосрочных тенденций в техническом анализе.
Многократная проверка сигналов входаВ дополнение к рейтингу трендов, стратегия также требует, чтобы цена, RSI и MACD соответствовали определенным условиям для совершения сделки, что значительно повышает качество сигнала.
Умный риск-менеджмент:
Визуализация поддержки принятия решенийИнтуитивное отображение состояния тенденций и комплексных оценок по различным временным периодам на панели управления помогает трейдерам быстро оценивать состояние рынка и повышать уверенность в принятии решений.
Высокая степень адаптацииСтратегия может применяться для различных видов торговли, особенно в валютных парах и драгоценных металлах, которые отличаются заметным трендом.
Риск изменения трендаХотя стратегия повышает точность с помощью многократного анализа временных рамок, она может столкнуться с большим отступлением в случае реверса рыночной активности. Рекомендуется временно снизить позиции или приостановить торговлю до публикации важных экономических данных или событий.
Риски чрезмерной торговли: Когда рынок находится в диапазоне колебаний, трендовый балл может часто колебаться вблизи критических значений, что приводит к повторным входам и выходам. Решение заключается в добавлении дополнительного фильтра рынка колебаний, такого как доля реального колебания диапазона (ATR%) или показатель волатильности.
Параметр Чувствительность: Стратегическая производительность чувствительна к SMA-циклам ((50⁄200) и настройкам ATR-множителей. Рекомендуется использовать полную историческую обратную связь для оптимизации параметров и регулярно оценивать, подходят ли параметры для текущей рыночной среды.
Ограничения в управлении финансамиПримечание: существующие модели фиксированного риска могут быть недостаточно гибкими в экстремальных рыночных условиях. Можно рассмотреть возможность внедрения метода расчета масштаба позиции с корректировкой волатильности, автоматически уменьшая позиции в периоды высокой волатильности.
Риск задержки исполненияВ быстром рынке многократное подтверждение, зависящее от стратегии, может привести к задержке времени входа и упущению оптимальной цены. Чтобы снизить этот риск, можно рассмотреть возможность добавления ранних сигналов входа, основанных на ценовых действиях.
Улучшение механизма определения тенденций:
Система усиленного подтверждения сигнала:
Оптимизация механизма выхода:
Усиление управления рисками:
Повышение адаптивности системы:
Стратегия количественного трейдинга с многократным отслеживанием тенденций во времени и динамическим подтверждением является всеобъемлющим, системным торговым решением, которое создает высококачественные торговые сигналы путем интеграции информации о тенденциях и подтверждения технических показателей в течение нескольких временных периодов. Его наибольшим преимуществом является многоуровневый механизм идентификации тенденций и подтверждения сигналов, который эффективно повышает качество сигналов. В то же время, стратегия управления рисками и поэтапного получения прибыли, основанная на динамической волатильности рынка, обеспечивает надежную защиту для безопасности средств.
Основные риски стратегии заключаются в потенциальном отступлении и чувствительности параметров во время обратного тренда. С помощью предлагаемых направлений оптимизации, таких как улучшение механизмов распознавания тенденций, усиление системы подтверждения сигналов, оптимизация механизмов выхода, усиление управления рисками и повышение адаптивности системы, стратегия может еще больше повысить стабильность и прибыльность в различных рыночных условиях.
Для трейдеров, желающих поймать возможности среднесрочных и долгосрочных тенденций на рынках форекс и драгоценных металлов, это хорошая теоретическая и практическая стратегическая структура. После должного отсчета и оптимизации соответствующих параметров она может быть использована в качестве центрального компонента систематизированной торговли или в качестве отдельной торговой системы.
/*backtest
start: 2025-02-20 00:00:00
end: 2025-02-27 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("JolurocePro v2.0", overlay=true, margin_long=100, margin_short=100, pyramiding=1)
// 1. Configuración Principal
capitalMaximo = input(20000, "Capital Maximo (USD)")
lotajeBase = input.float(0.1, "Lotes por 1000 USD", minval=0.01)
paresPermitidos = input.string("XAUUSD,EURUSD,GBPUSD,GBPNZD,EURCAD,USDCAD,USDJPY", "Pares Permitidos")
// 2. Indicadores Multitemporales
[mediaRapidaH1, mediaLentaH1] = request.security(syminfo.tickerid, "60", [ta.sma(close, 50), ta.sma(close, 200)])
[mediaRapidaH4, mediaLentaH4] = request.security(syminfo.tickerid, "240", [ta.sma(close, 50), ta.sma(close, 200)])
[mediaRapidaD, mediaLentaD] = request.security(syminfo.tickerid, "D", [ta.sma(close, 50), ta.sma(close, 200)])
// 3. Calculo del Score
currentScore = (mediaRapidaH1 > mediaLentaH1 ? 1 : -1) + (mediaRapidaH4 > mediaLentaH4 ? 2 : -2) + (mediaRapidaD > mediaLentaD ? 3 : -3)
// 4. Panel de Control
var table panel = table.new(position.top_right, 4, 6, bgcolor=color.new(#2C3E50, 90))
if barstate.islast
// Encabezado
table.cell(panel, 0, 0, " JolurocePro ", width=4, text_color=color.white, text_size=size.large)
// Temporalidad H1
table.cell(panel, 0, 1, "H1", text_color=color.white)
table.cell(panel, 1, 1, str.tostring(math.round(mediaRapidaH1, 4)), text_color=mediaRapidaH1 > mediaLentaH1 ? #2ECC71 : #E74C3C)
table.cell(panel, 2, 1, str.tostring(math.round(mediaLentaH1, 4)), text_color=mediaRapidaH1 > mediaLentaH1 ? #2ECC71 : #E74C3C)
table.cell(panel, 3, 1, mediaRapidaH1 > mediaLentaH1 ? "▲" : "▼", text_color=mediaRapidaH1 > mediaLentaH1 ? #2ECC71 : #E74C3C)
// Temporalidad H4
table.cell(panel, 0, 2, "H4", text_color=color.white)
table.cell(panel, 1, 2, str.tostring(math.round(mediaRapidaH4, 4)), text_color=mediaRapidaH4 > mediaLentaH4 ? #2ECC71 : #E74C3C)
table.cell(panel, 2, 2, str.tostring(math.round(mediaLentaH4, 4)), text_color=mediaRapidaH4 > mediaLentaH4 ? #2ECC71 : #E74C3C)
table.cell(panel, 3, 2, mediaRapidaH4 > mediaLentaH4 ? "▲" : "▼", text_color=mediaRapidaH4 > mediaLentaH4 ? #2ECC71 : #E74C3C)
// Temporalidad Diaria
table.cell(panel, 0, 3, "Diario", text_color=color.white)
table.cell(panel, 1, 3, str.tostring(math.round(mediaRapidaD, 4)), text_color=mediaRapidaD > mediaLentaD ? #2ECC71 : #E74C3C)
table.cell(panel, 2, 3, str.tostring(math.round(mediaLentaD, 4)), text_color=mediaRapidaD > mediaLentaD ? #2ECC71 : #E74C3C)
table.cell(panel, 3, 3, mediaRapidaD > mediaLentaD ? "▲" : "▼", text_color=mediaRapidaD > mediaLentaD ? #2ECC71 : #E74C3C)
// Recomendacion
table.cell(panel, 0, 4, "Score Actual:", text_color=color.white)
table.cell(panel, 1, 4, str.tostring(currentScore), text_color=currentScore >= 3 ? #2ECC71 : currentScore <= -3 ? #E74C3C : #F1C40F, width=3)
table.cell(panel, 0, 5, "Senal:", text_color=color.white)
table.cell(panel, 1, 5, currentScore >= 3 ? "COMPRA" : currentScore <= -3 ? "VENTA" : "NEUTRO", text_color=currentScore >= 3 ? #2ECC71 : currentScore <= -3 ? #E74C3C : #F1C40F, width=3)
// 5. Indicadores Tecnicos
atrValor = ta.atr(14)
rsi = ta.rsi(close, 14)
macdLine = ta.ema(close, 12) - ta.ema(close, 26)
macdSignal = ta.ema(macdLine, 9)
// 6. Condiciones de Entrada
condicionLong = currentScore >= 3 and close > mediaRapidaH1 and rsi > 50 and macdLine > macdSignal
condicionShort = currentScore <= -3 and close < mediaRapidaH1 and rsi < 50 and macdLine < macdSignal
// 7. Gestion de Riesgo
posicionSize = math.min((strategy.equity / 1000) * lotajeBase, strategy.equity * 0.02)
slLong = close - (atrValor * 2)
tp1Long = close + (atrValor * 1)
tp2Long = close + (atrValor * 3)
slShort = close + (atrValor * 2)
tp1Short = close - (atrValor * 1)
tp2Short = close - (atrValor * 3)
// 8. Ejecucion de Ordenes
if condicionLong
strategy.entry("Long", strategy.long, qty=posicionSize)
strategy.exit("TP1", "Long", stop=slLong, limit=tp1Long, qty_percent=50)
strategy.exit("TP2", "Long", limit=tp2Long, trail_points=atrValor*10)
if condicionShort
strategy.entry("Short", strategy.short, qty=posicionSize)
strategy.exit("TP1", "Short", stop=slShort, limit=tp1Short, qty_percent=50)
strategy.exit("TP2", "Short", limit=tp2Short, trail_points=atrValor*10)
// 9. Senales Visuales
plotshape(condicionLong, "Compra", shape.triangleup, location.belowbar, color=#2ECC71, size=size.small)
plotshape(condicionShort, "Venta", shape.triangledown, location.abovebar, color=#E74C3C, size=size.small)