Este artigo explica detalhadamente uma estratégia quantitativa de negociação que utiliza o ATR para o stop loss e os breakouts Kijun-Sen para a entrada, com validação adicional do sinal utilizando o indicador Williams %R para controlar o risco de negociação.
I. Lógica da estratégia
Os principais indicadores desta estratégia incluem:
ATR como indicador de stop loss, que reflete dinamicamente a volatilidade do mercado.
Linha Ichimoku Kijun-Sen para determinar a direção da tendência e fornecer sinais de entrada.
Williams %R para validação de sinal adicional para evitar entradas falsas.
A lógica específica do comércio é a seguinte:
Tomar posições longas quando o preço quebra abaixo e recupera acima da linha Kijun-Sen. Tomar posições curtas quando o preço quebra acima e cai abaixo da linha. Isso permite seguir a tendência.
Ao mesmo tempo, verifique se o Williams %R concorda com a direção, caso contrário, ignore a entrada.
Defina a taxa de stop loss nos níveis calculados do ATR para cada entrada, que reflete dinamicamente a volatilidade do mercado, permitindo um dimensionamento razoável da taxa de stop loss.
Quando o stop loss ou take profit é acionado, feche as posições com lucro.
II. Vantagens da Estratégia
As principais vantagens desta estratégia são:
Em primeiro lugar, o ATR define o controlo do risco de acordo com a volatilidade do mercado, evitando efetivamente grandes perdas.
Em segundo lugar, as entradas Kijun-Sen com validação Williams %R melhoram a qualidade do sinal.
Por último, as configurações de stop loss e take profit também definem o risco-recompensa para cada negociação.
III. Deficiências potenciais
Contudo, devem igualmente ser tidos em conta os seguintes riscos:
Em primeiro lugar, os sinais Kijun-Sen podem atrasar-se durante as transições de tendência, não reagindo a tempo.
Em segundo lugar, o risco de um stop loss demasiado agressivo ser interrompido prematuramente.
Por último, a otimização de parâmetros inadequada também pode levar a problemas de sobreajuste.
IV. Resumo
Em resumo, este artigo explicou uma estratégia quantitativa de negociação usando ATR para stop loss e Kijun-Sen para sinais de entrada. Pode alcançar controle de risco eficaz através de paradas dinâmicas e filtragem de sinal. Mas os riscos como transições de tendência e invalidação de stop loss precisam ser evitados.
/*backtest start: 2023-09-06 00:00:00 end: 2023-09-13 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // strategy("NNFX ft. ATR, Kijun-Sen, %R","NNFX-2",true,pyramiding=1,calc_on_order_fills=true,calc_on_every_tick=true,initial_capital = 1000, currency="USD",slippage=5,commission_type=strategy.commission.cash_per_contract,commission_value=0.000035) strategy.initial_capital = 50000 //INDICATOR--------------------------------------------------------------------- //Average True Range (1. RISK) atr_period = input(14, "Average True Range Period") atr = atr(atr_period) //Ichimoku Cloud - Kijun Sen (2. BASELINE) ks_period = input(20, "Kijun Sen Period") kijun_sen = (highest(high,ks_period) + lowest(low,ks_period))/2 base_long = open < kijun_sen and close > kijun_sen base_short = open > kijun_sen and close < kijun_sen //Williams Percent Range (3. Confirmation#1) use_wpr = input(true,"Use W%R?") wpr_len = input(1, "Williams % Range Period") wpr = -100*(highest(high,wpr_len) - close)/(highest(high,wpr_len) - lowest(low,wpr_len)) wpr_up = input(-25, "%R Upper Level") wpr_low = input(-75, "%R Lower Level") conf1_long = wpr >= wpr_up conf1_short = wpr <= wpr_low if(use_wpr == false) conf1_long := true conf1_short := true //TRADE LOGIC------------------------------------------------------------------- //Long Entry //if -> WPR crosses below -39 AND MACD line is less than signal line l_en = base_long and conf1_long //Long Exit //if -> WPR crosses above -14 l_ex = close < kijun_sen //Short Entry //if -> WPR crosses above -39 AND MACD line is greater than signal line s_en = base_short and conf1_short //Short Exit //if -> WPR crosses under -14 s_ex = close > kijun_sen //MONEY MANAGEMENT-------------------------------------------------------------- balance = strategy.netprofit + strategy.initial_capital //current balance floating = strategy.openprofit //floating profit/loss isTwoDigit = input(false,"Is this a 2 digit pair? (JPY, XAU, XPD...") risk = input(5,"Risk %")/100 //risk % per trade equity_protector = input(30,"Equity Protection %")/100 //equity protection % stop = atr*100000*input(1.5,"Average True Range multiplier") //Stop level if(isTwoDigit) stop := stop/100 target = input(150, "Target TP in Points") //TP level //Calculate current DD and determine if stopout is necessary equity_stopout = false if(floating<0 and abs(floating/balance)>equity_protector) equity_stopout := true //Calculate the size of the next trade temp01 = balance * risk //Risk in USD temp02 = temp01/stop //Risk in lots temp03 = temp02*100000 //Convert to contracts size = temp03 - temp03%1000 //Normalize to 1000s (Trade size) if(size < 1000) size := 1000 //Set min. lot size //TRADE EXECUTION--------------------------------------------------------------- strategy.close_all(equity_stopout) //Close all trades w/equity protector is_open = strategy.opentrades > 0 if(true) strategy.entry("l_en",true,oca_name="a",when=l_en and not is_open) //Long entry strategy.entry("s_en",false,oca_name="a",when=s_en and not is_open) //Short entry strategy.exit("S/L","l_en",loss=stop, profit=target) //Long exit (stop loss) strategy.close("l_en",when=l_ex) //Long exit (exit condition) strategy.exit("S/L","s_en",loss=stop, profit=target) //Short exit (stop loss) strategy.close("s_en",when=s_ex) //Short exit (exit condition) //PLOTTING---------------------------------------------------------------------- plot(kijun_sen,"Kijun-Sen",color.blue,2)