Esta estratégia usa uma combinação de múltiplos indicadores para determinar a direção da tendência e as oportunidades de negociação, adotando uma abordagem de balanço de pressão para aumentar a taxa de ganho dos negócios.
Utilize a EMA para calcular a média móvel para determinar a direção geral da tendência.
Use o MACD para calcular a diferença entre as médias móveis rápidas e lentas.
Use o PSAR para calcular o ponto variável contínuo. Quando o valor do PSAR é grande, ele indica uma tendência de queda, quando o valor do PSAR é pequeno, ele indica uma tendência de alta.
Combine os três indicadores acima para determinar a consistência da tendência.
Entre em negociações com base em critérios de compra e venda e defina pontos de stop loss e take profit.
As regras específicas são:
Usar vários indicadores para determinar a tendência melhora a precisão.
A abertura de negociações com base em tendências definidas identificadas através do balanço de pressão aumenta a taxa de ganho.
A definição de stop loss e take profit pode limitar as perdas e bloquear os lucros.
Regras de negociação claras e sistemáticas tornam-no adequado para a negociação por algoritmos.
Os parâmetros podem ser otimizados para se adaptarem a diferentes produtos e prazos.
O julgamento da tendência pode ser errado, resultando em uma direção comercial incorreta.
Os movimentos extremos do mercado podem gerar falsos sinais dos indicadores.
A perda de paragem está a ser demasiado grande, incapaz de sair a tempo.
O ajuste inadequado dos parâmetros leva a transações excessivas ou em falta.
Os produtos não líquidos não podem cumprir os planos de stop loss e take profit.
Os riscos podem ser reduzidos através da otimização dos parâmetros, ajustando as paradas e selecionando produtos líquidos.
Ajustar o período EMA para otimizar a precisão da tendência.
Ajustar o período MACD rápido e lento para melhorar a sensibilidade.
Otimizar os índices de stop loss e de lucro para encontrar o equilíbrio ideal.
Adicionar outros indicadores auxiliares para melhorar o calendário de entrada.
Escolha produtos com boa liquidez e grandes oscilações.
Ajustar os prazos para se adequarem às diferentes características do produto.
Esta estratégia integra múltiplos indicadores para análise de tendências e entra em negociações com base em tendências definidas, com stop loss e take profit pré-definidos, que podem efetivamente capturar os movimentos do mercado e alcançar bons retornos, garantindo certa lucratividade.
/*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')