
Esta estratégia usa uma combinação de vários indicadores para determinar a direção da tendência e o tempo de negociação, e usa uma abordagem de equilíbrio de pressão para aumentar a probabilidade de negociação. Usando principalmente os três indicadores MACD, PSAR e EMA para julgar, em combinação com o Stop Loss Stop para obter ganhos eficientes.
Utilize a EMA para calcular a linha média e determinar a direção da tendência geral. Um EMA maior representa uma tendência ascendente e um EMA menor representa uma tendência descendente.
Usando o MACD para calcular a diferença entre a linha rápida e a linha lenta, quando a diferença é maior que 0 significa que está em uma tendência ascendente, e quando a diferença é menor que 0 significa que está em uma tendência descendente.
Usando o PSAR para calcular os pontos de variação contínua, quando o valor maior do PSAR representa atualmente uma tendência decrescente, quando o valor menor do PSAR representa atualmente uma tendência ascendente.
A combinação dos três indicadores acima, para julgar a consistência da tendência. Quando os três indicadores de julgamento do resultado coincidir, representando a tendência é mais clara, pode ser feita compra ou venda operação.
Abrir posições de acordo com as condições de compra e venda, e definir um ponto de parada de perda, para obter lucro quando atingir a condição de parada ou parada.
As regras de funcionamento são as seguintes:
O uso de vários indicadores para avaliar tendências aumenta a precisão do julgamento.
O equilíbrio de pressão é usado para abrir posições quando a tendência é clara, aumentando a probabilidade de lucro.
Estabeleça um ponto de parada para limitar perdas e bloquear lucros.
Um sistema de regras claras para transações programadas.
Pode ser otimizado com parâmetros, adaptado a diferentes variedades e ciclos de negociação.
A análise de tendências pode ser errada, levando a posições erradas.
A tendência é que os mercados mudem drasticamente e os indicadores possam emitir sinais falsos.
O ponto de paragem é muito grande e não pode ser parado a tempo.
Parâmetros mal definidos, resultando em negociações muito frequentes ou impossibilitando a abertura de posições em tempo útil.
A liquidez das variedades negociadas é insuficiente e não é possível deter os prejuízos como planejado.
Pode-se reduzir o risco através da otimização dos parâmetros, ajustando o ponto de parada de perda e escolhendo variedades de negociação com boa liquidez.
Ajustar os parâmetros do ciclo EMA para otimizar a precisão do julgamento de tendências.
Ajustar os parâmetros de ciclo de linha rápida e lenta do MACD para otimizar a sensibilidade do indicador MACD.
Ajustar os parâmetros da proporção de stop loss para obter o melhor equilíbrio de stop loss.
Adição de outros indicadores auxiliares para melhorar a precisão da seleção do momento da abertura da posição.
Optimizar a seleção de variedades de negociação, escolher variedades com boa liquidez e maior volatilidade.
Ajustar o ciclo de tempo de negociação para as características do mercado de diferentes variedades
Esta estratégia utiliza vários indicadores para avaliar as tendências, abrir posições quando as tendências são claras e definir um stop loss para controlar o movimento do mercado e obter um retorno ideal, garantindo um certo lucro. Otimizando os parâmetros e adicionando outros indicadores auxiliares, pode aumentar ainda mais a estabilidade e o nível de lucro da estratégia.
/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99
//@version=4
strategy(title = "Crypto Scalper", overlay = true, pyramiding=1,initial_capital = 100, 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.03)
len = input(60, minval=1, title="Length EMA")
src = input(close, title="Source")
out = ema(src, len)
//
fast_length = input(title="Fast Length MACD", type=input.integer, defval=12)
slow_length = input(title="Slow Length MACD", type=input.integer, defval=26)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Oscillator MA Type MACD", type=input.string, defval="EMA", options=["SMA", "EMA"])
sma_signal = input(title="Signal Line MA Type MACD", type=input.string, defval="EMA", options=["SMA", "EMA"])
// Calculating
fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
firstTrendBar = false
SAR := nextBarSAR
if bar_index == 1
float prevSAR = na
float prevEP = na
lowPrev = low[1]
highPrev = high[1]
closeCur = close
closePrev = close[1]
if closeCur > closePrev
uptrend := true
EP := high
prevSAR := lowPrev
prevEP := high
else
uptrend := false
EP := low
prevSAR := highPrev
prevEP := low
firstTrendBar := true
SAR := prevSAR + start * (prevEP - prevSAR)
if uptrend
if SAR > low
firstTrendBar := true
uptrend := false
SAR := max(EP, high)
EP := low
AF := start
else
if SAR < high
firstTrendBar := true
uptrend := true
SAR := min(EP, low)
EP := high
AF := start
if not firstTrendBar
if uptrend
if high > EP
EP := high
AF := min(AF + increment, maximum)
else
if low < EP
EP := low
AF := min(AF + increment, maximum)
if uptrend
SAR := min(SAR, low[1])
if bar_index > 1
SAR := min(SAR, low[2])
else
SAR := max(SAR, high[1])
if bar_index > 1
SAR := max(SAR, high[2])
nextBarSAR := SAR + AF * (EP - SAR)
tplong=input(0.245, step=0.005)
sllong=input(1.0, step=0.005)
tpshort=input(0.055, step=0.005)
slshort=input(0.03, step=0.005)
if (uptrend and hist >0 and close < out)
strategy.entry("short", strategy.short, stop=nextBarSAR, comment="short")
strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort')
if (not uptrend and hist <0 and close > out)
strategy.entry("long", strategy.long, stop=nextBarSAR, comment="long")
strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT', alert_message = 'closelong')