Sistema de análise de estratégia anormal de sexta-feira de ouro multidimensional

MA RSI ROC SL TP MACD EMA RISK PNL ATR
Data de criação: 2024-12-12 16:32:12 última modificação: 2024-12-12 16:32:12
cópia: 0 Cliques: 402
1
focar em
1617
Seguidores

Sistema de análise de estratégia anormal de sexta-feira de ouro multidimensional

Visão geral

Esta estratégia é um sistema de negociação baseado em anomalias de mercado, que utiliza principalmente as características do comportamento do mercado durante o fechamento da noite de quinta-feira até o fechamento da sexta-feira. A estratégia usa um tempo fixo de entrada e saída para verificar a eficácia deste modelo de mercado por meio de um teste de retorno.

Princípio da estratégia

A lógica central da estratégia é baseada nos seguintes elementos-chave:

  1. Condições de inscrição: Inscreva-se no final da quinta-feira, que foi escolhido com base na análise de dados históricos.
  2. Condições de saída: liquidação na sexta-feira, com prazo fixo.
  3. Gerenciamento de fundos: 10% dos fundos da conta são usados em cada transação. Esta gestão conservadora de posições ajuda a controlar o risco.
  4. Execução de transações: execução de ordens no preço de fechamento, evitando os efeitos causados pela forte flutuação do dia.

Vantagens estratégicas

  1. Simples e claro: as regras de negociação são claras, sem complexos conjuntos de indicadores, fáceis de entender e executar.
  2. Risco controlado: horários fixos de posse e esquemas de gestão de fundos, que facilitam a avaliação e o controle do risco.
  3. Alto nível de automação: a lógica da estratégia é simples e adequada para a programação de transações automatizadas.
  4. Flexível: pode ajustar os parâmetros de acordo com diferentes condições de mercado, melhor adaptabilidade.

Risco estratégico

  1. Dependência de tempo: A estratégia depende fortemente de uma determinada janela de tempo, podendo ser afetada por notícias importantes em horários não comerciais.
  2. Mudanças no cenário do mercado: as leis estatísticas históricas podem não funcionar no futuro, e é necessário monitorar continuamente o desempenho da estratégia.
  3. Risco de Execução: Pode haver falta de liquidez durante o período de fechamento, o que aumenta o deslizamento. Recomenda-se que os riscos sejam gerenciados da seguinte forma:
  • Configurar o Stop Loss Stop
  • Ajuste dinâmico do tempo de detenção
  • Adicionar condições de filtragem

Direção de otimização da estratégia

  1. Introdução de indicadores de volatilidade: Indicadores de ATR podem ser adicionados para ajustar dinamicamente o tamanho da posição, tornando a estratégia mais adaptável.
  2. Otimizar o tempo de entrada: pode ser combinado com a forma do preço e os indicadores técnicos para melhorar a precisão da entrada.
  3. Melhorar o controle de risco: aumentar o mecanismo de parada dinâmica de prejuízos, protegendo tanto o lucro quanto o custo.
  4. Aumentar as condições de filtragem: Considere a inclusão de filtros de tendência para evitar a negociação em condições de mercado desfavoráveis.

Resumir

A estratégia é um sistema de negociação clássico baseado em anomalias do mercado, com o objetivo de obter lucros potenciais através de um rigoroso gerenciamento de tempo e uma gestão conservadora de fundos. Embora a lógica da estratégia seja simples, é necessário estar atento aos riscos trazidos por mudanças no ambiente do mercado, recomendando o uso de controles de posição mais conservadores e um mecanismo de gerenciamento de risco mais perfeito em negociações em disco.

Código-fonte da estratégia
/*backtest
start: 2024-11-11 00:00:00
end: 2024-12-10 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © piirsalu

//@version=5
strategy("Gold Friday Anomaly Strategy", 
     default_qty_type=strategy.percent_of_equity,
     slippage = 1, commission_value=0.0005,
     process_orders_on_close = true,
     initial_capital = 50000,
     default_qty_value=500,
     overlay = true)
     

/////////////////////////////////////////////////////////////////////////////////////
//                                 . USER INPUTS .                                 //
/////////////////////////////////////////////////////////////////////////////////////

// Define backtest start and end dates
st_yr_inp = input(defval=2000, title='Backtest Start Year')
st_mn_inp = input(defval=01, title='Backtest Start Month')
st_dy_inp = input(defval=01, title='Backtest Start Day')
en_yr_inp = input(defval=2025, title='Backtest End Year')
en_mn_inp = input(defval=01, title='Backtest End Month')
en_dy_inp = input(defval=01, title='Backtest End Day')

// Set start and end timestamps for backtesting
start = timestamp(st_yr_inp, st_mn_inp, st_dy_inp, 00, 00)
end = timestamp(en_yr_inp, en_mn_inp, en_dy_inp, 00, 00)

/////////////////////////////////////////////////////////////////////////////////////
//                              . STRATEGY LOGIC .                                 //
/////////////////////////////////////////////////////////////////////////////////////

// Check if the current day is Friday
isFriday = (dayofweek == dayofweek.friday)

// Initialize a candle counter
var int barCounter = 0

// Increment the candle counter on each new bar
barCounter := barCounter + 1

// Define trading session time ranges
pre_mkt = time(timeframe.period, '0400-0800:23456')
mkt_hrs = time(timeframe.period, '0800-1600:23456')
eod = time(timeframe.period, '1200-1600:23456')

/////////////////////////////////////////////////////////////////////////////////////
//                          . STRATEGY ENTRY & EXIT .                              //
/////////////////////////////////////////////////////////////////////////////////////

// Enter a long position on the first candle of Friday within the backtest period
if dayofweek == 4 and time >= start and time <= end
    strategy.entry("BuyOnFriday", strategy.long)

// Close the position after holding it for 4 candles
if (barCounter % 1 == 0)
    strategy.close("BuyOnFriday")