
В данной стратегии используются золотые форки для определения времени входа и выхода. В частности, когда быстрая линия EMA с нижнего направления прорывает медленную линию EMA, она создает золотые форки. Когда быстрая линия EMA сверху падает, она создает мертвые форки.
Основные принципы этой стратегии:
fast = input(25, title="Fast")
slow = input(75, title="Slow")
matype1=ema(source, fast)
matype2=ema(source, slow)
longCondition = crossover(matype1, matype2)
shortCondition = crossunder(matype1, matype2)
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
Эта стратегия сначала устанавливает медленно две средние линии EMA, в которых скоростная линия EMA имеет цикл 25, а медленная линия EMA - 75. Затем вычисляется значение двух линий EMA. Когда линия EMA пересекает медленную линию EMA с нижнего направления, создается условие longCondition истинно; когда скоростная линия EMA падает с верхнего направления и нарушает медленную EMA, создается условие shortCondition истинно.
Эта стратегия использует гладкие характеристики EMA, чтобы эффективно отфильтровывать рыночный шум, а также быстро улавливать изменения в тренде. Крест между двумя EMA является сильным торговым сигналом, который может эффективно контролировать торговый риск.
Эта стратегия имеет следующие преимущества:
Обычно, это простой, интуитивно понятный и понятный процесс.
Используйте EMA, чтобы сгладить рыночные колебания и эффективно отфильтровать ложные сигналы.
Золотой форк - сильный торговый сигнал, который позволяет эффективно контролировать риск.
Гибкость в адаптации цикла EMA к различным рыночным условиям.
Легкость использования в сочетании с другими техническими показателями.
Лучшие результаты стратегии могут быть получены путем оптимизации параметров EMA.
Однако эта стратегия также несет в себе некоторые риски:
В шокирующих ситуациях EMA часто пересекаются, что приводит к большому количеству недействительных торговых сигналов.
EMA отстает и может упустить короткую линию.
Невозможно определить переломный момент только с помощью пересечения EMA, существует определенный предел прибыли.
Фиксированный цикл EMA не может адаптироваться к изменениям рынка.
Это требует сильной финансовой поддержки, в противном случае возникает высокий риск дериватива.
Необходимы строгие ограничения на убытки, иначе один убыток может быть значительным.
Эта стратегия может быть оптимизирована в следующих аспектах:
Оптимизация циклических параметров EMA в зависимости от рыночной ситуации.
Добавление фильтров для других показателей, таких как MACD, Брин-Бенд и т.д., улучшает качество сигнала.
Повышение индексов определения тренда, таких как ATR stop loss, ADX и т.д., уменьшение недействительных сделок.
В сочетании с более детальным анализом временных циклов, можно определить направление тенденций.
Динамическая оптимизация циклов EMA с использованием методов машинного обучения.
Оптимизация управления позициями для контроля риска.
Оптимизация стратегии по удержанию убытков и снижение убытков в одноразовом порядке.
Эта стратегия использует в качестве торгового сигнала золотой и мертвый крест двух средних линий EMA, что создает более классическую стратегию следования за тенденцией. Эта стратегия проста, легко использоваться и легко комбинироваться с другими техническими показателями, подходящая для инвесторов, которые не требуют высоких требований к определению тенденций.
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
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/
// Double EMA CROSS By © EmreE (Emre Ertürk) Also thx for KivancOzbilgic color based bars
//@version=4
strategy(title="Double EMA CROSS", shorttitle="DEC", overlay=true)
matype = input("ema")
hidema = input(false)
sourcetype = input(close, title="Source Type")
source=close
// STEP 1:
// Configure backtest start date with inputs
startDate = input(title="Start Date", type=input.integer,
defval=1, minval=1, maxval=231)
startMonth = input(title="Start Month", type=input.integer,
defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
defval=2020, minval=1800, maxval=2100)
// STEP 2:
// See if this bar's time happened on/after start date
afterStartDate = (time >= timestamp(syminfo.timezone,
startYear, startMonth, startDate, 0, 0))
fast = input(25, title="Fast")
slow = input(75, title="Slow")
matype1=ema(source, fast)
matype2=ema(source, slow)
signalcolor = source > matype2 ? color.blue : color.red
signal = cross(fast, slow)
hizliema=plot(hidema ? na : matype1, color=color.green, linewidth=2,transp=0, title="Fast EMA")
yavasema=plot(hidema ? na : matype2, color=color.red, linewidth=2,transp=0, title="Slow EMA")
//kesisme=plot(signal, style=cross, color=signalcolor, linewidth=5, title="Kesişme")
longCondition = crossover(matype1, matype2)
if (afterStartDate and longCondition)
strategy.entry("Long", strategy.long)
shortCondition = crossunder(matype1, matype2)
if (afterStartDate and shortCondition)
strategy.entry("Short", strategy.short)
//--------------------------------------------------------
//volume based color bars
length=input(21, "length", minval=1)
avrg=sma(volume,length)
vold1 = volume > avrg*1.5 and close<open
vold2 = volume >= avrg*0.5 and volume<=avrg*1.5 and close<open
vold3 = volume < avrg *0.5 and close<open
volu1 = volume > avrg*1.5 and close>open
volu2 = volume >= avrg*0.5 and volume<=avrg*1.5 and close>open
volu3 = volume< avrg*0.5 and close>open
cold1=#800000
cold2=#FF0000
cold3=color.orange
colu1=#006400
colu2=color.lime
colu3=#7FFFD4
ac = vold1 ? cold1 : vold2 ? cold2 : vold3 ? cold3 : volu1 ? colu1 : volu2 ? colu2 : volu3 ? colu3 : na
barcolor(ac)