Эта стратегия использует полосы Боллинджера, EMA и шаблоны свечей для торговли двумя линиями азартных игр, относящихся к краткосрочным стратегиям торговли.
Стратегия состоит из следующих частей:
Боллингерские полосы Создать верхние и нижние рельсы на основе цены закрытия и стандартного отклонения.
ЕМА Вычислить 21-дневную экспоненциальную скользящую среднюю и генерировать торговые сигналы, когда цена пересекает EMA.
Модели свечей Определить точки перемены цен, такие как нижнее покрытие темными облаками и верхний формат пирсинга, чтобы запустить торговлю.
Игровые игры с двумя линиями Идите длинным и коротким одновременно, основываясь на сигналах от Боллинджера, EMA кроссовера и моделей свечей.
Логика такова:
Используйте полосы Боллинджера, чтобы определить потенциальные точки переворота, идти коротко на верхней рельсе и длинный на нижней рельсе. Вычислить 21-дневную EMA и идти долго на золотом кресте, идти коротко на кресте смерти. Также используйте шаблоны свечей, чтобы определить перевороты, идти долго на нижнем темном облаке и короткий на верхнем пирсинге. Объедините все три сигнала, чтобы принять окончательные решения о двойном направлении торговли.
Стратегия включает в себя несколько подтверждающих сигналов для повышения эффективности торговых решений.
Основными преимуществами этой стратегии являются:
Использование Bollinger, EMA и свечей вместе повышает точность путем проверки сигналов. Это помогает избежать ложных сигналов и ошибочных сделок.
Объединенные сигналы быстро выявляют потенциальные точки переворота для своевременной торговли до того, как перевороты продлятся.
Удерживая как длинные, так и короткие позиции, вы получаете прибыль от больших движений в обоих направлениях.
Краткосрочные Bollinger и EMA позволяют фиксировать краткосрочные движения, подходящие для частой торговли и реагирующие на высокочастотные колебания.
Полный код стратегии делает его непосредственно применимым для торговли в режиме реального времени. Разумный выбор параметров также делает его очень простым в использовании для отдельных трейдеров.
Потенциальными рисками являются:
Сигналы Bollinger, EMA и Candlestick могут вызывать последовательные стоп-лосс.
Удержание как длинных, так и коротких позиций может увеличивать убытки. Необходим достаточный капитал для поддержания рисков. Рекомендуется более низкий размер позиции.
Частая краткосрочная торговля требует тщательного отслеживания рынка.
Болинджер и EMA имеют относительно небольшое пространство оптимизации.
Часть стратегии опирается на сигналы свечей, которые иногда могут быть неясными.
Стратегия может быть улучшена в следующих аспектах:
Добавляя другие индикаторы, такие как KD, MACD диверсифицирует источники сигналов и улучшает точность принятия решений.
Использовать алгоритмы ML для анализа исторических данных и увеличения или замены некоторых индикаторных сигналов для уменьшения ручного вмешательства.
Внедрить адаптивный стоп-профит на основе производительности и отслеживание стоп-профита для снижения риска.
Оптимизировать распределение капитала, размер позиций и стратегии контроля рисков в соответствии с рыночными условиями.
Используйте обратные тесты и бумажную торговлю для неоднократной оптимизации параметров и оказания помощи в принятии решений о торговле в режиме реального времени.
Параметризировать стратегию на основе результатов бэкстеста и включить в автоматизированную торговую систему для выполнения без рук.
Эта стратегия интегрирует сигналы Боллинджера, EMA и свечей для множественной проверки. Двулинейная торговля еще больше улучшает прибыльность. Благодаря быстрому реагированию она подходит для краткосрочной частой торговли. Эффективная остановка прибыли / убытка и оптимизация параметров могут еще больше повысить производительность при снижении риска. В целом эта простая и практичная стратегия имеет сильное практическое значение.
/*backtest start: 2022-09-30 00:00:00 end: 2023-10-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //Design by MrPhu in August,10,2018 strategy("TrumpShipper_Long_Short V26", overlay=true) filterFractals = input(true, title=" Follow Code #Trump On/Off") dt = 0.0001 confidence=(request.security(syminfo.tickerid, 'D', close)-request.security(syminfo.tickerid, 'D', close[1]))/request.security(syminfo.tickerid, 'D', close[1]) prediction = confidence > dt ? true : confidence < -dt ? false : prediction[1] if (prediction) strategy.exit("Close", "Short ") strategy.entry("Long ", strategy.long) if (not prediction) strategy.exit("Close", "Long ") strategy.entry("Short ", strategy.short) ///////////Bollinger Band/////////////// length = 20 crc = close, title="Source" mult = 2.0 basis = sma(crc, length) dev = mult * stdev(crc, length) upper = basis + dev lower = basis - dev spanColor = prediction ? green : red, transp=90 p1 = plot(upper, title="Short", style=line, linewidth=1, color=spanColor) p2 = plot(lower, title="Long", style=line, linewidth=1, color=spanColor) fill(p1, p2, color=spanColor, transp=90, title="Fill") ///////////// Optional_TimeFrame = 'D' M_HIGH = request.security(syminfo.tickerid, Optional_TimeFrame, high) M_OPEN = request.security(syminfo.tickerid, Optional_TimeFrame, open) M_LOW = request.security(syminfo.tickerid, Optional_TimeFrame, low) H_RANGE = M_HIGH-M_OPEN L_RANGE = M_OPEN-M_LOW H_236 = M_HIGH - H_RANGE * 0.236 H_382 = M_HIGH - H_RANGE * 0.382 H_500 = M_HIGH - H_RANGE * 0.500 H_618 = M_HIGH - H_RANGE * 0.618 H_764 = M_HIGH - H_RANGE * 0.764 L_236 = M_LOW + L_RANGE * 0.236 L_382 = M_LOW + L_RANGE * 0.382 L_500 = M_LOW + L_RANGE * 0.500 L_618 = M_LOW + L_RANGE * 0.618 L_764 = M_LOW + L_RANGE * 0.764 pl1=plot(M_HIGH, color=M_HIGH != M_HIGH[1] ?na:black, style=line, linewidth=1, transp=80) pl2=plot(H_236, color=H_236 != H_236[1] ?na:gray, style=line, linewidth=1, transp=80) pl3=plot(H_382, color=H_382 != H_382[1] ?na:black, style=line, linewidth=1, transp=80) pl4=plot(H_500, color=H_500 != H_500[1] ?na:red, style=line, linewidth=1, transp=80) pl5=plot(H_618, color=H_618 != H_618[1] ?na:gray, style=line, linewidth=1, transp=80) pl6=plot(H_764, color=H_764 != H_764[1] ?na:gray, style=line, linewidth=1, transp=80) pl7=plot(M_OPEN, color=M_OPEN != M_OPEN[1] ?na:blue, style=line, linewidth=2) pl8=plot(L_236, color=L_236 != L_236[1] ?na:gray, style=line, linewidth=1, transp=80) pl9=plot(L_382, color=L_382 != L_382[1] ?na:black, style=line, linewidth=1, transp=80) pl10=plot(L_500, color=L_500 != L_500[1] ?na:red, style=line, linewidth=1, transp=80) pl11=plot(L_618, color=L_618 != L_618[1] ?na:black, style=line, linewidth=1, transp=80) pl12=plot(L_764, color=L_764 != L_764[1] ?na:gray, style=line, linewidth=1, transp=80) pl13=plot(M_LOW, color=M_LOW != M_LOW[1] ?na:black, style=line, linewidth=1, transp=80) SHOW_MA = false MA_SRC = hlc3 MA_LENGTH = 21 _MA = ema(MA_SRC, MA_LENGTH) pl14=plot(not SHOW_MA ? na : _MA, color=teal, linewidth=2) SHOW_SIGNALS = true BUYX(_F) => cross(_F, MA_SRC) and rising(_MA, 1) SELX(_F) => cross(_F, MA_SRC) and falling(_MA, 1) SEL_SIGNAL = SELX(H_236) or SELX(H_382) or SELX(H_500) or SELX(H_618) or SELX(H_764) or SELX(L_236) or SELX(L_382) or SELX(L_500) or SELX(L_618) or SELX(H_764) BUY_SIGNAL = BUYX(H_236) or BUYX(H_382) or BUYX(H_500) or BUYX(H_618) or BUYX(H_764) or BUYX(L_236) or BUYX(L_382) or BUYX(L_500) or BUYX(L_618) or BUYX(H_764) //================= Chart 30m =================///// //Jurij h_left = 10 h_right = 10 //barCount = nz(barCount[1]) + 1 //check history and realtime PTZ h_left_low = lowest(h_left) h_left_high = highest(h_left) newlow = low <= h_left_low newhigh = high >= h_left_high central_bar_low = low[h_right + 1] central_bar_high = high[h_right + 1] full_zone_low = lowest(h_left + h_right + 1) full_zone_high = highest(h_left + h_right + 1) central_bar_is_highest = central_bar_high >= full_zone_high central_bar_is_lowest = central_bar_low <= full_zone_low plotchar(central_bar_is_highest ? -1 : 0, offset=-h_right-1 ,color=red, text="Top") plotchar(central_bar_is_lowest ? 1 : 0, offset=-h_right-1 ,location=location.belowbar, color=green, text="Bottom")