
Двойная подвижная средняя стратегия обратного тренда - это стратегия, используемая в основном для среднесрочных торгов на валютном рынке. Эта стратегия использует подвижные средние с двумя разными периодами для создания торговых сигналов. При наличии золотых перекрестков между быстрыми и медленными подвижными средними, используется попытка обратного тренда с короткой стороны; при наличии мертвых перекрестков между быстрыми и медленными подвижными средними, используется попытка обратного тренда с многосторонней стороны.
Эта стратегия использует движущиеся средние для двух временных периодов: 1-часовой и 1-дневный. Движущаяся средняя для 1-часового цикла более чувствительна к изменениям цен и может использоваться в качестве быстрого движущегося среднего; Движущаяся средняя для 1-дневного цикла более медленно реагирует на изменения цен и может использоваться в качестве медленно движущегося среднего.
Принцип, по которому вступают в лизинг или лизинг и ищут обратный оборот, заключается в том, что рынок может быть перевернут, когда быстрый и медленный перемещающиеся средние и медленные перемещающиеся средние пересекаются или мертвые форки, и переход через быструю или медленную линию - это время для обратного сигнала. Согласно теории обратного торговли, цены обычно не поднимаются или падают вверх или вниз в одиночку, и, когда происходит прорыв или важная поддержка и сопротивление, это, скорее всего, момент, когда цена акции переворачивается.
Стратегия также устанавливает условия для отбора времени и даты торговли, причем сделки совершаются только в пределах установленной даты и в установленные торговые часы, чтобы избежать торговли в неподходящие периоды времени.
Двойные движущиеся средние имеют следующие преимущества:
Обратная стратегия имеет большие преимущества для получения прибыли. Обратная торговля позволяет получить более высокую прибыль в условиях, когда цены колеблются, выполняя обратную операцию в ключевых точках.
Использование двойных движущихся средних в комбинации фильтрует сигналы, чтобы избежать ложных сигналов. Одиночный индикатор легко создает ложные сигналы, а двойная комбинация может повысить надежность сигналов, отфильтровывая некоторые ложные сигналы, что делает торговые возможности более надежными.
Установление условий для времени и даты торговли, чтобы избежать неактивных периодов рынка и избежать блокировки. Торгуйте только в установленных торговых часах и датах, чтобы избежать резких колебаний цен и избежать блокировки торговли.
Обратная стратегия подходит для среднесрочной торговли. По сравнению с высокочастотной торговлей, среднесрочная торговая стратегия более стабильна, избегая слишком частого купли-продажи.
Контроль максимального вывода полезен для управления средствами. Установка максимального процента вывода позволяет хорошо контролировать риски в одночасье и избежать значительных потерь средств.
Также существуют следующие риски, связанные со стратегией обратного тренда двойных скользящих средних:
Сигналы обратного курса могут быть неэффективными, что может привести к убыткам. Сигналы обратного курса не всегда надежны, и есть риск потерь, если цена продолжит движение без обратного курса.
Отклонение от тренда приводит к убыткам. Возвращение может быть рискованным, когда двойные скользящие средние уже явно разделены. Время для возврата можно определить, наблюдая за промежутками между скользящими средними.
Неправильно настроенное время торговли может привести к упущенным возможностям. Если время торговли будет слишком строго настроено, возможно, будут упущены некоторые торговые возможности.
Невозможность своевременного сдерживания убытков после реверса. При продолжении первоначальной тенденции цены после реверса необходимо своевременно сдерживать убытки, чтобы контролировать убытки.
Стратегия обратного тренда двойных движущихся средних также может быть оптимизирована в следующих аспектах:
Для поиска лучших торговых сигналов можно тестировать комбинации других индикаторов, таких как MACD, KDJ и т. Д., в сочетании с двойными движущимися средними, что повышает точность сигналов.
Оптимизируйте циклические параметры для подвижных средних и найдите оптимальные параметры. Вы можете определить оптимальное количество циклов, повторяя параметры разной длины подвижных средних.
Расширять или сокращать время торговли, чтобы найти оптимальное время торговли. В зависимости от характеристик разных сортов, тестировать эффективность корректировки периода торговли.
Добавление условий фильтрации тенденции, чтобы избежать отклонения. Можно добавить такие показатели, как ADX, чтобы определить, насколько сильна тенденция, чтобы избежать обратного отклонения, когда нет очевидной тенденции.
Добавление модели машинного обучения для проверки сигнала. Можно обучить модель оценивать надежность обратного сигнала, отфильтровывая некоторые низкокачественные сигналы.
Двойная подвижная средняя стратегия обратного тренда - стратегия, подходящая для среднесрочной торговли на Форекс. Она использует быстрые подвижные средние и медленные подвижные средние для создания обратного сигнала, для обратной операции в ключевых точках рынка, с большим пространством для прибыли. В то же время она также использует торговые моменты и настройки максимального отступления для контроля риска. Это более стабильная система обратного движения, которая может приносить более высокую прибыль, но также может контролировать риск. В будущем эта стратегия может быть улучшена и оптимизирована с помощью оптимизации показателей и параметров, а также с помощью моделей с увеличением машинного обучения.
/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SoftKill21
//@version=4
strategy("gbpnzd 1h", overlay=true)
src = close
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above", type=input.resolution, defval="60")
len = input(28, title="Moving Average Length - LookBack Period")
//periodT3 = input(defval=7, title="Tilson T3 Period", minval=1)
factorT3 = input(defval=7, title="Tilson T3 Factor - *.10 - so 7 = .7 etc.", minval=0)
atype = input(2,minval=1,maxval=8,title="1=SMA, 2=EMA, 3=WMA, 4=HullMA, 5=VWMA, 6=RMA, 7=TEMA, 8=Tilson T3")
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
res = useCurrentRes ? timeframe.period : resCustom
resCustom2 = input(title="plm", type=input.resolution, defval="D")
res2 = resCustom2
//hull ma definition
hullma = wma(2*wma(src, len/2)-wma(src, len), round(sqrt(len)))
//TEMA definition
ema1 = ema(src, len)
ema2 = ema(ema1, len)
ema3 = ema(ema2, len)
tema = 3 * (ema1 - ema2) + ema3
//Tilson T3
factor = factorT3 *.10
gd(src, len, factor) => ema(src, len) * (1 + factor) - ema(ema(src, len), len) * factor
t3(src, len, factor) => gd(gd(gd(src, len, factor), len, factor), len, factor)
tilT3 = t3(src, len, factor)
avg = atype == 1 ? sma(src,len) : atype == 2 ? ema(src,len) : atype == 3 ? wma(src,len) : atype == 4 ? hullma : atype == 5 ? vwma(src, len) : atype == 6 ? rma(src,len) : atype == 7 ? 3 * (ema1 - ema2) + ema3 : tilT3
out = avg
ema20 = security(syminfo.tickerid, res, out)
plot3 = security(syminfo.tickerid, res2, ema20)
plot33 = security(syminfo.tickerid, res, ema20)
plot(plot3,linewidth=2,color=color.red)
plot(plot33,linewidth=2,color=color.white)
// longC = crossover(close[2], plot3) and close[1] > close[2] and close > close[1]
// shortc = crossunder(close[2],plot3) and close[1] < close[2] and close < close[1]
volumeMA=input(24)
ema_1 = ema(volume, volumeMA)
timeinrange(res, sess) => time(res, sess) != 0
//entrytime = timeinrange(timeframe.period, "0900-0915")
myspecifictradingtimes = input('0900-2300', type=input.session, title="My Defined Hours")
entrytime = time(timeframe.period, myspecifictradingtimes) != 0
longC = crossover(plot33,plot3) and time_cond and entrytime
shortc = crossunder(plot33,plot3) and time_cond and entrytime
// exitlong = crossunder(plot33,plot3)
// exitshort = crossover(plot33,plot3)
distanta=input(1.0025)
exitshort = plot33/plot3 > distanta
exitlong = plot3/plot33 > distanta
inverse = input(true)
exit = input(false)
if(inverse==false)
strategy.entry("long",1,when=longC)
strategy.entry("short",0,when=shortc)
if(inverse)
strategy.entry("long",1,when=shortc)
strategy.entry("short",0,when=longC)
if(exit)
strategy.close("long",when=exitlong)
strategy.close("short",when=exitshort)
// if(dayofweek==dayofweek.friday)
// strategy.close_all()
// risk = input(25)
// strategy.risk.max_intraday_loss(risk, strategy.percent_of_equity)