
Эта стратегия создает торговый сигнал на основе пересечения 9-дневных и 15-дневных скользящих средних, а также некоторых типичных внутридневных форм K-линий. При прохождении медленной линии на быстрой линии и удовлетворении определенных угловых условий и конкретных форм K-линий, делайте больше; при прохождении медленной линии под быстрой линией, делайте пустоту.
Когда короткосрочный скользящий средний ((9-дневная линия) наносится на более длительный скользящий средний ((15-дневная линия), это означает, что краткосрочные цены имеют большую динамику роста, что делает больше; когда короткосрочный скользящий средний проходит под долгосрочным скользящим средним, это означает, что краткосрочные цены имеют большую динамику падения, что делает больше. В то же время, требуется угол скользящего среднего больше 30 градусов, чтобы обеспечить достаточную динамику роста или падения.
Эта стратегия в основном использует функции отслеживания тенденций в движущихся средних и особенности некоторых форм K-линий, которые могут быть адаптированы к различным видам рынка с помощью параметров.
Эта стратегия, в сочетании с показателями движущихся средних и суточных K-линейных форм, эффективно отфильтровывает часть шума, делая торговые сигналы более надежными. Особенно, добавленные суждения об угловой убылью могут гарантировать, что сигналы появляются только тогда, когда движение цены достаточно большое, чтобы избежать несущественных ложных сигналов. Кроме того, стратегия устанавливает уровни стоп-лосса и стоп-стоп, которые автоматически уменьшают максимальные потери в единицах и обеспечивают прибыльный вывод. Эти шаги повышают стабильность и прибыльность стратегии.
Подвижная средняя, как индикатор, отслеживающий тенденции, может уловить среднесрочные и долгосрочные ценовые тенденции. В то время как внутридневная форма K-линии отражает соотношение сил участников рынка в краткосрочной перспективе, в сочетании с использованием можно получить торговые подсказки на разных временных масштабах. Эта стратегия объединяет преимущества различных показателей суждения и должна иметь лучший эффект в реальной торговле.
Основные риски, связанные с этой стратегией, следующие:
Риск ложного прорыва. Когда рынок находится в состоянии шокирующей сборки, может возникнуть многократное пересечение скользящих средних, при этом большая часть сигналов, исходящих от пересечения, является ложными. В это время невозможно получить прибыль, а вместо этого может быть подстроено.
Риск обратного тренда. Движущаяся средняя, используемая в качестве индикатора для отслеживания тренда, не может дать предварительного сигнала в случае обратного тренда.
Риски оптимизации параметров. Различные рыночные сорта имеют разную адаптацию к параметровым настройкам. Если не делать корректировки, то прямое использование некоторой комбинации параметров может привести к убыткам. Это требует поиска оптимальных параметров с помощью обратной связи и моделирования на практике.
В целом, эта стратегия может создавать определенные риски ложных сигналов и преследования высоких и низких уровней в отсутствие оценки рыночной среды. Эти риски можно еще больше оптимизировать и уменьшить, добавив суждение о тенденциях и количественных характеристиках на крупном уровне.
Эта стратегия может быть улучшена в следующих аспектах:
Повышение оценки тенденций на большом уровне. Например, проверка того, находится ли длинная линия в восходящем или нисходящем канале, чтобы избежать обратной торговли.
Анализ количественных показателей. Например, показатели тарифов для коммуникаций позволяют определить направление покупательской силы, избегая простого дефолта цен на акции с высокой тарифой или дефолта акций с низкой тарифой.
В сочетании с основными условиями акций. Выбор отдельных акций с ожидаемыми положительными результатами и стабильным ростом доходов может повысить шансы на победу.
Оптимизируйте комбинацию параметров системы движущихся средних. Можно попробовать средние линии с различными длинами циклов или добавить три средних линии, пяти средних линий и т. Д., Чтобы создать более широкую торговую систему с возможностью корректировки параметров.
Тестирование различных параметров стоп-стоп. В соответствии с результатами обратной проверки устанавливается коэффициент лизинга, чтобы получить оптимальный риск-прибыль.
Оптимизация этих направлений позволит ожидать значительного дальнейшего повышения уровня прибыли и стабильности стратегии.
В целом, эта стратегия объединяет в себе преимущества движущихся средних показателей и некоторых внутридневных форм K-линий, более строгих условий при выпуске торговых сигналов, может отфильтровывать большое количество шума, что значительно улучшает качество сигналов, проходящих через них. В то же время, с помощью установки стоп-лосс и стоп-стопов, чтобы контролировать максимальные потери и достигнутую прибыль. Это рекомендуемая стратегия стабильной количественной торговли.
Следующий шаг - оптимизация параметров, чтобы еще больше повысить выигрышность и прибыльность стратегии. Добавление большего количества показателей также может усилить устойчивость всей торговой системы. После строгого реального моделирования стратегия может стать эффективным количественным инструментом для получения стабильной прибыли.
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Moving Average Crossover Strategy with Candlestick Patterns", overlay=true)
// Define input parameters
fast_length = input(9, "Fast MA Length")
slow_length = input(15, "Slow MA Length")
stop_loss_percent = input(0.25, "Stop Loss (%)")
target_percent = input(0.25, "Target (%)")
angle_threshold = input(30, "Angle Threshold (degrees)")
// Calculate moving averages
fast_ma = sma(close, fast_length)
slow_ma = sma(close, slow_length)
// Define candlestick patterns
is_pin_bar() =>
pin_bar = abs(open - close) > 2 * abs(open[1] - close[1])
high_tail = max(open, close) - high > abs(open - close) * 1.5
low_tail = low - min(open, close) > abs(open - close) * 1.5
pin_bar and high_tail and low_tail
is_marubozu() =>
marubozu = abs(open - close) > abs(open[1] - close[1]) * 0.75
no_upper_shadow = high == max(open, close)
no_lower_shadow = low == min(open, close)
marubozu and no_upper_shadow and no_lower_shadow
is_full_body() =>
full_body = abs(open - close) > abs(open[1] - close[1]) * 0.95
full_body
// Plot moving averages
plot(fast_ma, color=color.blue, title="Fast MA")
plot(slow_ma, color=color.red, title="Slow MA")
// Calculate angle of slow moving average
ma_angle = abs(180 * (atan(slow_ma[1] - slow_ma) / 3.14159))
// Generate buy/sell signals based on angle condition and candlestick patterns
buy_signal = crossover(fast_ma, slow_ma) and ma_angle >= angle_threshold and (is_pin_bar() or is_marubozu() or is_full_body())
sell_signal = crossunder(fast_ma, slow_ma)
// Calculate stop-loss and target levels
stop_loss_level = close * (1 - stop_loss_percent / 100)
target_level = close * (1 + target_percent / 100)
// Execute trades based on signals with stop-loss and target
strategy.entry("Buy", strategy.long, when=buy_signal)
strategy.exit("Exit", "Buy", stop=stop_loss_level, limit=target_level)
// Plot buy/sell signals on chart (optional)
plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// Plot angle line
hline(angle_threshold, "Angle Threshold", color=color.black, linestyle=hline.style_dashed)