Эта стратегия в сочетании с движущимися средними и случайными индикаторами реализует автоматизированную систему торговли акциями. Она использует движущиеся средние двух разных длин и случайные индикаторы, чтобы улавливать сигналы о тенденции и перекупе перепродажи, чтобы совершать покупки и продажи в зависимости от направления тенденции и индикаторных сигналов о перекупе перепродажи.
Используйте две движущиеся средние: быструю линию ((5-дневная линия) и медленную линию ((20-дневная линия)). Когда быстрая линия пересекает медленную линию, это сигнал покупки, а когда она пересекает ее, это сигнал продажи.
Параметры случайных индикаторов установлены следующим образом: K-линейный цикл 14, K-линейный плавный цикл 3, D-линейный плавный цикл 3. K-линия ниже 20 - зона перепродажи, более 80 - зона перепродажи.
Условия покупки: проход по скоростной линии и линии K <20 ((зона перепродажи) Условия продажи: быстрая линия через медленную и K-линию> 80 ((область перекупа)
При выполнении условий покупки покупают больше; при выполнении условий продажи продают меньше.
Покупая, вы устанавливаете 1%-ный стоп; продавая, вы устанавливаете 1%-ный стоп.
Эта стратегия объединяет тенденции и индикаторы, эффективно захватывает тенденции средней и длинной линии цен, одновременно используя случайные индикаторы для контроля времени покупки и продажи, избегая случайных операций по покупке и продаже без четкого направления. Параметры стратегии могут быть настроены в большом пространстве и могут быть настроены для различных рыночных условий. В целом, эта стратегия хорошо работает для акций, которые в целом растут на большом среднем рынке.
Если вы столкнетесь с экстремальными событиями, вызванными чрезвычайными новостями, это может привести к большим убыткам. Для контроля риска можно установить стоп-линию.
В случае, если рынок будет постоянно перестраиваться, это может привести к последовательным небольшим убыткам. Для уменьшения убытков можно соответствующим образом скорректировать циклические параметры скользящих средних.
Необходимо следить за тем, чтобы избежать критических моментов на фондовом рынке, так как цены могут перевернуться и привести к ошибочным сделкам.
Можно тестировать различные комбинации параметров, чтобы найти оптимальную комбинацию параметров. Например, тестировать эффективность комбинации движущихся средних разных длин.
В сочетании с другими аналитическими инструментами, такими как объем сделок, волатильность и т. д., можно установить фильтрующие условия, повышая прибыльность стратегии.
Можно изучить механизмы выбора акций, выбор акций с высоким уровнем доходности или индексов с повышенным весом, чтобы снизить риск отдельных акций.
В целом, эта стратегия работает хорошо. После установки условий стоп-стоп, общий прибыль и убыток хороши. Эффективность может быть улучшена путем корректировки параметров и оптимизации отбора фондового пула.
/*backtest
start: 2024-01-25 00:00:00
end: 2024-02-01 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Moving Average and Stochastic Strategy 80% ", overlay=true)
// Moving Average Settings
maShortLength = input(5, title="Short MA Length")
maLongLength = input(20, title="Long MA Length")
// Stochastic Settings
stochLength = input(14, title="Stochastic Length")
smoothK = input(3, title="Stochastic %K")
smoothD = input(3, title="Stochastic %D")
stochOverbought = 80
stochOversold = 20
// Profit Target Settings
profitTarget = input(1, title="Profit Target (%)") // 1% profit target
// Calculate Moving Averages
maShort = sma(close, maShortLength)
maLong = sma(close, maLongLength)
// Calculate Stochastic
k = sma(stoch(close, high, low, stochLength), smoothK)
d = sma(k, smoothD)
// Entry Conditions
longConditionMA = crossover(maShort, maLong) and k < stochOversold
shortConditionMA = crossunder(maShort, maLong) and k > stochOverbought
// Opposite Conditions
oppositeLongConditionMA = crossunder(maShort, maLong) and k < stochOversold
oppositeShortConditionMA = crossover(maShort, maLong) and k > stochOverbought
// Strategy Logic
if (longConditionMA)
strategy.entry("Buy", strategy.long)
strategy.exit("Exit Buy", "Buy", profit=close * (50 + profitTarget / 100))
if (shortConditionMA)
strategy.entry("Sell", strategy.short)
strategy.exit("Exit Sell", "Sell", profit=close * (20 - profitTarget / 100))
// Opposite Strategy Logic
if (oppositeLongConditionMA)
strategy.entry("Sell", strategy.short)
strategy.exit("Exit Sell", "Sell", profit=close * (50 - profitTarget / 100))
if (oppositeShortConditionMA)
strategy.entry("Buy", strategy.long)
strategy.exit("Exit Buy", "Buy", profit=close * (20 + profitTarget / 100))
// Plot Moving Averages
plot(maShort, color=color.blue, title="Short MA")
plot(maLong, color=color.red, title="Long MA")
// Plot Stochastic
hline(stochOverbought, "Overbought", color=color.red)
hline(stochOversold, "Oversold", color=color.green)
plot(k, color=color.black, title="Stochastic %K")