Estratégia de negociação da média móvel semanal de avanço

Autora:ChaoZhang, Data: 2024-01-18 11:47:25
Tags:

img

Resumo

Esta estratégia opera com base no preço de fechamento semanal do Bitcoin e na média móvel simples de 8 semanas. Ele vai longo quando o preço de fechamento semanal quebra acima da linha de 8 semanas e fecha a posição quando o preço de fechamento semanal quebra abaixo da linha de 8 semanas. Ele também define taxas de stop loss e take profit para controlar riscos.

Estratégia lógica

Esta estratégia analisa a ação semanal do preço do Bitcoin e a média móvel simples de 8 semanas para julgar se o mercado está em uma tendência de alta ou uma tendência de baixa. Quando o preço de fechamento semanal quebra acima da linha de 8 semanas, ele sinaliza que o mercado entrou em um canal de tendência de alta e uma posição longa pode lucrar. Quando o preço de fechamento semanal quebra abaixo da linha de 8 semanas, ele sinaliza que o gráfico semanal do Bitcoin entrou em um canal de tendência de baixa e as posições longas existentes devem ser interrompidas.

Em especial, a estratégia estabelece as seguintes condições de negociação:

buy_condition = crossover(btc,ma) #weekly closing price breaks above 8-week line, go long
sell_condition = crossunder(btc,ma) #weekly closing price breaks below 8-week line, close position

Quando a condição de compra é atendida, a estratégia vai longo. Quando a condição de venda é acionada, a estratégia sai com ou tirar lucro ou parar a perda.

Além disso, os rácios de stop loss e take profit são configurados:

loss_ratio=input(defval=1,title="LOSS RATIO", group="STRATEGY")
reward_ratio=input(defval=3,title="REWARD RATIO", group="STRATEGY") 

A taxa de stop loss é 1 e a taxa de take profit é 3. Isto significa que, quando o sinal de saída chegar, se estiver lucrativo, saia com 3 vezes o lucro. Se estiver perdendo, saia com 1 vez a perda.

Análise das vantagens

As vantagens desta estratégia incluem:

  1. Quadro de tempo semanal, menos utilização, adequado para a detenção a longo prazo
  2. O MA de 8 semanas filtra o ruído e identifica as principais tendências
  3. Risco de paralisação e controlo do lucro

Análise de riscos

Há também alguns riscos:

  1. Incapacidade de ajustar a posição com base na ação de preços a curto prazo
  2. Os sinais de ruptura podem ter sinais falsos.
  3. A taxa de prejuízo/tiro de lucro pode falhar durante eventos de mercado extremos

Contramedidas:

  1. Combinar com outros indicadores de curto prazo para captar oportunidades de curto prazo
  2. Adicionar filtros para evitar sinais falsos
  3. Ajustar os rácios stop loss/take profit com base nas condições de mercado para limitar as perdas

Orientações de otimização

Algumas formas de melhorar esta estratégia:

  1. Adicionar filtros adicionais para garantir sinais válidos de fuga
  2. Otimizar os rácios de stop loss e take profit
  3. Incorporar indicadores de curto prazo para análise de quadros de tempo múltiplos
  4. Usar aprendizado de máquina para otimizar automaticamente parâmetros

Conclusão

Em resumo, esta é uma estratégia simples e direta que julga a tendência com base em breakouts semanais e média móvel. Também controla o risco através de stop loss e take profit. Pode servir como um sistema de referência para participações de Bitcoin a longo prazo.


/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 3m
basePeriod: 1m
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/
// © taberandwords
//developer: taberandwords
//author: taberandwords
//@version=4

strategy("WEEKLY BTC TRADING SCRYPT","WBTS",overlay=false,default_qty_type=strategy.fixed)

source=input(defval=close,title="source",group="STRATEGY")

btc=security('BTCUSDT','1W', source)
ma=sma(btc,8)

buy_condition= crossover(btc,ma) 
sell_condition= crossunder(btc,ma)

ma_color=input(defval=#FF3232,title="COLOR",group="MA")
ma_linewidth=input(defval=2,title="LINE WIDTH",group="MA")
graphic_color=input(defval=#6666FF,title="COLOR",group="GRAPHIC")
graphic_linewidth=input(defval=2,title="LINE WIDTH",group="GRAPHIC")

start_date=input(defval=2020,title="YEAR",group="STRATEGY EXECUTION YEAR")

loss_ratio=input(defval=1,title="LOSS RATIO", group="STRATEGY")
reward_ratio=input(defval=3,title="REWARD RATIO", group="STRATEGY")

if(year>=start_date)
    strategy.entry('BUY',long=true,when=buy_condition,alert_message='Price came to buying value!')

    if(strategy.long)
        alert('BTC buy order trigerred!',alert.freq_once_per_bar)
    strategy.exit(id="SELL",loss=loss_ratio,profit=reward_ratio,when=sell_condition,alert_message='Price came to position closing value!')
    if(sell_condition)
        alert('BTC sell order trigerred!',alert.freq_once_per_bar)
plot(series=source,title="WEEKLY CLOSE",color=graphic_color,linewidth=graphic_linewidth)
plot(ma,title="SMA8 WEEKLY",color=ma_color,linewidth=ma_linewidth)
plot(strategy.equity,display=0)


Mais.