Método de rastreamento inteligente de scanner baixo

Autora:ChaoZhang, Data: 2023-11-01 16:12:00
Tags:

img

Resumo

O Low Scanner Smart Tracking Method é uma estratégia de negociação Forex sem repintura. Ele usa um scanner baixo para localizar pontos baixos e combina-se com a Hull Moving Average para julgamento de sinais comerciais, o que pode alcançar uma alta taxa de ganho.

Análise dos princípios

Em primeiro lugar, a estratégia usa um scanner baixo para localizar os pontos baixos. O scanner baixo calcula os valores do RSI de preço e volume e os compara com a curva WMA para determinar os pontos baixos quando o RSI é inferior ao WMA.

Em segundo lugar, a estratégia usa a média móvel de Hull para julgamento de sinais comerciais. Calcula dois Hull MA com períodos diferentes e vai longo quando o período mais curto Hull MA cruza o período mais longo um, e vai curto quando cruza abaixo.

Finalmente, a estratégia combina os sinais de varredura de ponto baixo e os sinais de Hull MA, e só aciona os sinais de Hull MA quando o scanner baixo emite sinais de ponto baixo, formando a estratégia de entrada.

Desta forma, ao identificar primeiro os pontos baixos do mercado e, em seguida, acompanhar a tendência, pode efetivamente evitar o momento errado de entrada e melhorar a taxa de ganho do sistema de negociação.

Análise das vantagens

As principais vantagens do Método de Rastreamento Inteligente Low Scanner são:

  1. Usando o scanner baixo, ele pode identificar com precisão os pontos baixos do mercado e evitar comprar em pontos altos.

  2. O Hull MA é um excelente indicador de acompanhamento de tendências que pode capturar tendências maiores.

  3. Combinando o scanner baixo e o Hull MA verificam-se mutuamente e filtram muito ruído e falsos sinais.

  4. A adoção de um mecanismo de saída de stop loss progressivo pode maximizar os lucros e evitar retrações.

  5. A estratégia utiliza uma lógica orientada por indicadores e não manipula dados históricos, o que é confiável.

Análise de riscos

Os principais riscos desta estratégia são:

  1. Os parâmetros podem ser ajustados para expandir o intervalo de digitalização.

  2. O intervalo de stop loss pode ser relaxado razoavelmente e controlar o dimensionamento da posição.

  3. As configurações incorretas dos parâmetros podem gerar muitos ou poucos sinais de negociação.

  4. Esta estratégia aplica-se apenas a pares de opções binárias com tendências óbvias, não sendo adequada para mercados de variação ou oscilação.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Otimizar os parâmetros do scanner para identificar pontos baixos com mais precisão.

  2. Otimizar os parâmetros do Hull MA para acompanhar as tendências com mais precisão.

  3. Adicionar outros filtros de indicadores como MACD, KDJ para melhorar a confiabilidade do sinal.

  4. Adicionar previsões de modelos de aprendizagem de máquina para ajudar no julgamento de sinais comerciais.

  5. Otimizar o mecanismo de stop loss para ajustá-lo dinamicamente com base na volatilidade do mercado.

  6. Otimizar a estratégia de dimensionamento das posições para ajustar a dimensão das posições de forma dinâmica com base nas regras de gestão de fundos.

Conclusão

O Low Scanner Smart Tracking Method é uma estratégia de negociação Forex de alta taxa de ganho sem repintura. Pode identificar com precisão os pontos baixos do mercado e entrar na tendência quando a tendência estiver clara, bloqueando lucros com stop loss progressivo. A estratégia tem grande espaço para otimização e pode ser melhorada de muitas maneiras para se tornar um poderoso sistema de negociação automatizado.


/*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)


Mais.