Стратегия торговли «Золотой крест» и «Крест смерти»


Дата создания: 2023-10-31 14:37:38 Последнее изменение: 2023-10-31 14:37:38
Копировать: 0 Количество просмотров: 810
1
Подписаться
1617
Подписчики

Стратегия торговли «Золотой крест» и «Крест смерти»

Обзор

Основная идея этой стратегии заключается в том, чтобы использовать сигналы золотых и мертвых точек показателя EMA для совершения операций по покупке и продаже. Она одновременно рисует несколько групп быстрых и медленных EMA и использует их перекрестки для оценки торговых сигналов.

Стратегический принцип

Эта стратегия сначала определяет несколько групп средних линий EMA, включая средние скорости EMA от eMA1 до eMA6 и средние скорости EMA от eMA7 до eMA12. Затем определяется buy_signal и sell_signal:

  • Сигнал покупки buy_signal генерируется при нанесении ema3 на ema1
  • Продающий сигнал sell_signal генерируется при прохождении ema3 под ema1

Таким образом, когда краткосрочная EMA проходит среднюю линию долгосрочной EMA, это означает, что рынок находится в восходящей тенденции, покупая; когда краткосрочная EMA проходит среднюю линию долгосрочной EMA, это означает, что рынок находится в нисходящей тенденции, продавая.

Стратегия определяет направление тренда, наблюдая за перекрестками средней линии EMA, для принятия решений о покупке и продаже.

Анализ преимуществ

Эта стратегия имеет следующие преимущества:

  1. Используя средний показатель EMA для определения тенденции, средний показатель EMA более плавный по отношению к ценовым изменениям, который может отфильтровывать краткосрочный рыночный шум, что делает торговые сигналы более надежными.

  2. При одновременном нанесении нескольких групп средних линий EMA можно более точно определить изменения тренда. Пересечение линий EMA быстро и медленно позволяет избежать пропуска важных поворотных точек тренда.

  3. Стратегия проста и понятна, транзакционный сигнал передается через EMA-пересечение, легко понимается и реализуется, подходит для количественной торговли.

  4. Настраиваемые параметры цикла EMA, которые могут быть скорректированы в зависимости от разных сортов и рынка, гибко реагируют на изменения рынка.

Анализ рисков

Также существуют следующие риски:

  1. EMA имеет задержку, которая может привести к задержке сигналов.

  2. Неправильное сочетание параметров EMA может привести к ошибочному сигналу.

  3. EMA не может эффективно отфильтровать ложные сигналы, вызванные всплесками в зоне.

  4. Существует риск пересочетания, и для параметров EMA есть ограниченное пространство для оптимизации.

Ответ:

  1. Фильтрация в сочетании с другими показателями, чтобы избежать ошибочных сигналов в зоне колебаний.

  2. Тестирование стабильности параметров различных циклов, чтобы предотвратить сходство.

  3. Применение соответствующих корректировок в портфеле параметров стратегии или увеличение механизма выхода, чтобы контролировать риск.

Направление оптимизации

Эта стратегия также может быть оптимизирована в следующих аспектах:

  1. Увеличение стратегии остановки убытков и выхода из нее после достижения определенного размера убытков.

  2. Присоединение к механизму повторного выхода на рынок, то есть настройка сигнала повторного покупки и продажи.

  3. Оптимизируйте комбинацию параметров пересечения циклов EMA для покупки и продажи, чтобы найти оптимальные параметры.

  4. Добавление других показателей, многофакторная проверка, улучшение качества сигнала.

  5. Оптимизация параметров различных сортов для поиска оптимального применения.

  6. С учетом факторов скольжения в фиксированной торговле, проводится обратная корректировка.

Подвести итог

Эта стратегия использует быстрое и медленное перекрестное определение направления тренда на средней линии EMA, покупая и продавая на основе перекрестных сигналов, и является более простой стратегией отслеживания тренда. Она имеет преимущества в определении изменения тренда, но также содержит риск задержки и колебаний.

Исходный код стратегии
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Companion Strategy script to my Cloud Study. Enjoy! -MP
// study("MP's Cloud Study", overlay=true)
strategy(title="MP's Cloud Strat'", shorttitle="MP's Cloud Strat", overlay=true, precision=6, pyramiding=0, initial_capital=10000, currency="USD", default_qty_type=strategy.percent_of_equity,calc_on_order_fills= false, calc_on_every_tick=false, default_qty_value=100.0, commission_type=strategy.commission.percent, commission_value=0.05)

//bgcolor ( color=black, transp=20, title='Blackground', editable=true)

src = close, len1 = input(2, minval=1, title="Short EMA")
src2 = close, len3 = input(7, minval=1, title="Long EMA")
emaShort = ema(src, len1)
emaLong = ema(src2, len3)


StartYear = input(2018, "Start Year")
StartMonth = input(01, "Start Month")
StartDay = input(18, "Start Day")

 
StopYear = input(2018, "Stop Year")
StopMonth = input(12, "Stop Month")
StopDay = input(26, "Stop Day")
tradeStop = timestamp(StopYear,StopMonth,StopDay,0,0)

//src = close, 
//len1 = input(3, minval=1, title="Fast EMA 1")
len2 = input(3, minval=1, title="Fast EMA 2")
//len3 = input(8, minval=1, title="Fast EMA 3")
len4 = input(5, minval=1, title="Fast EMA 4")
len5 = input(8, minval=1, title="Fast EMA 5")
len6 = input(10, minval=1, title="Fast EMA 6")
//Slow EMA
len7 = input(30, minval=1, title="Slow EMA 7")
len8 = input(35, minval=1, title="Slow EMA 8")
len9 = input(40, minval=1, title="Slow EMA 9")
len10 = input(45, minval=1, title="Slow EMA 10")
len11 = input(50, minval=1, title="Slow EMA 11")
len12 = input(60, minval=1, title="Slow EMA 12")

//Fast EMA
ema1 = ema(src, len1)
ema2 = ema(src, len2)
ema3 = ema(src, len3)
ema4 = ema(src, len4)
ema5 = ema(src, len5)
ema6 = ema(src, len6)
//Slow EMA
ema7 = ema(src, len7)
ema8 = ema(src, len8)
ema9 = ema(src, len9)
ema10 = ema(src, len10)
ema11 = ema(src, len11)
ema12 = ema(src, len12)

//Fast EMA Color Rules
//colfastL = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4 and ema4 > ema5 and ema5 > ema6)
colfastS = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4 and ema4 < ema5 and ema5 < ema6)
//Slow EMA Color Rules
//colslowL = ema7 > ema8 and ema8 > ema9 and ema9 > ema10 and ema10 > ema11 and ema11 > ema12 
//colslowS = ema7 < ema8 and ema8 < ema9 and ema9 < ema10 and ema10 < ema11 and ema11 < ema12 
//Fast EMA Final Color Rules
//colFinal = colfastL and colslowL? aqua : colfastS and colslowS? orange : gray
//Slow EMA Final Color Rules
//colFinal2 = colslowL  ? lime : colslowS ? red : gray
//Fast EMA Plots
p1=plot(ema1, title="Fast EMA 1", style=line, linewidth=2, color=silver)
plot(ema2, title="Fast EMA 2", style=line, linewidth=1, color=silver)
plot(ema3, title="Fast EMA 3", style=line, linewidth=1, color=silver)
plot(ema4, title="Fast EMA 4", style=line, linewidth=1, color=silver)
plot(ema5, title="Fast EMA 5", style=line, linewidth=1, color=silver)
p2=plot(ema6, title="Fast EMA 6", style=line, linewidth=2, color=silver)
fill(p1,p2,color=silver, transp=60)
//Slow EMA Plots
//p3=plot(ema7, title="Slow EMA 7", style=line, linewidth=4, color=colFinal2)
//plot(ema8, title="Slow EMA 8", style=line, linewidth=3, color=colFinal2)
//plot(ema9, title="Slow EMA 9", style=line, linewidth=3, color=colFinal2)
//plot(ema10, title="Slow EMA 10", style=line, linewidth=3, color=colFinal2)
//plot(ema11, title="Slow EMA 11", style=line, linewidth=3, color=colFinal2)
//p4=plot(ema12, title="Slow EMA 12", style=line, linewidth=4, color=colFinal2)
//fill(p3,p4, color=silver, transp=60)



//Plot the Ribbon
ma1=plot( emaShort,color=rising(emaShort,2)?green:red,linewidth=1,join=true,transp=20,title="Short")
ma2=plot( emaLong,color=rising(emaLong,2)?green:red,linewidth=1,join=true,transp=20,title="Long")
fcolor = emaShort>emaLong?green:red
fill(ma1,ma2,color=fcolor,transp=80,title="Ribbon Fill")


//fast = 4, slow = 16
//fastMA = ema(close, fast)
//slowMA = ema(close, slow)
//plot(fastMA, color=green, title = "buy/sell")
//plot(slowMA, color=red, title = "base")


//Conditions
buy_signal = crossover(ema1,ema3)
sell_signal = crossunder(ema1,ema3)

plotshape(sell_signal, style=shape.triangleup, color = red, text="Start Short")
plotshape(buy_signal, style=shape.triangledown, color = green, text="Start Long")

alertcondition(sell_signal, title = 'Sell/Short', message = 'e= s= c=position b=long t=market l= | delay=30 | e= s= b=short l= t=market q=0.01')
alertcondition(buy_signal, title = 'Buy/Long', message =  'e= s= c=position b=short t=market l= | delay=30 | e= s= b=long l= t=market q=0.01')

//alertcondition(sell_signal, title = 'Sell/Short', message = 'e= s= c=order b=buy | delay=3 | e= b=sell q=99% p=0.70% u=currency')
//alertcondition(buy_signal, title = 'Buy/Long', message =  'e= s= c=order b=sell | delay=30 | e= b=buy q=80 p=0.1% u=currency')


testStartYear = input(2018, "From Year") 
testStartMonth = input(1, "From Month")
testStartDay = input(1, "From Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "To Year")
testStopMonth = input(1, "To Month")
testStopDay = input(1, "To Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true

if testPeriod()
    if buy_signal
        strategy.entry("Long", true)
    

    if sell_signal
        strategy.close("Long")