A estratégia de determinar a tendência do preço através do cálculo do cruzamento de duas medianas e em conjunto com um determinado limite de parâmetros para emitir sinais de compra e venda. A estratégia é dividida em três partes principais: primeiro, através do cálculo do cruzamento de médias rápidas e médias lentas para determinar a tendência do preço; segundo, em conjunto com um determinado limite de parâmetros para evitar transações erradas; e terceiro, o uso de stop loss para controlar o risco.
O núcleo da estratégia é calcular a média rápida e a média lenta. A média rápida tem um parâmetro de metade do ciclo da média e é mais sensível à mudança de preço de reação. A média lenta tem um parâmetro de ciclo da média e a mudança de preço de reação é mais estável.
Além disso, a estratégia também define alguns parâmetros para evitar erros de negociação. Se o limiar de decisão for definido, o sinal de negociação será emitido somente quando o diferencial médio-rápido ultrapassar uma certa amplitude. Os parâmetros de confiança são usados para filtrar oscilações, e o sinal será emitido somente quando a flutuação do preço atingir um certo nível.
Finalmente, a estratégia usa o stop loss para controlar o risco. Se o openprofit for menor do que o stop loss, a posição é retirada, e se for superior ao stop loss, a posição é retirada, o que controla efetivamente a perda individual.
A maior vantagem desta estratégia é a combinação de indicadores lineares para determinar a tendência dos preços e características de flutuação. Os indicadores de preços binários são um método de indicadores técnicos clássicos e eficazes, que podem ser capturados com precisão após a otimização dos parâmetros. Os indicadores de confiança flutuantes podem filtrar os mercados de volatilidade e evitar frequentes erros de negociação.
Além disso, a configuração de parâmetros como o limiar de decisão e o stop loss também reduz significativamente o risco de negociação e evita a busca de alta e baixa.
O principal risco desta estratégia é a possibilidade de que os indicadores de dupla linha de equilíbrio emitam sinais errados. A linha de equilíbrio rápida e a linha de equilíbrio lenta são médias móveis ponderadas, são mais lentos em reagir a eventos inesperados e podem perder a reversão de preços de curto prazo.
Além disso, a configuração inadequada do ponto de parada de parada também aumenta o risco. Pontos de parada muito altos ou muito baixos podem causar perdas acima do esperado. Isso requer a configuração de parâmetros razoáveis de acordo com as características e a taxa de flutuação de diferentes variedades.
A estratégia pode ser melhorada em vários aspectos:
Otimizar o ciclo da linha média, configurando uma linha média adaptável, para que seja possível melhor modelar os movimentos de preços em diferentes períodos;
Instalação de um mecanismo de rastreamento de stop-loss dinâmico, que permite a variação dinâmica do ponto de parada de perda através do cálculo da taxa de flutuação em tempo real;
O aumento de modelos de aprendizado de máquina para determinar a direção da tendência de preços, o uso de mais dados históricos para determinar a direção atual dos preços, reduzindo os sinais errados.
A estratégia é, em geral, uma estratégia de negociação de tendências clássica, simples e eficaz. Usando tendências de determinação de cruzamento de duas equações, configuração de parâmetros para controle de risco, configurabilidade forte, e aplica-se a transações de várias variedades. O efeito geral seria melhor se pudesse introduzir meios de decisão mais inteligentes, como aprendizado de máquina, e vale a pena pesquisar mais.
/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
// Any timeFrame ok but good on 15 minute & 60 minute , Ichimoku + Daily-Candle_cross(DT) + HULL-MA_cross + MacD combination 420 special blend
strategy("Trade Signal", shorttitle="Trade Alert", overlay=true )
keh=input(title="Double HullMA",defval=14, minval=1)
dt = input(defval=0.0010, title="Decision Threshold (0.001)", type=float, step=0.0001)
SL = input(defval=-10.00, title="Stop Loss in $", type=float, step=1)
TP = input(defval=100.00, title="Target Point in $", type=float, step=1)
ot=1
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green
confidence=(request.security(syminfo.tickerid, '5', close[1])-request.security(syminfo.tickerid, '60', close[1]))/request.security(syminfo.tickerid, '60', close[1])
conversionPeriods = input(9, minval=1, title="Conversion Line Periods")
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods")
displacement = input(26, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
LS=close, offset = -displacement
MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(26)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength)
aMACD = ema(MACD, MACD_Length)
closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
strategy.close("Long")
closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
strategy.close("Short")
longCondition = n1>n2 and strategy.opentrades<ot and confidence>dt and close>n2 and leadLine1>leadLine2 and open<LS and MACD>aMACD
if (longCondition)
strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and strategy.opentrades<ot and confidence<dt and close<n2 and leadLine1<leadLine2 and open>LS and MACD<aMACD
if (shortCondition)
strategy.entry("Short",strategy.short)
//alerts
alertcondition(closelong, title='Close Buy Position', message='Close Buy Position')
alertcondition(closeshort, title='Close Short Position', message='Close Short Position')
alertcondition(longCondition, title='Buy Signal', message='Buy Signal Alert')
alertcondition(shortCondition, title='Sell Signal', message='Sell Signal Alert')
//a1=plot(n1,color=c)
//a2=plot(n2,color=c)plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
//plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 4)
plot(conversionLine, color=#0496ff, title="Conversion Line")
plot(baseLine, color=#991515, title="Base Line")
plot(close, offset = -displacement, color=#459915, title="Lagging Span")
p1=plot (leadLine1, offset = displacement, color=green, title="Lead 1")
p2=plot (leadLine2, offset = displacement, color=red, title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)
// remove the "//" from before the plot script if want to see the indicators on chart