
Esta estratégia utiliza uma simples média móvel cruzada e uma técnica de paragem dupla para controlar o risco e aumentar a probabilidade de lucro. A estratégia é adequada para negociações de curto e médio prazo e pode capturar oportunidades quando a tendência muda.
A estratégia baseia-se no cruzamento entre a EMA e a WMA para determinar a tendência do mercado. Quando a EMA está acima da WMA, faça mais; Quando a EMA está abaixo da WMA, faça menos.
Cada vez que uma posição é aberta, a estratégia define dois níveis de parada. O primeiro nível de parada é fixado como o preço de abertura + 20 pontos, o segundo nível de parada é fixado como o preço de abertura + 40 pontos. Ao mesmo tempo, define um nível de parada de perda, fixado como o preço de abertura - 20 pontos.
Quando o preço toca o primeiro nível de parada, a posição é liquidada em metade. As posições restantes continuam a ser mantidas e buscam o segundo nível de parada ou são suspensas.
Assim, cada transação tem três resultados:
O preço desencadeou um stop loss, um prejuízo direto de 2%.
O preço desencadeia o primeiro stop, equilibra a metade da posição, bloqueia o lucro de 1%, e então continua a funcionar até que seja parado, terminando em equilíbrio de liquidação, com zero lucro.
Os preços continuam a funcionar após a primeira parada, depois a segunda parada, resultando em um lucro de 1% + 2% = 3%.
A maior vantagem dessa estratégia de stop loss dupla é que pode controlar o risco e evitar grandes perdas únicas. Quando o mercado está ruim, o stop loss pode controlar os prejuízos em menos de 2%. Quando o mercado está em sol, dois níveis de stop loss podem obter lucros mais lucrativos.
Em comparação com a estratégia de parada de parada única, a estratégia tem três resultados: perdas, ganhos e não perdas, reduzindo a probabilidade de parada. Mesmo com a parada, a perda máxima é controlada em 2%. Em comparação com a estratégia de parada de parada tradicional, a estratégia de parada de parada dupla reduz significativamente o DD e aumenta a taxa de vitória.
Outra vantagem é a simplicidade de operação. EMA e WMA são indicadores conhecidos e fáceis de entender. A lógica de stop loss é muito clara e fácil de monitorar. Isso torna a estratégia fácil de ser aceita e implementada por iniciantes em negociação quantitativa.
Embora tenha algumas vantagens, a estratégia também apresenta alguns riscos que devem ser levados em conta.
Em primeiro lugar, a EMA e WMA, como indicadores de linha média, têm uma fraca capacidade de reconhecimento de situações de choque. Quando a tendência não é clara, pode haver mais sinais errados, resultando em negociações muito frequentes.
Em segundo lugar, o ponto de parada fixo pode não coincidir com a oscilação do mercado. Quando a oscilação é grande, o stop loss pode ser ultrapassado e não pode ser protetor.
Finalmente, a estratégia não é capaz de responder a eventos inesperados, e existe o risco de ser arbitragem. Quando ocorrem grandes eventos de notícias, o mercado pode ter um grande salto, que atravessa diretamente a linha de parada e causa um grande prejuízo.
A estratégia pode ser melhorada em alguns aspectos:
Melhorar o sinal de entrada. Pode-se tentar um indicador de linha média ou indicador de tendência melhor do que o EMA e o WMA para melhorar a qualidade do sinal.
Ajuste dinâmico do ponto de parada de perda. Pode ajustar o ponto de parada de perda em tempo real de acordo com o ATR, o stop loss móvel, etc., para que possa acompanhar o mercado.
Adicionar condições de filtragem. Você pode adicionar volume de transação ou confirmação de indicadores secundários antes do Gold Forks, evitando ser encaixado. Você também pode escolher se você está negociando ou não de acordo com o calendário de eventos importantes.
Optimizar o gerenciamento de posições. Pode-se otimizar o tamanho da posição específica de cada transação de acordo com os princípios de gerenciamento de fundos.
Esta estratégia é, em geral, uma estratégia de acompanhamento de tendências simples e práticas. Ela usa EMA e WMA para formar sinais de negociação e controla o risco usando técnicas de dupla parada. Comparado com a estratégia tradicional, tem vantagens de maior probabilidade de lucro e menor risco.
/*backtest
start: 2023-11-06 00:00:00
end: 2023-11-13 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("FS ATR & PS (MA)", overlay=true)
// Strategy
Buy = input(true)
Sell = input(true)
// Time Period
start_year = input(title='Start year' ,defval=2019)
start_month = input(title='Start month' ,defval=1)
start_day = input(title='Start day' ,defval=1)
start_hour = input(title='Start hour ' ,defval=0)
start_minute = input(title='Start minute' ,defval=0)
end_time = input(title='set end time?',defval=false)
end_year = input(title='end year' ,defval=2019)
end_month = input(title='end month' ,defval=12)
end_day = input(title='end day' ,defval=31)
end_hour = input(title='end hour' ,defval=23)
end_minute = input(title='end minute' ,defval=59)
// MA
ema_period = input(title='EMA period',defval=10)
wma_period = input(title='WMA period',defval=20)
ema = ema(close,ema_period)
wma = wma(close,wma_period)
// Entry Condition
longCondition =
crossover(ema,wma) and Buy and
nz(strategy.position_size) == 0 and
time > timestamp(start_year, start_month, start_day, start_hour, start_minute) and
(end_time?(time < timestamp(end_year, end_month, end_day, end_hour, end_minute)):true)
shortCondition =
crossunder(ema,wma) and Sell and
nz(strategy.position_size) == 0 and
time > timestamp(start_year, start_month, start_day, start_hour, start_minute) and
(end_time?(time < timestamp(end_year, end_month, end_day, end_hour, end_minute)):true)
// Exit Condition
a = input(20)*10
b = input(40)*10
c = a*syminfo.mintick
d = b*syminfo.mintick
long_stop_level = float(na)
long_profit_level1 = float(na)
long_profit_level2 = float(na)
long_even_level = float(na)
short_stop_level = float(na)
short_profit_level1 = float(na)
short_profit_level2 = float(na)
short_even_level = float(na)
long_stop_level := longCondition ? close - c : long_stop_level [1]
long_profit_level1 := longCondition ? close + c : long_profit_level1 [1]
long_profit_level2 := longCondition ? close + d : long_profit_level2 [1]
long_even_level := longCondition ? close + 0 : long_even_level [1]
short_stop_level := shortCondition ? close + c : short_stop_level [1]
short_profit_level1 := shortCondition ? close - c : short_profit_level1 [1]
short_profit_level2 := shortCondition ? close - d : short_profit_level2 [1]
short_even_level := shortCondition ? close + 0 : short_even_level [1]
// Position Sizing
Risk = input(defval=10, title="Risk per trade%", step=1, minval=0, maxval=100)/100
size = 1
// Strategy
if longCondition
strategy.entry("Buy" , strategy.long, qty=size)
strategy.exit ("Exit1", stop=long_stop_level, limit=long_profit_level1, qty=size/2)
strategy.exit ("Exit2", stop=long_stop_level, limit=long_profit_level2)
if shortCondition
strategy.entry("Sell" , strategy.short, qty=size)
strategy.exit ("Exit3", stop=short_stop_level, limit=short_profit_level1, qty=size/2)
strategy.exit ("Exit4", stop=short_stop_level, limit=short_profit_level2)
// Plot
plot(strategy.position_size <= 0 ? na : long_stop_level , color=#dc143c, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size <= 0 ? na : long_profit_level1 , color=#00ced1, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size <= 0 ? na : long_profit_level2 , color=#00ced1, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size <= 0 ? na : long_even_level , color=#ffffff, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size >= 0 ? na : short_stop_level , color=#dc143c, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size >= 0 ? na : short_profit_level1, color=#00ced1, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size >= 0 ? na : short_profit_level2, color=#00ced1, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size >= 0 ? na : short_even_level , color=#ffffff, style=plot.style_linebr, linewidth=1)
plot(ema,color=#00ced1)
plot(wma,color=#dc143c)