Эта стратегия разработана на основе золотого креста и смертного креста двойных скользящих средних. Она длится, когда короткий период скользящей средней пересекает выше длинного периода скользящего среднего, и закрывает позицию, когда короткий период скользящей средней пересекает ниже длинного периода скользящего среднего. Стратегия проста и легко понять, подходит для новичков, чтобы научиться.
Стратегия основывается в основном на показателях sma (близкий, 14) и sma (близкий, 28).
Сначала определите короткие и длинные скользящие средние:
short_ma = sma(close, 14)
long_ma = sma(close, 28)
Затем определите вход и выход на основе золотого креста и креста смерти:
longCondition = crossover(short_ma, long_ma)
shortCondition = crossunder(short_ma, long_ma)
Пройти длинный курс, когда короткий MA пересекается над длинным MA:
strategy.entry("Buy", strategy.long, when = longCondition)
Закрыть позицию, когда короткий MA пересекает длинный MA:
strategy.close_all(when = shortCondition)
Логика проста и ясна, используя перекрестки двойных МА для определения входов и выходов.
Стратегия может быть оптимизирована в следующих аспектах:
Испытывать различные короткие и длинные периоды MA, такие как (5, 10), (10, 20), (20, 60) и т.д., чтобы найти оптимальную комбинацию.
Добавьте такие фильтры, как объем торговли, разрыв в ценах и т.д. вблизи перекрестков MA, чтобы избежать чрезмерной торговли на различных рынках.
Установите цену стоп-лосса или используйте MA как линию стоп-лосса для контроля одной сделки.
Добавьте дополнительные индикаторы, такие как MACD, KDJ и т. Д., Чтобы улучшить эффективность стратегии.
Найдите лучшие точки входа вблизи МА вместо того, чтобы входить прямо на перекрестке.
Стратегия двойного MA проста в использовании для новичков. Но она чувствительна к колебаниям рынка и имеет риск потерь. Мы можем улучшить ее, оптимизируя параметры, добавляя фильтры, включая стоп-лосс, комбинируя другие индикаторы и т. Д. Она может хорошо работать в сильных тенденциях, но должна использоваться с осторожностью или правильным стоп-лосом на рыночных диапазонах.
[/trans]
/*backtest start: 2023-08-21 00:00:00 end: 2023-09-20 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Binance","currency":"BTC_USDT"}] */ //@version=2 // strategy("Tester", pyramiding = 50, default_qty_type = strategy.cash, default_qty_value = 20, initial_capital = 2000, commission_type = strategy.commission.percent, commission_value = 0.25) minGainPercent = input(0.6) gainMultiplier = minGainPercent * 0.01 + 1 longCondition = crossover(sma(close, 14), sma(close, 28)) shortCondition = crossunder(sma(close, 14), sma(close, 28)) avg_protection = input(1) gain_protection = input(1) strategy.entry("Buy", strategy.long, when = longCondition and (avg_protection >= 1 ? (na(strategy.position_avg_price) ? true : close <= strategy.position_avg_price) : true)) strategy.close_all(when = shortCondition and (gain_protection >=1 ? (close >= gainMultiplier * strategy.position_avg_price) : true))