
Стратегия представляет собой комплексную торговую систему, объединяющую различные технические показатели, в основном объединяющие движущуюся среднюю величину призрака, движущийся осциллятор и уровень фибоначевого отклонения для построения целостной торговой структуры. Стратегия использует движущуюся среднюю величину призрака для определения направления рыночной тенденции, в сочетании с движущейся величиной для проверки силы сигнала и использования уровня фибоначевой величины для автоматической установки целей и цены стоп-лосс для автоматизации управления риском. Кроме того, стратегия включает в себя торговый прибор в режиме реального времени, который предоставляет трейдерам ключевую информацию и поддержку в принятии решений.
Призрачные скользящие средние (GMA): Это ключевой компонент стратегии, который обеспечивает более чувствительный сигнал ценового тренда, чем традиционные скользящие средние, с помощью специальных методов расчета. Конкретная формула расчета: сначала вычислить дважды полуциклические взвешенные скользящие средние (WMA) за вычетом полных циклов взвешенных скользящих средних, а затем снова применить к результатам один цикл в качестве квадратного корня первоначальных циклов.
Показатель динамики: Стратегия использует разницу между текущей ценой и ценой перед определенным периодом для измерения рыночной динамики и сглаживает ее с помощью индекса скользящей средней (EMA), а затем унифицирует ее с помощью стандартной разницы, что делает сигнал динамики более стабильным и надежным.
Оценка тенденций: Для определения рыночной тенденции используется скольжение призрачных скользящих средних, положительное скольжение означает тенденцию к росту, а отрицательное скольжение - тенденцию к снижению.
Целевые цены и остановка Fibonacci: Стратегия основана на расчете максимальной и минимальной цены за период обратного отсчета на уровне Фибоначчи, используя 0,618, 1,0 и 1,618 в качестве целевой цены и 0,382 в качестве уровня остановки убытков соответственно.
Условия приема:
Двойное подтверждение тенденций и динамики: С помощью комбинации движущихся средних и динамических индикаторов, стратегия позволяет эффективно уменьшить ложные сигналы, которые будут срабатывать только в том случае, если оба индикатора будут выполнять условия одновременно.
Самостоятельное управление рисками: Автоматическая установка целевой цены и точки остановки с использованием уровней Фибоначчи. Этот метод автоматически корректируется в зависимости от волатильности рынка, обеспечивая соответствующий коэффициент возврата риска в различных рыночных условиях.
Визуализированный торговый приборВстроенный в стратегию торговый прибор отображает интуитивно ключевую информацию о состоянии тренда, торговых сигналах, причинах входа, а также о целевой цене и стоп-лосте, что помогает трейдерам быстро принимать решения.
Приспосабливаться к рыночным колебаниямПризрачные скользящие средние более чувствительны к ценовым изменениям, чем традиционные скользящие средние, и могут быстрее распознавать сдвиги в тренде, уменьшая задержку.
Ясные правила торговлиСтратегия обеспечивает четкие условия входа и выхода, снижает субъективность суждений и помогает трейдерам сохранять дисциплину.
Риски чрезмерной торговли: На рынке волатильности, цены могут часто пересекать движущиеся средние, что приводит к избытку торговых сигналов. Решение заключается в добавлении дополнительных фильтрующих условий, таких как торговля только в определенных тенденциях или увеличение цикла подтверждения сигналов.
Остановка риска: Фиксированный фибоначевский стоп может быть недостаточно гибким в очень волатильных рынках, что может привести к тому, что стоп будет слишком мягким или слишком жестким. Рекомендуется изменять фибоначевский коэффициент в зависимости от динамики различных рыночных условий.
Параметр ЧувствительностьВысокая эффективность стратегии зависит от множества параметров, таких как длина GMA, динамический цикл и т. Д. Разные рынки и временные рамки могут требовать различные комбинации параметров. Рекомендуется проводить обратную проверку, чтобы найти оптимальные параметры.
Задержка в оценке тенденций: Несмотря на то, что Phantom Moving Averages более чувствительны, чем традиционные Moving Averages, все же существует определенная задержка, и некоторые возможности могут быть упущены в начале тренда. Для раннего обнаружения изменений в тренде можно рассмотреть комбинацию показателей с более короткими периодами.
Отклонение от отслеживания: Фибоначевы уровни стратегии основываются на исторических данных, и возможны форвардные отклонения (forward bias). В реальном трейдинге следует обращать внимание на это и рассматривать возможность использования более динамичного метода расчета критических уровней.
Самостоятельная оптимизация параметров: В настоящее время стратегия использует фиксированные параметры, а также может вводить адаптивные механизмы, которые автоматически регулируют длину GMA и динамический цикл в зависимости от волатильности рынка, чтобы стратегия могла работать оптимально в различных рыночных условиях.
Анализ многовременных рамокВ дополнение к анализу на несколько временных рамок, сделки выполняются только тогда, когда сигналы на нескольких временных рамах совпадают, что значительно повышает качество сигналов и уровень успешности.
Динамическая остановка целиПри использовании фиксированного уровня Фибоначчи в качестве целевой цены, можно рассмотреть возможность корректировки целевой цены в зависимости от динамики волатильности рынка или применения стратегии отслеживания стоп-стопов для максимизации потенциала прибыли.
Анализ объемов сделок: В сочетании с объемом сделок, чтобы проверить эффективность ценовых тенденций, можно уменьшить ложные сигналы прорыва, совершая сделки только при одновременном подтверждении цены и объема сделок.
Машинное обучениеВнедрение алгоритмов машинного обучения для оптимизации условий входа и выбора параметров, прогнозирование наилучших торговых возможностей и стратегий управления рисками с помощью моделей обучения историческим данным.
Интеграция эмоциональных показателейВключение индикаторов рыночных настроений, таких как индекс волатильности или другие производные индикаторы, для корректировки стратегического поведения в экстремальных рыночных условиях и повышения способности к управлению рисками.
Целевая и стоп-стоп стратегия Фибоначчи в сочетании с движущимися средними фиктивными движущимися средними является полноценной системой технического анализа торговли, которая обеспечивает систематизированную торговую структуру путем объединения нескольких показателей и технологий. Основные преимущества этой стратегии заключаются в механизме двойного подтверждения тенденций и динамики, а также в системе самостоятельного управления рисками, основанной на рыночной волатильности. Несмотря на то, что существуют некоторые неотъемлемые риски, такие как чувствительность к параметрам и потенциальная чрезмерная торговля, предлагаемые направления оптимизации могут значительно повысить устойчивость и эффективность стратегии.
/*backtest
start: 2024-04-02 00:00:00
end: 2025-04-01 00:00:00
period: 3d
basePeriod: 3d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Ghost MA + Momentum + Fib TP/SL + Dashboard", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === INPUTS ===
src = input(close, "Source")
gmaLength = input.int(20, "GMA Length")
momentumLength = input.int(20, "Momentum Length")
momentumSmoothing = input.int(10, "Momentum Smoothing")
swingLookback = input.int(50, "Fibonacci Swing Lookback")
// === GHOST MOVING AVERAGE ===
gma = ta.wma(2 * ta.wma(src, gmaLength / 2) - ta.wma(src, gmaLength), math.round(math.sqrt(gmaLength)))
plot(gma, title="Ghost MA", color=color.teal, linewidth=2)
// === MOMENTUM GHOST OSCILLATOR ===
momentum = src - src[momentumLength]
smoothMomentum = ta.ema(momentum, momentumSmoothing)
normalizedMomentum = smoothMomentum / ta.stdev(momentum, momentumLength)
// === MARKET TREND ===
gmaSlope = gma - gma[1]
marketTrend = gmaSlope > 0 ? "UPTREND" : "DOWNTREND"
// === SWING POINTS FOR FIBONACCI ===
highestHigh = ta.highest(high, swingLookback)
lowestLow = ta.lowest(low, swingLookback)
fibRange = highestHigh - lowestLow
entryPrice = close
// === FIBONACCI TP/SL LEVELS ===
tp1_long = entryPrice + (fibRange * 0.618)
tp2_long = entryPrice + (fibRange * 1.0)
tp3_long = entryPrice + (fibRange * 1.618)
sl_long = entryPrice - (fibRange * 0.382)
tp1_short = entryPrice - (fibRange * 0.618)
tp2_short = entryPrice - (fibRange * 1.0)
tp3_short = entryPrice - (fibRange * 1.618)
sl_short = entryPrice + (fibRange * 0.382)
// === STRATEGY CONDITIONS ===
longCond = ta.crossover(src, gma) and normalizedMomentum > 0
shortCond = ta.crossunder(src, gma) and normalizedMomentum < 0
if (longCond)
strategy.entry("Long", strategy.long)
strategy.exit("TP/SL Long", from_entry="Long", limit=tp1_long, stop=sl_long)
if (shortCond)
strategy.entry("Short", strategy.short)
strategy.exit("TP/SL Short", from_entry="Short", limit=tp1_short, stop=sl_short)
// === SIGNAL LABELS ON CHART ===
if (longCond)
label.new(bar_index, low, "BUY\n" + str.tostring(close, "#.##"), style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)
if (shortCond)
label.new(bar_index, high, "SELL\n" + str.tostring(close, "#.##"), style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
// === ALERT CONDITIONS ===
alertcondition(longCond, title="Buy Signal", message="Buy Signal Triggered: GMA Cross Up + Momentum Positive")
alertcondition(shortCond, title="Sell Signal", message="Sell Signal Triggered: GMA Cross Down + Momentum Negative")
// === DASHBOARD ===
var table dash = table.new(position.top_right, 1, 8, border_width=1)
if bar_index % 5 == 0
signal = longCond ? "BUY" : shortCond ? "SELL" : "WAIT"
reason = longCond ? "GMA↑ & Momentum+" : shortCond ? "GMA↓ & Momentum−" : "No Clear Signal"
timeframe = timeframe.period
sigColor = signal == "BUY" ? color.new(color.green, 20) : signal == "SELL" ? color.new(color.red, 20) : color.new(color.gray, 60)
trendColor = marketTrend == "UPTREND" ? color.new(color.green, 80) : color.new(color.red, 80)
table.cell(dash, 0, 0, "📊 GHOST TRADING DASHBOARD", text_color=color.black, bgcolor=color.lime, text_size=size.large)
table.cell(dash, 0, 1, "Trend: " + marketTrend, text_color=color.black, bgcolor=trendColor, text_size=size.normal)
table.cell(dash, 0, 2, "Timeframe: " + timeframe, text_color=color.black, bgcolor=color.purple, text_size=size.normal)
table.cell(dash, 0, 3, "Signal: " + signal + " @ " + str.tostring(close, "#.##"), text_color=color.black, bgcolor=sigColor, text_size=size.normal)
table.cell(dash, 0, 4, "Reason: " + reason, text_color=color.black, bgcolor=color.new(color.yellow, 60), text_size=size.normal)
table.cell(dash, 0, 5, signal == "BUY" ? "TP1: " + str.tostring(tp1_long, "#.##") +
" | TP2: " + str.tostring(tp2_long, "#.##") +
" | TP3: " + str.tostring(tp3_long, "#.##")
: signal == "SELL" ? "TP1: " + str.tostring(tp1_short, "#.##") +
" | TP2: " + str.tostring(tp2_short, "#.##") +
" | TP3: " + str.tostring(tp3_short, "#.##") : "-",
text_color=color.black, bgcolor=color.new(color.green, 80), text_size=size.normal)
table.cell(dash, 0, 6, "Reentry: " + str.tostring(gma, "#.##"), text_color=color.black, bgcolor=color.new(color.orange, 80), text_size=size.normal)
table.cell(dash, 0, 7, signal == "BUY" ? "SL: " + str.tostring(sl_long, "#.##") : signal == "SELL" ? "SL: " + str.tostring(sl_short, "#.##") : "-", text_color=color.black, bgcolor=color.new(color.red, 70), text_size=size.normal)