Стратегия MACD + SMA 200

Автор:Чао Чжан, Дата: 2022-05-07 17:13:32
Тэги:MACD

Здесь представлена комбинация классического MACD (индикатора конвергенции дивергенции скользящей средней) с классической медленной скользящей средней SMA с периодом 200 вместе в качестве стратегии.

Эта стратегия длится, если гистограмма MACD и импульс MACD оба выше нуля, а быстрая скользящая средняя MACD выше медленной скользящей средней MACD. В качестве дополнительного длинного фильтра последняя цена должна быть выше SMA 200. Если обратная логика верна, стратегия становится короткой. В худшем случае существует максимальная потеря внутридневного капитала в размере 50% фильтра.

Сэкономишь еще 999 долларов с моей бесплатной стратегией.

Данная стратегия работает в обратном тесте на ежедневном графике Биткоина, а также на ежедневных графиках S&P 500 и Dow Jones Industrial Average. Текущая производительность на 30 ноября 2015 года на ежедневном CFD SPX500 составляет 68% прибыльности с 1970 года с коэффициентом прибыли 6,4. Текущая производительность на 30 ноября 2015 года на ежедневном индексе DOWI составляет 51% прибыльности с 1915 года с коэффициентом прибыли 10,8.

Все сделки связаны с высоким риском; прошлые результаты не обязательно указывают на будущие результаты. Гипотетические или имитируемые результаты деятельности имеют определенные врожденные ограничения. В отличие от фактической записи о результатах, имитируемые результаты не представляют собой фактическую торговлю. Кроме того, поскольку сделки на самом деле не были выполнены, результаты могут быть недостаточно или слишком компенсированы для воздействия, если таковые имеются, на определенные рыночные факторы, такие как отсутствие ликвидности.

обратная проверка

img


/*backtest
start: 2021-05-06 00:00:00
end: 2022-05-05 23:59:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("MACD + SMA 200 Strategy (by ChartArt)", shorttitle="CA_-_MACD_SMA_strategy", overlay=true)

// ChartArt's MACD + SMA 200 Strategy
//
// Version 1.0
// Idea by ChartArt on November 30, 2015.
//
// Here is a combination of the MACD with the
// slow moving average SMA 200 as a strategy.
//
// This strategy goes long if the MACD histogram
// and the MACD momentum are both above zero and
// the fast MACD moving average is above the
// slow MACD moving average. As additional long filter
// the recent price has to be above the SMA 200.
// If the inverse logic is true, the strategy
// goes short. For the worst case there is a
// max intraday equity loss of 50% filter.


// Input
source = input(close)
fastLength = input(12, minval=1, title="MACD fast moving average")
slowLength=input(26,minval=1, title="MACD slow moving average")
signalLength=input(9,minval=1, title="MACD signal line moving average")
veryslowLength=input(200,minval=1, title="Very slow moving average")
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Moving Averages?")
switch3=input(true, title="Enable Background Color?")

// Calculation
fastMA = ta.sma(source, fastLength)
slowMA = ta.sma(source, slowLength)
veryslowMA = ta.sma(source, veryslowLength)
macd = fastMA - slowMA
signal = ta.sma(macd, signalLength)
hist = macd - signal

// Colors
MAtrendcolor = change(veryslowMA) > 0 ? color.green : color.red
trendcolor = fastMA > slowMA and change(veryslowMA) > 0 and close > slowMA ? color.green : fastMA < slowMA and change(veryslowMA) < 0 and close < slowMA ? color.red : color.blue
bartrendcolor = close > fastMA and close > slowMA and close > veryslowMA and change(slowMA) > 0 ? color.green : close < fastMA and close < slowMA and close < veryslowMA and change(slowMA) < 0 ? color.red : color.blue
backgroundcolor = slowMA > veryslowMA and crossover(hist, 0) and macd > 0 and fastMA > slowMA and close[slowLength] > veryslowMA ? color.green : slowMA < veryslowMA and crossunder(hist, 0) and macd < 0 and fastMA < slowMA and close[slowLength] < veryslowMA ? color.red : na
//bgcolor(switch3?backgroundcolor:na,transp=80)
//barcolor(switch1?bartrendcolor:na)

// Output
F=plot(switch2?fastMA:na,color=trendcolor)
S=plot(switch2?slowMA:na,color=trendcolor,linewidth=2)
V=plot(switch2?veryslowMA:na,color=MAtrendcolor,linewidth=4)
//fill(F,V,color=gray)

// Strategy
buyprice = low
sellprice = high
cancelLong = slowMA < veryslowMA
cancelShort = slowMA > veryslowMA


if crossover(hist, 0) and macd > 0 and fastMA > slowMA and close[slowLength] > veryslowMA 
    strategy.entry("MACDLE", strategy.long, stop=buyprice, comment="Bullish")

else if crossunder(hist, 0) and macd < 0 and fastMA < slowMA and close[slowLength] < veryslowMA 
    strategy.entry("MACDSE", strategy.short, stop=sellprice, comment="Bearish")

//maxIdLossPcnt = input(50, "Max Intraday Loss(%)", type=float)
//strategy.risk.max_intraday_loss(maxIdLossPcnt, strategy.percent_of_equity)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Связанные

Больше