
Эта стратегия применяет теорию равнолинейной торговли для построения сетчатой торговой системы, которая определяет рыночные тенденции с помощью комбинации равнолинейных комбинаций JMA с различными параметрами и открывает сетчатую торговлю в точке перехода тренда с целью получения прибыли от перехода на долголинейную тенденцию на рынке.
Для определения рыночной тенденции используйте комбинацию средних линий, составленную из средних линий JMA с периодом от 1 до 20 циклов. Когда средние краткосрочные циклы выше средних долгосрочных циклов, они рассматриваются как тенденция к росту, а, наоборот, тенденция к снижению.
Торговля в сетке начинается в момент перелома тренда, когда короткая средняя линия пересекает длинную среднюю линию сверху вниз или сверху вниз на длинную среднюю линию. Постепенное создание пустых линий в восходящем тренде; постепенное создание многолиний в нисходящем тренде.
Можно выбрать, будет ли фильтрован по цвету объекта K-линии, если он включен, покупать только на красной K-линии, продавать на зеленой K-линии, в противном случае не учитывать цвет K-линии и торговать только при переходе тренда.
Останавливающийся способ - это отслеживание остановки или истечения срока остановки. Останавливающийся срок - это время, когда стратегия заканчивает свой цикл и ликвидирует все свои позиции.
Используя среднелинейную систему для определения тенденции, можно эффективно определить переломные моменты в движении длинной линии на рынке.
Торговля сеткой позволяет получать прибыль от шокирующего рынка в отсутствие четкой тенденции. При этом можно настроить стоп-лосс для контроля риска.
JMA средняя линия параметры могут быть настроены, оптимизированы для различных циклов, высокая гибкость.
Можно выбрать, будет ли K-линия фильтроваться по цвету объекта, чтобы избежать ошибочного прорыва.
В условиях значительных колебаний и отсутствия явных тенденций рынок подвержен риску остановки.
Ошибки в оценке среднелинейной системы могут привести к ошибкам в торговых сигналах.
Если включить K-линейную фильтрацию, то рискуем пропустить некоторые торговые возможности.
Если сетчатое пространство слишком большое, вы не сможете получить достаточную прибыль; если оно слишком маленькое, вы будете иметь слишком много позиций и будете испытывать большое давление на расходы.
Можно проверить параметры для большего количества комбинаций, чтобы найти наиболее подходящие для разных сортов комбинации JMA.
Фильтрация в сочетании с другими показателями, такими как канал BOLL, KD и т. д., улучшает качество сигнала.
Параметры, позволяющие оптимизировать конфигурацию сетки, такие как расстояние между сетками, количество созданных складов и т. д.
Можно рассмотреть и другие типы остановок, такие как прыжки, отслеживание остановок и т. д.
Эта стратегия использует теорию средней линии JMA для определения трендового поворота и открытия сетчатой торговли в точке поворота. Вы можете получить прибыль от перевода длинных линий движения на рынке. Вы можете получить лучшую стратегическую эффективность путем оптимизации параметров. В целом, эта стратегия подходит для среднесрочного и долгосрочного удержания и постепенного отслеживания трендового движения для получения прибыли.
/*backtest
start: 2022-12-27 00:00:00
end: 2024-01-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2019
//@version=3
strategy(title = "Noro's Fishnet Strategy", shorttitle = "Fishnet str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
usecf = input(false, defval = false, title = "Use Color-filter")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//JMA
jmax(src, len) =>
beta = 0.45*(len-1)/(0.45*(len-1)+2)
alpha = pow(beta, 3)
L0=0.0, L1=0.0, L2=0.0, L3=0.0, L4=0.0
L0 := (1-alpha)*src + alpha*nz(L0[1])
L1 := (src - L0[0])*(1-beta) + beta*nz(L1[1])
L2 := L0[0] + L1[0]
L3 := (L2[0] - nz(L4[1]))*((1-alpha)*(1-alpha)) + (alpha*alpha)*nz(L3[1])
L4 := nz(L4[1]) + L3[0]
L4
ma01 = jmax(close, 10)
ma02 = jmax(close, 20)
ma03 = jmax(close, 30)
ma04 = jmax(close, 40)
ma05 = jmax(close, 50)
ma06 = jmax(close, 60)
ma07 = jmax(close, 70)
ma08 = jmax(close, 80)
ma09 = jmax(close, 90)
ma10 = jmax(close, 100)
ma11 = jmax(close, 110)
ma12 = jmax(close, 120)
ma13 = jmax(close, 130)
ma14 = jmax(close, 140)
ma15 = jmax(close, 150)
ma16 = jmax(close, 160)
ma17 = jmax(close, 170)
ma18 = jmax(close, 180)
ma19 = jmax(close, 190)
ma20 = jmax(close, 200)
trend = 0
trend := ma01 > ma20 ? 1 : ma01 < ma20 ? -1 : trend[1]
col = trend == 1 ? #00FF7F : #DC143C
plot(ma01, transp = 0, color = col)
plot(ma02, transp = 0, color = col)
plot(ma03, transp = 0, color = col)
plot(ma04, transp = 0, color = col)
plot(ma05, transp = 0, color = col)
plot(ma06, transp = 0, color = col)
plot(ma07, transp = 0, color = col)
plot(ma08, transp = 0, color = col)
plot(ma09, transp = 0, color = col)
plot(ma10, transp = 0, color = col)
plot(ma11, transp = 0, color = col)
plot(ma12, transp = 0, color = col)
plot(ma13, transp = 0, color = col)
plot(ma14, transp = 0, color = col)
plot(ma15, transp = 0, color = col)
plot(ma16, transp = 0, color = col)
plot(ma17, transp = 0, color = col)
plot(ma18, transp = 0, color = col)
plot(ma19, transp = 0, color = col)
plot(ma20, transp = 0, color = col)
//Trading
lot = 0.0
lot := strategy.equity / close * capital / 100
if trend == 1 and (close < open or usecf == false)
strategy.entry("Long", strategy.long, needlong ? lot : na)
if trend == -1 and (close > open or usecf == false)
strategy.entry("Short", strategy.short, needshort ? lot : na)