
Обзор
GM-8 & ADX двулинейная стратегия - это стратегия количественного трейдинга, которая сочетает в себе несколько технических показателей. Эта стратегия использует GM-8, ADX и второй EMA для выявления потенциальных сигналов о покупке и продаже. GM-8 используется для определения ценовой тенденции, ADX - для подтверждения силы тенденции, а EMA - для оказания помощи в определении направления тенденции.
Стратегический принцип
Принципы GM-8 & ADX двухуровневой стратегии следующие:
- Расчет GM-8, используемый для определения ценовой тенденции. Когда цена на закрытии проходит над/под средней линией GM-8, это указывает на то, что тенденция может быть обращена.
- Вычислить показатель ADX, используемый для подтверждения силы тренда. Когда показатель ADX выше порога (например, 34), показывающего сильную текущую тенденцию, можно рассмотреть вход.
- Расчет второго показателя EMA, используемого в качестве вспомогательного для определения направления тренда. Когда цена находится выше второго EMA, тенденция к увеличению; наоборот, тенденция к снижению.
- Если учесть GM-8, ADX и вторую EMA, то это дает сигнал “покупать или продать”:
- Продемонстрировать несколько сигналов: GM-8 средняя линия на текущей цене закрытия выше GM-8 и второй EMA, а также ADX выше отметки.
- Сигнал прорыва: текущая цена закрытия пробивает среднюю линию GM-8 и находится ниже GM-8 и второй EMA, в то время как ADX выше отметки.
- После того, как вы вышли на поле, появился сигнал “держать до выхода”:
- Пиндосигналы: по текущей цене закрытия пробивают среднюю линию GM-8 и ниже GM-8.
- Сигнал: GM-8 на средней линии по текущей цене закрытия и выше GM-8.
Стратегические преимущества
- В сочетании с несколькими показателями повышается надежность сигнала: стратегия комплексно учитывает индикаторы тренда (GM-8), силы тренда (ADX) и направления тренда (EMA), что позволяет эффективно отфильтровывать некоторые ложные сигналы.
- Настраиваемые параметры, высокая гибкость: параметры стратегии, такие как цикл GM-8, цикл ADX, порог ADX, второй цикл EMA, могут быть скорректированы в соответствии с рыночными характеристиками и личными предпочтениями для адаптации к различным стилям торговли.
- Ясная логика и легкость реализации: логика торговли в этой стратегии относительно проста и понятна, ее легко понять и реализовать, и она подходит для начинающих трейдеров.
Стратегический риск
- Задержка в распознавании тенденций: такие индикаторы, как GM-8, по своей сути являются задержанными индикаторами, и могут возникать задержки в распознавании тенденций, что приводит к упущению оптимального момента входа или увеличению убытков.
- Частые сделки: Эта стратегия содержит относительно много сигналов о покупке и продаже, что может привести к частым сделкам, увеличить стоимость комиссий и может плохо работать в нестабильных рынках.
- Сложность выбора параметров: стратегия включает в себя несколько параметров, и поиск оптимального параметрового сочетания требует большого количества обратной связи и аналитической работы, что может быть затруднительно для начинающих.
Направление оптимизации стратегии
- Введение дополнительных условий фильтрации: помимо GM-8, ADX и EMA, могут быть добавлены другие вспомогательные показатели, такие как трафик, волатильность и т. д., что еще больше улучшит качество сигнала.
- Оптимизация времени входа и выхода: можно рассмотреть возможность внедрения методов, таких как постепенное создание позиций и поэтапное остановка потерь, чтобы снизить риски по отдельным сделкам и повысить общую прибыльность.
- Динамическая корректировка параметров: в зависимости от изменения состояния рынка, динамическая корректировка параметров стратегии, например, использование более длинных циклов GM-8 в трендовых рынках, использование более коротких циклов GM-8 в волатильных рынках и т. д.
- Присоединение к управлению позициями: Контроль над размером позиций для каждой сделки в зависимости от состояния средств в счете, предпочтений риска и других факторов, чтобы избежать чрезмерной концентрации риска.
Подвести итог
GM-8 & ADX Двойная равнолинейная стратегия - классическая количественная торговая стратегия, использующая комбинацию нескольких технических показателей для идентификации сигналов покупки и продажи. Преимущества этой стратегии заключаются в том, что логика простая и четкая, сигналы относительно надежные и подходят для использования новичками. Но в то же время существуют такие риски, как задержка в идентификации тенденций, частые сделки и трудности в выборе параметров.
Исходный код стратегии
/*backtest
start: 2023-04-24 00:00:00
end: 2024-04-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("GM-8 and ADX Strategy with Second EMA", overlay=true)
// Input parameters
gm_period = input(15, title="GM-15 Period")
second_ema_period = input(59, title="Second EMA Period")
adx_period = input(8, title="ADX Period")
adx_threshold = input(34, title="ADX Threshold")
lot_size = input.float(0.4, title="Lot Size")
// Calculate the ADX manually
adx(high, low, close, length) =>
sum_truerange = 0.0
sum_plusDM = 0.0
sum_minusDM = 0.0
for i = 1 to length
truerange_calc = high[i] - low[i]
truerange_prev_close = high[i] - close[i-1]
truerange_close = low[i] - close[i-1]
truerange_calc := truerange_prev_close > truerange_calc ? truerange_prev_close : truerange_calc
truerange_calc := truerange_close > truerange_calc ? truerange_close : truerange_calc
sum_truerange := sum_truerange + truerange_calc
plusDM = high[i] - high[i-1] > low[i-1] - low[i] and high[i] - high[i-1] > 0 ? high[i] - high[i-1] : 0
sum_plusDM := sum_plusDM + plusDM
minusDM = low[i-1] - low[i] > high[i] - high[i-1] and low[i-1] - low[i] > 0 ? low[i-1] - low[i] : 0
sum_minusDM := sum_minusDM + minusDM
plusDI = sum_plusDM / sum_truerange * 100
minusDI = sum_minusDM / sum_truerange * 100
sumDI = plusDI + minusDI
adx_value = 100 * (plusDI - minusDI) / (sumDI == 0 ? 1 : sumDI)
// Calculate indicators
gm_8 = ta.sma(close, gm_period)
second_ema = ta.ema(close, second_ema_period)
adx_value = adx(high, low, close, adx_period)
// Define buy and sell conditions
buy_condition = ta.crossover(close, gm_8) and close > gm_8 and close > second_ema and adx_value > adx_threshold
sell_condition = ta.crossunder(close, gm_8) and close < gm_8 and close < second_ema and adx_value > adx_threshold
// Entry and exit logic
if (buy_condition)
strategy.entry("Buy", strategy.long, qty=lot_size)
if (sell_condition)
strategy.entry("Sell", strategy.short, qty=lot_size)
// Exit conditions
exit_buy_condition = ta.crossunder(close, gm_8) and close < gm_8
exit_sell_condition = ta.crossover(close, gm_8) and close > gm_8
if (exit_buy_condition)
strategy.close("Buy")
if (exit_sell_condition)
strategy.close("Sell")