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

Стратегия перекрестного использования скользящей средней

Автор:Чао Чжан, Дата: 2024-06-14 15:48:32
Тэги:SMAМ.А.

img

Обзор

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

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

  1. Вычислить две простые скользящие средние (SMA) с разными периодами, а именно 9 и 21.
  2. Создать сигнал покупки, когда быстрая скользящая средняя (9-периодическая) пересекается над медленной скользящей средней (21-периодической) снизу, и создать сигнал продажи, когда быстрая скользящая средняя пересекается ниже медленной скользящей средней сверху.
  3. Вычислить сумму риска для каждой сделки на основе 1% от остатка счета, затем определить количество акций, чтобы купить на основе суммы риска и текущего ценового диапазона (высокий - низкий).
  4. Если стратегия в настоящее время выгодна, увеличьте размер позиции следующей сделки на 10%; если она находится в убытке, уменьшите размер позиции следующей сделки на 10%.
  5. Исполнение ордера на покупку при появлении сигнала на покупку и исполнение ордера на продажу при появлении сигнала на продажу.

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

  1. Простота: стратегия основана на классическом принципе перекрестного использования скользящей средней, который является простым, легким в понимании и реализации.
  2. Следование тенденции: используя две скользящие средние с разными периодами, стратегия может эффективно отслеживать средне- и долгосрочные ценовые тенденции, что делает ее подходящей для торговли в соответствии с тенденцией.
  3. Динамическое размещение позиций: путем корректировки размера позиции на основе прибыли и убытка стратегия соответствующим образом увеличивает размер позиции при прибыльности и уменьшает его при убытке, что помогает контролировать риск и улучшать доходность.
  4. Широкое применение: стратегия может применяться на различных финансовых рынках и торговых инструментах, таких как акции, фьючерсы, форекс и т. Д.

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

  1. Частая торговля: поскольку стратегия основана на краткосрочных крестовых сигналах скользящей средней, она может привести к частой торговле, увеличению затрат на транзакции и риску скольжения.
  2. Плохая производительность на нестабильных рынках: на нестабильных рынках без тренда стратегия может генерировать больше ложных сигналов, что приводит к потерям.
  3. Риск оптимизации параметров: эффективность стратегии зависит от выбора периодов скользящей средней, и разные параметры могут привести к разным результатам, что создает риск перенапряжения во время оптимизации параметров.

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

  1. Ввести индикаторы подтверждения тренда: в дополнение к сигналам перекрестного движения скользящей средней, ввести другие индикаторы подтверждения тренда, такие как MACD, ADX и т. д., чтобы отфильтровать некоторые ложные сигналы и улучшить качество сигнала.
  2. Оптимизировать правила размещения позиций: действующие правила размещения позиций относительно просты.
  3. Включить механизмы остановки потерь и получения прибыли: Добавить в стратегию правила остановки потерь и получения прибыли для контроля максимальных потерь и максимальной прибыли для каждой сделки, улучшая соотношение риска и прибыли стратегии.
  4. Оптимизация адаптивных параметров: внедрить механизм адаптивной оптимизации параметров для автоматической корректировки параметров стратегии на основе изменений рыночных условий, повышая надежность и адаптивность стратегии.

Резюме

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


/*backtest
start: 2024-06-06 00:00:00
end: 2024-06-13 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © okolienicholas

//@version=5
strategy("Moving Average Crossover Strategy", overlay=true)

// Input parameters
fast_length = input(9, title="Fast MA Length")
slow_length = input(21, title="Slow MA Length")
source = close
account_balance = input(100, title="Account Balance") // Add your account balance here

// Calculate moving averages
fast_ma = ta.sma(source, fast_length)
slow_ma = ta.sma(source, slow_length)

// Plot moving averages
plot(fast_ma, color=color.blue, title="Fast MA")
plot(slow_ma, color=color.red, title="Slow MA")

// Generate buy/sell signals
buy_signal = ta.crossover(fast_ma, slow_ma)
sell_signal = ta.crossunder(fast_ma, slow_ma)

// Plot buy/sell signals
plotshape(buy_signal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(sell_signal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")

// Calculate the risk per trade
risk_per_trade = account_balance * 0.01

// Calculate the number of shares to buy
shares_to_buy = risk_per_trade / (high - low)

// Calculate the profit or loss
profit_or_loss = strategy.netprofit

// Adjust the position size based on the profit or loss
if (profit_or_loss > 0)
    shares_to_buy = shares_to_buy * 1.1 // Increase the position size by 10% when in profit
else
    shares_to_buy = shares_to_buy * 0.9 // Decrease the position size by 10% when in loss

// Execute orders
if (buy_signal)
    strategy.entry("Buy", strategy.long, qty=shares_to_buy)
    
if (sell_signal)
    strategy.entry("Sell", strategy.short, qty=shares_to_buy)


Связанные

Больше