Стратегия ввода золотой скрещивающейся средней линии - это стратегия для создания торговых сигналов на основе пересечения или снижения движущихся средних. При пересечении долгосрочных движущихся средних над краткосрочными движущимися средними образуется многоголовый золотой скрещивающийся сигнал. При пересечении долгосрочных движущихся средних под краткосрочными движущимися средними образуется пустой мертвый скрещивающийся сигнал.
Для визуального эффекта я нарисовал несколько движущихся средних Фибоначчи от 1 до 987, но для практического использования нужно выбрать только несколько равновесных линий, посмотреть, есть ли явные сигналы пересечения, а затем ввести эти параметры в настройки для длинных или коротких позиций.
Например, вход в стратегию для установки длинной или короткой позиции:
Многоголовый сигнал: 34-й ЭМА с пересечением на 144-й ЭМА
Сигнал головы:
55-дневная SMA и 144-дневная EMA
Как видно, стратегия может свободно сопоставлять параметры из 4 различных средних линий, выбирая как EMA, так и SMA.
Цвет по умолчанию: Средняя верхняя линия зеленая. Средняя линия снижения - красная.
По умолчанию фибоначевидная линейная настройка: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181 дневная средняя линия
По умолчанию настройка однородности: 50, 100, 150, 200 дневная средняя линия
По умолчанию настройка на длинную или короткую позицию: Многоголовый сигнал: 34-й ЭМА с пересечением на 144-й ЭМА
Сигнал головы: 55-дневная SMA и 144-дневная EMA
Основная логика стратегии заключается в том, чтобы генерировать торговый сигнал на основе перекрестных сигналов двух скользящих средних.
Подвижная средняя - это технический показатель, используемый для анализа рыночных тенденций. Она рассчитывает среднее значение цены закрытия за определенный период и может эффективно фильтровать рыночные колебания. Подвижная средняя делится на простую подвижную среднюю (SMA) и индексированную подвижную среднюю (EMA).
SMA - это простое среднее за закрытие цены за определенный период. EMA - это индексная скользящая средняя за закрытие цены, придавая более высокий вес последней цене.
Когда краткосрочная средняя линия пересекает долгосрочную среднюю линию, это рассматривается как рыночная тенденция, переходящая в позитивную сторону, создавая сигнал покупки. Это называется золотой крестовой удар. Напротив, когда краткосрочная средняя линия пересекает долгосрочную среднюю линию, это рассматривается как рыночная тенденция, переходящая в нисходящую сторону, создавая сигнал продажи. Это называется крестовой удар смерти.
Гибкость этой стратегии заключается в том, что можно самостоятельно настроить параметры для четырех средних линий. По умолчанию параметры - 34-й день на EMA, 144-й день на EMA, многоголовый сигнал, 55-й день на EMA, 144-й день на EMA, пустой сигнал. Эти параметры могут быть свободно настроены в вводном поле.
Кроме того, в стратегии изображены скользящие средние из нескольких рядов Фибоначевых чисел, что позволяет наблюдать за изменениями тенденций с большего количества временных измерений. В то же время изображены обычные 50-дневные, 100-дневные, 150-дневные и 200-дневные средние линии. Эти средние линии являются справочными, и важно войти в параметры перекрестной средней линии, введенные в поле настройки для длинной или короткой позиции.
Преимущества такой стратегии, основанной на равномерном скрещивании, включают:
Использование скользящих средних эффективно фильтрует рыночный шум и определяет направление тренда
Торговые сигналы от равнолинейных пересечений имеют определенную надежность
Свободный выбор комбинаций длинной и короткой средней линии, параметры оптимизации
Средняя линия, объединенная с несколькими различными циклами, позволяет идентифицировать тенденции в более широком временном измерении
Можно одновременно использовать EMA и SMA, выбирая оптимальные параметры в зависимости от характеристик сорта
Визуально интуитивное изображение, четко видное через многоцветные равнолинейные пересечения
Простая, легкая и удобная для начинающих
Гибкость применения для разных сортов, с определенной универсальностью
Однако эта стратегия также несет в себе некоторые риски:
В условиях волатильности средняя линия может генерировать большое количество сигналов неопределенности, что приводит к сверхкороткой линии торговли, увеличивает частоту торгов и увеличивает нагрузку на комиссионные.
Неправильные параметры могут привести к ошибочному сигналу. Следует выбрать подходящую комбинацию средней и длинной линий и проверить результаты.
При резком повороте тренда, равнолинейный перекрестный сигнал задерживается и не может своевременно реагировать на изменения цены.
Сравнительная линия пересечения не может полностью избежать убытков, требуется разумная установка точки остановки убытков.
Необходимо предотвратить сходство кривых, вызванное чрезмерной оптимизацией. Стабильность параметров должна быть протестирована в разных рыночных циклах.
Эта стратегия может быть оптимизирована в следующих аспектах:
Тестирование различных комбинаций средних и длинных линий для поиска оптимальных параметров, которые могут быть повторно измерены на основе исторических данных.
Попробуйте скорректировать тип средней линии и сравнить разницу в эффективности SMA и EMA. Наиболее заметные тенденции в разновидности позволяют выбрать SMA, более сильные колебания в разновидности позволяют выбрать EMA.
В сочетании с другими показателями, такими как KDJ, MACD, фильтрация ложных сигналов повышает качество сигнала.
Добавление стратегии стоп-лосса для управления риском одиночных потерь. Можно установить мобильный стоп-лосса или отслеживать стоп-лосса.
Оптимизация стратегий управления капиталом, например, корректировка позиций в зависимости от вывода, а также контроль над общим риском.
Испытание стабильности в разных породах и в разных циклах, оценка параметров крепкости. При необходимости может быть сделана мелкая настройка параметров для разновидностей.
Золотая крестовая линейная входная стратегия в целом является стратегией для отслеживания тенденций с высокой надежностью. Она использует простой интуитивный линейный крест в качестве торгового сигнала, который может быть адаптирован к различным породам путем оптимизации параметров.
/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Options360 : Fibonacci MAI (Moving Averages Input) beta 10/15/22
// © Options360 original public release = 2/25/23
// * This script uses altered pieces of code from my @Options360 "Fibonacci MA7" indicator*
// 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811
////
strategy(title="Fibonacci Moving Averages Input", shorttitle = "FibMAI", overlay=true)
src = input(ohlc4, 'source')
//
string GRP = "Long or Short Settings"
exponential1 = input(true, title="long EMA or SMA", tooltip="EMA checked or SMA unchecked", group = GRP)
long = input.int(34, minval=1, title="long", tooltip="Signal Moving average long input")
long1 = exponential1 ? ta.ema(src, long) : ta.sma(src, long)
exponential2 = input(true, title="crossover EMA or SMA", tooltip="EMA checked or SMA unchecked")
longer = input.int(144, minval=1, title="crossover", tooltip="Crossed over Moving average long input")
long2 = exponential2 ? ta.ema(src, longer) : ta.sma(src, longer)
exponential3 = input(true, title="short EMA or SMA", tooltip="EMA checked or SMA unchecked")
short = input.int(55, minval=1, title="short", tooltip="Signal Moving average short input")
short1 = exponential3 ? ta.ema(src, short) : ta.sma(src, short)
exponential4 = input(false, title="crossunder EMA or SMA", tooltip="EMA checked or SMA unchecked")
shorter = input.int(144, minval=1, title="crossunder", tooltip="Crossed under Moving average short input")
short2 = exponential4 ? ta.ema(src, shorter) : ta.sma(src, shorter)
//
string GRP2 = "Visual FibMA Settings"
exponential = input(true, title="Fib EMA or SMA", tooltip="EMA checked or SMA unchecked", group = GRP2)
//
smaplot11 = input (true, title="MA1")
len11 = input.int(1, minval=1, title="ma Length")
out11 = exponential ? ta.ema(src, len11) : ta.sma(src, len11)
up11 = out11 > out11[1]
down11 = out11 < out11[1]
mycolor11 = up11 ? #3cfe12 : down11 ? #ff0202 : #008eff
plot(out11 and smaplot11 ? out11 :na, title="1", color=mycolor11, linewidth=1)
smaplot18 = input (true, title="MA2")
len18 = input.int(2, minval=1, title="ma Length")
out18 = exponential ? ta.ema(src, len18) : ta.sma(src, len18)
up18 = out18 > out18[1]
down18 = out18 < out18[1]
mycolor18 = up18 ? #3cfe12 : down18 ? #ff0202 : #008eff
plot(out18 and smaplot18 ? out18 :na , title="2", color=mycolor18, linewidth=1)
smaplot13 = input (true, title="MA3")
len13 = input.int(3, minval=1, title="ma Length")
out13 = exponential ? ta.ema(src, len13) : ta.sma(src, len13)
up13 = out13 > out13[1]
down13 = out13 < out13[1]
mycolor13 = up13 ? #3cfe12 : down13 ? #ff0202 : #008eff
plot(out13 and smaplot13 ? out13 :na , title="3", color=mycolor11, linewidth=1)
smaplot9 = input (true, title="MA5")
len9 = input.int(5, minval=1, title="ma Length")
out9 = exponential ? ta.ema(src, len9) : ta.sma(src, len9)
up9 = out9 > out9[1]
down9 = out9 < out9[1]
mycolor9 = up9 ? #3cfe12 : down9 ? #ff0202 : #008eff
plot(out9 and smaplot9 ? out9 :na , title="5", color=mycolor9, linewidth=1)
smaplot8 = input (true, title="MA8")
len8 = input.int(8, minval=1, title="ma Length")
out8 = exponential ? ta.ema(src, len8) : ta.sma(src, len8)
up8 = out8 > out8[1]
down8 = out8 < out8[1]
mycolor8 = up8 ? #3cfe12 : down8 ? #ff0202 : #008eff
plot(out8 and smaplot8 ? out8 :na , title="8", color=mycolor8, linewidth=1)
smaplot7 = input (true, title="MA13")
len7 = input.int(13, minval=1, title="ma Length")
out7 = exponential ? ta.ema(src, len7) : ta.sma(src, len7)
up7 = out7 > out7[1]
down7 = out7 < out7[1]
mycolor7 = up7 ? #3cfe12 : down7 ? #ff0202 : #008eff
plot(out7 and smaplot7 ? out7 :na , title="13", color=mycolor7, linewidth=1)
smaplot = input (true, title="MA21")
len = input.int(21, minval=1, title="ma Length")
out = exponential ? ta.ema(src, len) : ta.sma(src, len)
up = out > out[1]
down = out < out[1]
mycolor = up ? #3cfe12 : down ? #ff0202 : #008eff
plot(out and smaplot ? out :na, title="21", color=mycolor, linewidth=1)
smaplot2 = input (true, title="MA34")
len2 = input.int(34, minval=1, title="ma Length")
out2 = exponential ? ta.ema(src, len2) : ta.sma(src, len2)
up2 = out2 > out2[1]
down2 = out2 < out2[1]
mycolor2 = up2 ? #3cfe12 : down2 ? #ff0202 : #008eff
plot(out2 and smaplot2 ? out2 :na , title="34", color=mycolor2, linewidth=1)
smaplot3 = input (true, title="MA55")
len3 = input.int(55, minval=1, title="ma Length")
out3 = exponential ? ta.ema(src, len3) : ta.sma(src, len3)
up3 = out3 > out3[1]
down3 = out3 < out3[1]
mycolor3 = up3 ? #3cfe12 : down3 ? #ff0202 : #008eff
plot(out3 and smaplot3 ? out3 :na, title="55", color=mycolor3, linewidth=1)
smaplot4 = input (true, title="MA89")
len4 = input.int(89, minval=1, title="ma Length")
out4 = exponential ? ta.ema(src, len4) : ta.sma(src, len4)
up4 = out4 > out4[1]
down4 = out4 < out4[1]
mycolor4 = up4 ? #3cfe12 : down4 ? #ff0202 : #008eff
plot(out4 and smaplot4 ? out4 :na , title="89", color=mycolor4, linewidth=1)
smaplot5 = input (true, title="MA144")
len5 = input.int(144, minval=1, title="ma Length")
out5 = exponential ? ta.ema(src, len5) : ta.sma(src, len5)
up5 = out5 > out5[1]
down5 = out5 < out5[1]
mycolor5 = up5 ? #3cfe12 : down5 ? #ff0202 : #008eff
plot(out5 and smaplot5 ? out5 :na, title="144", color=mycolor5, linewidth=1)
smaplot6 = input (true, title="MA233")
len6 = input.int(233, minval=1, title="ma Length")
out6 = exponential ? ta.ema(src, len6) : ta.sma(src, len6)
up6 = out6 > out6[1]
down6 = out6 < out6[1]
mycolor6 = up6 ? #3cfe12 : down6 ? #ff0202 : #008eff
plot(out6 and smaplot6 ? out6 :na , title="233", color=mycolor6, linewidth=1)
smaplot10 = input (true, title="MA377")
len10 = input.int(377, minval=1, title="ma Length")
out10 = exponential ? ta.ema(src, len10) : ta.sma(src, len10)
up10 = out10 > out10[1]
down10 = out10 < out10[1]
mycolor10 = up10 ? #3cfe12 : down10 ? #ff0202 : #008eff
plot(out10 and smaplot10 ? out10 :na , title="377", color=mycolor10, linewidth=1)
smaplot14 = input (true, title="MA610")
len14 = input.int(610, minval=1, title="ma Length")
out14 = exponential ? ta.ema(src, len14) : ta.sma(src, len14)
up14 = out14 > out14[1]
down14 = out14 < out14[1]
mycolor14 = up14 ? #3cfe12 : down14 ? #ff0202 : #008eff
plot(out14 and smaplot14 ? out14 :na , title="610", color=mycolor14, linewidth=1)
smaplot15 = input (true, title="MA987")
len15 = input.int(987, minval=1, title="ma Length")
out15 = exponential ? ta.ema(src, len15) : ta.sma(src, len15)
up15 = out15 > out15[1]
down15 = out15 < out15[1]
mycolor15 = up15 ? #3cfe12 : down15 ? #ff0202 : #008eff
plot(out15 and smaplot15 ? out15 :na , title="987", color=mycolor15, linewidth=1)
smaplot16 = input (true, title="MA1597")
len16 = input.int(1597, minval=1, title="ma Length")
out16 = exponential ? ta.ema(src, len16) : ta.sma(src, len16)
up16 = out16 > out16[1]
down16 = out16 < out16[1]
mycolor16 = up16 ? #3cfe12 : down16 ? #ff0202 : #008eff
plot(out16 and smaplot16 ? out16 :na , title="1597", color=mycolor16, linewidth=1)
smaplot17 = input (true, title="MA2584")
len17 = input.int(2584, minval=1, title="ma Length")
out17 = exponential ? ta.ema(src, len17) : ta.sma(src, len17)
up17 = out17 > out17[1]
down17 = out17 < out17[1]
mycolor17 = up17 ? #3cfe12 : down17 ? #ff0202 : #008eff
plot(out17 and smaplot17 ? out17 :na , title="2584", color=mycolor17, linewidth=1)
smaplot19 = input (true, title="MA4181")
len19 = input.int(4181, minval=1, title="ma Length")
out19 = exponential ? ta.ema(src, len19) : ta.sma(src, len19)
up19 = out19 > out19[1]
down19 = out19 < out19[1]
mycolor19 = up19 ? #3cfe12 : down19 ? #ff0202 : #008eff
plot(out19 and smaplot19 ? out19 :na , title="4181", color=mycolor19, linewidth=1)
//
string GRP3 = "Visual MA Settings"
exponential5 = input(false, title="EMA or SMA", tooltip="EMA checked or SMA unchecked", group = GRP3)
smaplot50 = input (true, title="MA50")
len50 = input.int(50, minval=1, title="ma Length")
ma50 = exponential5 ? ta.ema(src, len50) : ta.sma(src, len50)
up50 = ma50 > ma50[1]
down50 = ma50 < ma50[1]
mycolor50 = up50 ? #3cfe12 : down50 ? #ff0202 : #008eff
plot(ma50 and smaplot50 ? ma50 :na , title="50", color=mycolor50, linewidth=1)
smaplot100 = input (true, title="MA100")
len100 = input.int(100, minval=1, title="ma Length")
ma100 = exponential5 ? ta.ema(src, len100) : ta.sma(src, len100)
up100 = ma100 > ma100[1]
down100 = ma100 < ma100[1]
mycolor100 = up100 ? #3cfe12 : down100 ? #ff0202 : #008eff
plot(ma100 and smaplot100 ? ma100 :na , title="100", color=mycolor100, linewidth=1)
smaplot150 = input (true, title="MA150")
len150 = input.int(150, minval=1, title="ma Length")
ma150 = exponential5 ? ta.ema(src, len150) : ta.sma(src, len150)
up150 = ma150 > ma150[1]
down150 = ma150 < ma150[1]
mycolor150 = up150 ? #3cfe12 : down150 ? #ff0202 : #008eff
plot(ma150 and smaplot150 ? ma150 :na , title="150", color=mycolor150, linewidth=1)
smaplot200 = input (true, title="MA200")
len200 = input.int(200, minval=1, title="ma Length")
ma200 = exponential5 ? ta.ema(src, len200) : ta.sma(src, len200)
up200 = ma200 > ma200[1]
down200 = ma200 < ma200[1]
mycolor200 = up200 ? #3cfe12 : down200 ? #ff0202 : #008eff
plot(ma200 and smaplot200 ? ma200 :na , title="200", color=mycolor200, linewidth=1)
//
if (ta.crossover(long1, long2))
strategy.entry("maL", strategy.long, comment="maLong")
if (ta.crossunder(short1, short2))
strategy.entry("maS", strategy.short, comment="maShort")
////