
Эта стратегия использует два индикатора силы: скопление скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления скопления.
Расчет MACD-индикаторов, включая быструю, медленную и сигнальную линии. Крушение быстрой и медленной линий является сигналом о покупке и продаже.
Рассчитывается RSI, устанавливается предел зоны сверхпокупа и зоны сверхпродажи.
В сочетании с MACD-сигналом и RSI-сигналом, сверхпокупка и сверхпродажа определяются для определения условий покупки и продажи:
Условия покупки: прорыв медленной линии в MACD-шпиле, в то время как RSI только что вернулся из сверхпродажной зоны, с обратным сигналом;
Условия распродажи: MACD пересекает медленную линию под быстрой линией, образуя мертвую вилку, в то время как RSI входит в зону сверхпокупок, имея обратный сигнал.
Индекс MACD позволяет определить тенденцию цен на акции и время их покупки и продажи. Индекс RSI позволяет определить, когда они перекуплены и перепроданы.
Используя одновременно два индикатора фильтрации сигналов, можно избежать ложного сигнала, вызванного одним индикатором.
MACD, в сочетании с RSI, может быть куплен до перелома и продан после перелома, чтобы поймать возможность перелома.
Стратегия работает с умеренной частотой, позволяет отслеживать тренды и ловить обратные, гибко применяется.
MACD-индикаторы могут создавать ложные сигналы в условиях колебаний. Параметры RSI должны быть оптимизированы, иначе ложные сигналы могут появиться.
Стоимость акций может сильно колебаться в краткосрочной перспективе, и превышение стоп-лосс приводит к убыткам.
Необходимо оптимизировать параметры RSI и MACD, иначе может возникнуть избыток или недостаток сигналов.
В реальной торговле требуется строгое управление капиталом и контроль риска.
Оптимизируйте скоростную среднюю линию MACD-параметров, чтобы найти оптимальную комбинацию параметров
Оптимизируйте предел RSI, чтобы предотвратить появление ложных сигналов.
Присоединиться к механизму сдерживания убытков, чтобы контролировать одиночные убытки.
Можно рассмотреть возможность добавления других показателей, таких как лента Brin, KDJ и т. д., для создания многократных фильтров.
Можно тестировать различные стратегии покупки и продажи, такие как стратегии прорыва, стратегии отслеживания тенденций и т. д.
Эта стратегия одновременно использует два показателя силы MACD и RSI, покупает и продает в момент перелома, имеет сильную реальную ценность. Однако для достижения хороших результатов в реальном мире требуется постоянная оптимизация параметров и строгое управление капиталом.
/*backtest
start: 2022-11-13 00:00:00
end: 2023-11-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// © sabirt
strategy(title='MACD and RSI', overlay=true, shorttitle='MACD&RSI')
//MACD Settings
fastMA = input.int(title='Fast moving average', defval=12, minval=1)
slowMA = input.int(title='Slow moving average', defval=26, minval=1)
signalLength = input.int(9, minval=1)
//RSI settings
RSIOverSold = input.int(35, minval=1)
RSIOverBought = input.int(80, minval=1)
src = close
len = input.int(14, minval=1, title='Length')
up = ta.rma(math.max(ta.change(src), 0), len)
down = ta.rma(-math.min(ta.change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
wasOversold = rsi[0] <= RSIOverSold or rsi[1] <= RSIOverSold or rsi[2] <= RSIOverSold or rsi[3] <= RSIOverSold or rsi[4] <= RSIOverSold or rsi[5] <= RSIOverSold
wasOverbought = rsi[0] >= RSIOverBought or rsi[1] >= RSIOverBought or rsi[2] >= RSIOverBought or rsi[3] >= RSIOverBought or rsi[4] >= RSIOverBought or rsi[5] >= RSIOverBought
[currMacd, _, _] = ta.macd(close[0], fastMA, slowMA, signalLength)
[prevMacd, _, _] = ta.macd(close[1], fastMA, slowMA, signalLength)
signal = ta.ema(currMacd, signalLength)
avg_1 = math.avg(currMacd, signal)
crossoverBear = ta.cross(currMacd, signal) and currMacd < signal ? avg_1 : na
avg_2 = math.avg(currMacd, signal)
crossoverBull = ta.cross(currMacd, signal) and currMacd > signal ? avg_2 : na
strategy.entry('buy', strategy.long, when=crossoverBull and wasOversold)
strategy.close('buy', when=crossoverBear and wasOverbought)