Способ отслеживания с низким сканером

Автор:Чао Чжан, Дата: 2023-11-01 16:12:00
Тэги:

img

Обзор

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

Принципиальный анализ

Во-первых, стратегия использует низкий сканер для определения низких точек. низкий сканер вычисляет значения RSI цены и объема и сравнивает их с кривой WMA для определения низких точек, когда RSI ниже WMA.

Во-вторых, стратегия использует Hull Moving Average для оценки торгового сигнала. Она рассчитывает две Hull MA с разными периодами, и идет длинным, когда более короткий период Hull MA пересекает более длинный период один, и идет коротким, когда он пересекает под.

Наконец, стратегия сочетает в себе сигналы сканирования низкой точки и сигналы Hull MA, и только запускает сигналы Hull MA, когда низкий сканер выдает сигналы низкой точки, образуя стратегию входа.

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

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

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

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

  2. Hull MA является отличным индикатором отслеживания тенденций, который может отслеживать более крупные тенденции.

  3. Объединение низкого сканера и корпуса MA подтверждает друг друга и фильтрует много шума и ложных сигналов.

  4. Принятие прогрессивного механизма остановки потерь может максимизировать прибыль и избежать отказов.

  5. Стратегия использует логику, основанную на показателях, и не манипулирует историческими данными, что является надежным.

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

Основными рисками этой стратегии являются:

  1. Низкий сканер может пропустить некоторые низкие точки и потерять торговые возможности.

  2. Рынки могут резко измениться, в результате чего будет достигнут стоп-лосс.

  3. Неправильные настройки параметров могут генерировать слишком много или слишком мало торговых сигналов.

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

Руководство по оптимизации

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

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

  2. Оптимизировать параметры Hull MA для более точного отслеживания тенденций.

  3. Добавьте другие фильтры индикаторов, такие как MACD, KDJ, чтобы улучшить надежность сигнала.

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

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

  6. Оптимизировать стратегию размещения позиций для динамической корректировки размеров позиций на основе правил управления денежными средствами.

Заключение

Метод интеллектуального отслеживания с низким сканером - это стратегия торговли на рынке Форекс с высоким уровнем выигрыша. Он может точно идентифицировать низкие точки рынка и входить в тренд, когда тенденция ясна, зафиксируя прибыль с прогрессивной остановкой потери. Стратегия имеет большое пространство для оптимизации и может быть улучшена во многих отношениях, чтобы стать мощной автоматизированной торговой системой.


/*backtest
start: 2023-10-24 00:00:00
end: 2023-10-25 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © theCrypster 2020

//@version=4
// strategy(title = "Low Scanner Forex strategy", overlay = false, pyramiding=1,initial_capital = 1000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
leng=1
p1=close[1]
min=input(1440)
len55 = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   min / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7
//taken from https://www.tradingview.com/script/Ql1FjjfX-security-free-MTF-example-JD/
tf3 = input("W", type=input.resolution)
ti = change( time(tf3) ) != 0
T_c = fixnan( ti ? close : na )

vrsi = rsi(cum(change(T_c) * volume), leng)
pp=wma(vrsi,len55)

d=(vrsi[1]-pp[1])
min1 =input(60)
len100 = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   min1 / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7
x=ema(d,len100)
//
zx=x/-1
col=zx > 0? color.lime : color.orange
plot(zx,color=col,linewidth=1)
//

tf10 = input("W", title = "Timeframe", type = input.resolution, options = ["1", "5", "15", "30", "60","120", "240","360","720", "D", "W"])

length = input(24, title = "Period", type = input.integer)
shift = input(1, title = "Shift", type = input.integer)

hma(_src, _length)=>
    wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length)))
    
hma3(_src, _length)=>
    p = length/2
    wma(wma(close,p/3)*3 - wma(close,p/2) - wma(close,p),p)


a = security(syminfo.tickerid, tf10, hma(close, length))
b =security(syminfo.tickerid, tf10, hma3(close[1], length)[shift])
//plot(a,color=color.gray)
//plot(b,color=color.yellow)
close_price = close[0]
len = input(25)

linear_reg = linreg(close_price, len, 0)


//plot(linear_reg, color=color.blue, title="LR", linewidth=3)

buy=crossover(linear_reg, b) 
sell=crossunder(linear_reg, b) 
//
// Time period input
testStartYear = input(2016, "BACKTEST START YEAR", minval = 1980, maxval = 2222) 
testStartMonth = input(06, "BACKTEST START MONTH", minval = 1, maxval = 12)
testStartDay = input(01, "BACKTEST START DAY", minval = 1, maxval = 31)
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2222, "BACKTEST STOP YEAR", minval=1980, maxval = 2222)
testStopMonth = input(12, "BACKTEST STOP MONTH", minval=1, maxval=12)
testStopDay = input(31, "BACKTEST STOP DAY", minval=1, maxval=31)
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriod = time >= testPeriodStart and time <= testPeriodStop ? true : false
l = crossover(zx,0) or buy
        
if l and testPeriod
    strategy.entry("buy", strategy.long)

per(pcnt) =>
    strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=25, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=0.5, minval=0.01)
tp2=input(title=" Take profit2", defval=1, minval=0.01)
tp3=input(title=" Take profit3", defval=1.5, minval=0.01)
tp4=input(title=" Take profit4", defval=2, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)


Больше