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

Автор:Чао Чжан, Дата: 2024-02-18 15:11:04
Тэги:

img

Обзор

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

Логика стратегии

Эта стратегия использует две экспоненциальные скользящие средние (EMA) с разными периодами. EMA1 - это краткосрочный MA с периодом, установленным на 9, в то время как EMA2 - это долгосрочный MA с периодом, установленным на 21. Стратегия генерирует сигналы покупки, когда EMA1 пересекает EMA2, и сигналы продажи, когда он пересекает ниже.

Таким образом, стратегия использует возможность отслеживания тренда скользящих средних для захвата сигналов, когда цена начинает новый трендовый путь. Например, когда цена поднимается с падения, краткосрочный MA будет расти раньше, чем долгосрочный MA. Пересечение выше генерирует ранний сигнал о том, что начинается восходящий тренд.

Плюсы

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

Минусы

Наибольший риск заключается в том, что при резких колебаниях цен отстающий характер МА может привести к отсутствию лучших точек входа или выхода.

Для смягчения рисков, параметры, такие как периоды MA могут быть соответствующим образом скорректированы, или дополнительные фильтры могут быть добавлены.

Улучшение

Пространство оптимизации в основном заключается в следующих аспектах:

  1. Оптимизировать параметры периода MA для поиска оптимальной комбинации
  2. Добавление других показателей в качестве фильтров для повышения надежности сигнала
  3. Настройка адаптивных параметров в соответствии с различными продуктами и режимами рынка
  4. Сочетание показателей объема для определения точных точек входа
  5. Оптимизировать механизмы стоп-лосса

Резюме

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


/*backtest
start: 2024-01-18 00:00:00
end: 2024-02-17 00:00:00
period: 1h
basePeriod: 15m
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/
// © technicalTruff99446

//@version=4
strategy("AhmetMSA", overlay=true, initial_capital = 10000, commission_value = 0.002, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, calc_on_order_fills = true)
//2. DEĞERDEN SONRA GEÇMİŞ HESAPLAMA DEĞERİ, KOMİSYON ORANI, PARANIN TAMAMI, DEĞERLERİ EKLEMDİ

emaShPD = input (title="EMA KISA PERİYOT", defval=9, minval=1)
emaLngPD = input (title="EMA UZUN PERİYOT", defval=21, minval=1)

//input   DEĞİŞKEN DEĞER ATAMA

ema1 = ema (close,emaShPD)
ema2 = ema (close,emaLngPD)

//EMALAR ARASINI BOYAMA upTrend downTrend
upTrend   = plot (ema1, color=#4DFF00, linewidth=2, title= "EMA KISA", transp=0)
downTrend = plot (ema2, color=#FF0C00, linewidth=3, title= "EMA UZUN", transp=0)
//linewidth ÇİZGİ KALINLIĞI
//title     İSİM VERME

//BACKTESTİN BAŞLANGIÇ TARİHİNİ BELİRLEME
yearin = input(2024, title = "Backtest Başlangıç Tarihi")
//longCondition = crossover(ema1, ema2)
//shortCondition = crossover(ema2, ema1)
buy = crossover(ema1, ema2) and yearin >= year
sell = crossover(ema2, ema1) and yearin >= year
//ta.crossunder  KESİŞİM KODU

//Barları BOYAMA
barbuy  = ema1 >= ema2
barsell = ema2 <  ema1




//AL SAT AŞK KUTUCUKLU EKRANA YAZMA
plotshape(buy, title = "AL AŞK", text = 'AL AŞK', style = shape.labelup, location = location.belowbar, color= color.green,   textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "SAT AŞK", text = 'SAT AŞK', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

//Barları BOYAMA KOŞULU
barcolor(barbuy? #4DFF00: barsell? #FF0C00: #FF0C00)


fill(upTrend, downTrend, color = ema1 >= ema2?#4DFF00 : #FF0C00, transp = 80, title = "bgcolor")

//longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
//shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
//14 GÜNLÜĞÜN KAPANIŞDEĞERİNİN 28 GÜNLÜK KAPANIŞ DEĞERİNİ KESMESİ KOŞULU



if (buy)
    strategy.entry("AL AŞK", strategy.long)


if (sell)
    strategy.entry("SAT AŞK", strategy.short)


Больше