Melhores resultados com controle acionário?

A funcionalidade de controle de equidade no Quant Analyzer permite que você simule e teste vários métodos de usando a curva de equidade para controlar a lógica comercial.

O que isso significa exatamente?
A estratégia pode olhar para seu próprio desempenho no passado (sua curva de patrimônio até agora) e usá-lo para determinar como deve ser negociado no futuro.
A premissa é simples - podemos melhorar a estratégia de retornos futuros analisando seu patrimônio passado?

Como entrada, precisamos de uma estratégia (resultados) para que possamos tentar melhorar seu desempenho. Neste post usaremos a amostra de estratégia Test_EURUSD_strategy com a curva de equidade exibida abaixo.

Ao melhorar o desempenho da estratégia, a abordagem padrão geralmente adotada é tentar adicionar um ou mais filtros de mercado, melhorar as entradas ou saídas da estratégia, reduzir o número de negócios perdidos e aumentar o número de negócios vencedores.

Mas outra opção interessante que é o foco deste artigo é a gestão da curva patrimonial do sistema. Em outras palavras, examinamos o desempenho da estratégia passada e usamos estas informações para determinar se devemos ou não fazer a próxima negociação.

Exemplo de gerenciamento de curvas de equidade - abordagem simples usando média móvel
A idéia é simples - adicionar uma média móvel de 20 períodos à curva patrimonial gerada pela estratégia. Em seguida, utilize as regras:

  • Se a curva de equidade atual estiver acima de sua média móvel e um novo comércio deve ser aberto, então pegue o comércio
  • Se a curva de equidade atual estiver abaixo de sua média móvel, então não tome o comércio como real, apenas tome um comércio de papel e atualize a curva de equidade estratégica

Simulação de controle acionário no Quant Analyzer

O Quant Analyzer nos permite facilmente simular isto em seu Controle de Equidade tab. Basta escolher o tipo de Controle de Equidade que você deseja usar, definir seus parâmetros e clicar em Aplicar.
Em nosso exemplo, usaremos a Moving Average com o período 20.

Depois de clicar em Aplicar obteremos duas curvas - a curva patrimonial original sem nenhuma alteração e a curva patrimonial "Controlada" onde usamos estas regras na negociação.
Você também pode ver a linha vermelha de controle - em nosso caso 20 período média móvel do patrimônio original que decide se o comércio é tomado ou não.

Gráfico de controle patrimonial especial
Observe que as curvas de equidade no gráfico são exibidas de uma maneira especial - cada ponto é um novo comércio e o nível de equidade nesse ponto é real. saldo da conta no comércio aberto.
Isto nos permite controlar os negócios usando a curva de equidade - podemos decidir se devemos tomar o negócio de acordo com o saldo da conta ao abrir o negócio - tal como na realidade.

Se há múltiplas negociações abertas exatamente ao mesmo tempo, todas elas estão "agrupadas" em um único ponto comercial.

A linha vermelha grossa na parte inferior do gráfico mostra claramente os períodos em que os negócios não foram tomados ou alterados pelo controle acionário.

Pela aparência do gráfico acima, podemos ver imediatamente que empregar o controle da equidade desta forma não melhora os resultados da estratégia, na verdade, piora a situação. Vamos olhar para os detalhes e ampliar o gráfico para os primeiros meses.

Tanto a linha original como a linha de capital controlado são as mesmas até o momento 1. A partir desse dia, as ações diferem:

  • A curva original do patrimônio líquido mostra que a estratégia continua a ser negociada e faz uma perda adicional
  • A estratégia controlada não aceita as próximas negociações porque o patrimônio líquido atual no comércio aberto está abaixo de sua média móvel (linha vermelha). Portanto, a estratégia passa as negociações e nos impede de entrar em perdas mais profundas até que a equidade original suba acima de sua média móvel.

Assim, nesta amostra ampliada, podemos ver que o controle acionário funciona - ele impediu que a estratégia entrasse em um maior drawdown ao perder os negócios quando a curva patrimonial original estava abaixo de sua média móvel.

Então por que o resultado geral da estratégia controlada é pior do que a original?
Vamos ver outra seção do gráfico a partir de aproximadamente março de 2010:

Mais uma vez, tanto as linhas de equidade original como controlada são aproximadamente as mesmas até o ponto 2.. A partir daí, a estratégia "Controlada" começa a perder seu desempenho em relação à estratégia original.

Por que isso acontece?
Nossas regras especificam que a estratégia não é comercializada quando seu patrimônio líquido está abaixo de sua média móvel. Isto significa que ela pode saltar alguns negócios perdidos, impedindo perdas adicionais, mas também pode saltar alguns negócios vencedores que ajudaram a estratégia original a se recuperar de perdas anteriores.

Em nosso caso, perde negócios muito lucrativos 3., 4. e 5. porque no momento em que estas negociações deveriam ter sido abertas, a curva patrimonial original estava abaixo de sua média móvel.
A estratégia controlada só levará o próximo comércio depois que a equidade original subir de volta acima de sua média móvel.

Conclusões deste exemplo

Nossa simulação de controle acionário mostra que este tipo de controle acionário não melhora nada. Na verdade, ele quase sempre diminui o lucro e também aumenta o drawdown se não for usado corretamente.

Mas e se tentarmos algo mais?
Em vez de perder uma negociação quando a equidade está abaixo da média, podemos dobrar seu tamanho. As regras serão novamente simples:

  • Se a curva de equidade atual estiver acima de sua média móvel e um novo comércio deve ser aberto, então pegue o comércio com seu tamanho original
  • Se a curva do patrimônio líquido atual estiver abaixo de sua média móvel e um novo comércio deve ser aberto, então abra o comércio com o dobro do tamanho

Neste caso, estamos especulando que, após poucas perdas, deveria surgir um comércio lucrativo e que usaríamos o dobro do tamanho para obter o dobro do lucro.

Ampliação do Analisador de Quant
Para criar uma nova função de controle de equidade personalizada, usaremos extensibilidade da mais nova versão do Quant Analyzer.
O Quant Analyzer v3 agora permite programar sua própria função de controle patrimonial e testar suas próprias idéias. Neste exemplo, usaremos a função especial de controle patrimonial que você pode baixar abaixo.

MovingAverageAddContracts.java

Basta baixar este arquivo, colocá-lo na pasta {Quant Analyzer}/extender/code/EquityControl e reiniciar o programa.

Você deve ver a nova opção Contratos de adição de Avg Moving adicionado na seleção dos tipos de controle acionário. Você pode deixar os parâmetros inalterados, o parâmetro Coef significa o coeficiente pelo qual aumentaremos o tamanho do comércio se a equidade estiver abaixo de sua média móvel. Ele usa fórmula:

novo tamanho comercial = coeficiente * tamanho original;

Ao fixá-lo em 2, dobraremos o tamanho do comércio.
Clique em Aplicar e podemos verificar os resultados da simulação.

Podemos ver que desta vez o lucro líquido da estratégia aumentou significativamente, mas também aumentou um pouco o drawdown.
Podemos tomar como exemplo que existe um espaço para influenciar significativamente o desempenho da estratégia através da gestão dos negócios usando seu gráfico de equidade do passado.

Pensamentos finais

A abordagem e os exemplos que tentamos neste artigo mostram apenas uma das muitas possibilidades de usar o controle patrimonial com sua estratégia.
O Quant Analyzer vem com 2 outras funções de controle patrimonial e permite que você crie suas próprias funções para testar suas próprias idéias.

O que observar
Há algumas desvantagens do controle acionário que devemos estar cientes:

  • É muito difícil de implementar na EA - é fácil simular este tipo de controle no Quant Analyzer, mas é outra tarefa para implementá-lo em sua EA. Na verdade, eu não conheço nenhuma EA que usaria uma abordagem semelhante de gestão de negócios usando seu patrimônio.
  • Depende da lógica da estratégia original - não funcionará da mesma forma em todas as estratégias, depende de coisas como a relação Risco-Recompensa (tamanho do SL vs PT), a "aparência" e a inclinação da curva de equidade, o número de negócios consecutivos ganhando e perdendo, e assim por diante.
  • Às vezes não funciona bem em "costeletas - quando o capital próprio vai para o lado, a estratégia controlada pode perder mais do que a estratégia normal, devido à sua tendência de perder negócios lucrativos porque o capital próprio está abaixo de sua média.

No geral, é uma técnica que vale a pena considerar, e o Quant Analyzer permite que você simule os resultados potenciais antes de iniciar a tarefa de implementá-la em sua estratégia.

Assine
Notificação de
5 Comentários
Mais antigo
Novidades Mais Votados
Feedbacks em linha
Ver todos os comentários
Hani Hamdan
11. 12. 2021 10:24 am

Teoricamente é claro, mas como isso será executado? isso pode ser feito automaticamente para que a estratégia pare de negociar uma vez que a curva cruze um indicador? e como podemos fazer isso?

tomas262
Admin
Responder a  Hani Hamdan
13. 12. 2021 5:45 pm

O QuantAnalyzer não pode lhe dar códigos que gerenciem o controle patrimonial da negociação para você. Você tem que implementar manualmente a função de controle acionário diretamente na EA

Ed Cas
Responder a  tomas262
21. 1. 2023 7:23 pm

O QuantAnalyzer é uma grande ferramenta, ser capaz de aplicar a curva de controle patrimonial ao comércio real é o próximo passo. Por favor, me informe sua opinião sobre os algoritmos de controle de equidade da estação de negociação:
https://community.tradestation.com/Discussions/Topic.aspx?Result=1&Topic_ID=119576&SearchTerm=equity+intraday&txtExactMatch=

É o único algoritmo que promete algum sucesso até o momento. As instruções para implementar o processo devem ser seguidas exatamente.

Obrigado pela sua contribuição.

Ed Cas
Responder a  Hani Hamdan
21. 1. 2023 7:19 pm

Por favor, veja comentar imagem

no fórum de ajuda tradestaton.

Estou fazendo experiências com ele no momento e parece funcionar até agora.

Ed Cas
21. 1. 2023 7:18 pm

Segui um rastro no suporte TS e encontrei uma maneira de usar o controle de equidade nas estratégias.
Baixe o Exemplo e siga as instruções de instalação para o T.
Pelo menos no exemplo, o código para controlar a linha de equidade está OK.
Por favor, faça o download, teste e informe.

https://community.tradestation.com/Discussions/Topic.aspx?Result=1&Topic_ID=119576&SearchTerm=equity%20intraday&txtExactMatch=

comentar imagemPosted - 16/04/2012 15:02:44comentar imagem  comentar imagem  comentar imagem Modelo e Exemplo de Comércio de Curvas de Equidade

https://community.tradestation.com/Discussions/DATA/20120418211655EC_BeforeAndAfter_EC Comércio Aplicado.JPG

https://community.tradestation.com/Discussions/DATA/20120416145356goose Arquitetura de Comércio de Curvas de Equidade.JPG

OBJETIVO DESTE MODELO E EXEMPLO
O Modelo de Curva de Equidade e Exemplo postado aqui é um modelo simples e um exemplo de como curva de Equidade
A negociação pode ser feita em nível de carrapato usando o Dicionário Global e utilizando a arquitetura apresentada
por goose no Topic_ID=119190. O algoritmo simples utilizado destina-se a ser substituído por um algoritmo que
se aplica às características da curva do patrimônio que está sendo negociado.

LIMITAÇÕES DESTE MODELO E EXEMPLO
Tenho esta solução GlobalDictionary com o TimeStamps funcionando e a utilizei extensivamente para o comércio da CE
desenvolvimento. Mas é lento e é preciso um programador experiente para configurá-lo, e para obter o exemplo
de trabalho, e para substituir o código de exemplo de estratégia modelo pelo código de estratégia do usuário. Isto não é um
boa solução para o usuário em geral. Como a mmillar assinala, a ELC/ADE é a solução preferida.

SIMULAÇÃO DA ESTRATÉGIA EM FUNÇÃO, COMO ALTERNATIVA (atualização 18/07/2012)
Concluí a simulação de uma estratégia em execução contínua que utiliza ordens limitadas em uma função que corresponde a cada comércio histórico da estratégia ao longo de um período de 10 anos. A função funciona continuamente e forma uma curva e um algoritmo EC que pode ser usado para ligar e desligar a estratégia. Conseguir que todas as funções históricas correspondessem a todas as estratégias comerciais históricas não foi uma tarefa fácil, e muitas sutilezas e gotchas tiveram que ser abordadas. A seguir, algumas dicas:

1) Quando uma ordem de mercado for emitida, não altere o CC (variável para contratos atuais) no momento em que a ordem de mercado for emitida. Ao invés disso, coloque uma bandeira para que o CC seja alterado na próxima barra.
2) Quando uma ordem limite for detectada como preenchida, troque o CC naquele momento, não espere até a próxima barra.
3) Em várias condições, o código precisa ser adicionado para distinguir entre a barra após uma condição falsa, para que nenhuma ordem seja emitida naquela barra, mas um preenchimento ainda pode ser detectado. Este princípio se aplica a condições tais como a condição de tempo de comércio. Há dois conjuntos de condições de tempo de negociação para ordens limitadas, um para a colocação de ordens, e outro que é uma barra mais longa para monitoramento se as ordens forem preenchidas.

Agora a estratégia pode chamar a função e ligar-se e desligar-se de acordo. Um indicador pode usar essa mesma função para traçar pontos e indicadores relevantes.

DESCRIÇÃO
Modelo e Exemplo de Comércio de Curvas de Equidade
Versão 1.23 (8 de maio de 2012: Acrescentou 2 barras de atraso para os receptores antes do primeiro acesso ao dicionário,
para dar tempo para que o GlobalDictionary seja criado e povoado antes de ser acessado.
Codificado e testado por ruletrader7320
Data de lançamento: 16 de abril de 2012
Última Atualização: 8 de maio de 2012
Créditos:
   1) Goose para a Arquitetura de Comércio de Curvas de Equidade
   2) ganso por resolver a questão com o primeiro argumento das criações do GlobalDictionary por Topic_ID=120035
Linha de referência: Topic_ID=119190
Objetivo: modelo e exemplo para Equity Curve Trading no nível do tick, Arquitetura por Goose

Componentes: O "Modelo e Exemplo de Comércio de Curvas de Equidade" consiste nos três seguintes
arquivos de estratégia colocados em dois gráficos. A estratégia _ecStratTemplate&Example é colocada
em cada gráfico com uma configuração de entrada diferente:

Quadro 1:
_ecStratTemplate&Example, com a entrada AutoON sempre definida como falsa neste gráfico.
Para o backteston de teste de backtestON para verdadeiro.

Quadro 2: (deve ser idêntico ao primeiro quadro)
_ecStratTemplate&Example, com a entrada AutoON sempre definida como verdadeira neste gráfico.
_ecMonitor-receptor(IOG).

Duas estratégias de diagnóstico estão incluídas para auxiliar no diagnóstico de problemas.

INSTALAÇÃO
1) Atualização para TradeStation versão 9.1 ou última versão, se ainda não existir.

2a) Importar 5 estrategis: _ecStratTemplate&Example, _ecMonitor-sender(IOG), _ecMonitor-receptor(IOG),
e dois diagnósticos, a partir dos seguintes ELD:.
Fixação:DATA/20120508184752_EC_EQUITYCURVETRADING_TEMPLATEANDEXAMPLE_V1.23.ELD 40527 bytes

2b) Se sua estratégia utiliza IntraBarOrderGeneration, então edite ecStratTemplate&Example e mude
IntraBarOrderGeneration to true: [Intrabarordergeneration = true]

****** INÍCIO RÁPIDO PARA DAR O EXEMPLO ******

3) Formar um novo espaço de trabalho com dois gráficos idênticos lado a lado, formatados da seguinte forma:
      symbol @ES
      Intervalo de barras de 60 minutos
      Última data: 12/04/2012
      5 meses atrás
      Fuso horário: intercâmbio (CT)

      Após a configuração dos dois gráficos, verifique as configurações em cada gráfico para ter certeza de que foram feitas corretamente
      (melhor encontrar um problema agora, depois passar horas mais tarde amarrando para descobrir porque não funciona mais tarde).

4) Insira as 2 estratégias a seguir na tabela correta, e defina os iputs conforme as instruções:
      a) _ecMonitor-senderizador(IOG), e definir entrada voltar à realidadee, em seguida, definir Status para Off (para poupar um pouco de tempo).      
      b) _ecStratTemplate&Examplate, e entrada de dados AutoON a falso.. e, em seguida, colocar novamente o status para o remetente.

      NOTA 1: o status deve estar ativado para ambas as estratégias, e seu gráfico à direita deve agora mostrar as negociações.

5) Insira as duas estratégias na tabela à esquerda e defina as entradas conforme as instruções.
      a) _ecStratTemplate&Examplate, e definir a entrada AutoON para a verdade. se ainda não estiver definido.
      b) _ecMonitor-receptor(IOG), sem configurações de entrada

      NOTA 2: Agora seu gráfico à esquerda deve mostrar os ofícios (mas devem faltar alguns ofícios mostrados no gráfico à direita).
      
6) Exibir as curvas de equidade dos gráficos da direita e da esquerda. Eles devem mostrar menos negócios no gráfico da esquerda
(mas isto não corresponderá às curvas atuais no topo por causa de mudanças para o IOG).
Se isto não estiver funcionando,
      a) Desligue todas as estratégias dos dois gráficos.
      b) Em seguida, acionar as estratégias no gráfico da direita e rever o gráfico para o comércio.
      c) Após as negociações mostradas no gráfico da direita, acionar estratégias no gráfico da esquerda (receptor).
      d) As curvas devem ser diferentes, com menos trocas no gráfico da esquerda.
      NOTA: Para repetir isto, as estratégias no gráfico da esquerda devem ser executadas depois de estratégias no gráfico certo têm
      completou e povoou o GlobalDictionary. (Veja a próxima seção e as etapas abaixo da parte d.)

****** BACKTESTING & LIVE TRADING ******

7) Configurações para o backtesting e comércio ao vivo.
   Para testes posteriores:
      a) Definir a entrada voltar à realidade na estratégia_ecMonitor-sender(IOG).
      b) Configurar a automação para off no gráfico do receptor (gráfico que contém _ecMonitor-receptor(IOG),
      e contém _ecStratTemplat&Example, e manter a entrada AutoON configurada para true).
      c) O backtesting não pode ser feito em um gráfico que recebe dados ao vivo. Colocar uma data final no
      gráfico antes da data atual, se conectado à TradeStation.
      d) Passos para realizar testes consecutivos com mudanças de estratégia entre os testes de retaguarda:
      – 1. Na tabela da esquerda (receptores) desligue ambas as estratégias, definindo seu status como OFF
      – 2. Fazer as mudanças desejadas na estratégia (ecStratTemplat&Example), e verificar.
      – 3. As estratégias na tabela correta devem estar em andamento e devem agora ser executadas novamente, portanto, monitore a tabela correta.
      – 4. Após as estratégias à direita terem completado a execução (e o GlobalDictionary agora populado),
      --voltar sobre as estratégias do gráfico da esquerda, que agora vai funcionar contra os novos valores do GlobalDictionary.
      – 5. Após as estratégias no gráfico da esquerda terem sido executadas e o desempenho analisado, desligue o
      --estratégias na tabela da esquerda em preparação para o próximo ciclo (para que estas estratégias na esquerda
      -carta só funcionará depois de estratégias no gráfico da direita). Agora repita cuidadosamente os passos.
   Para comércio ao vivo:
      a) Definir a entrada voltar ao falso na estratégia_ecMonitor-sender(IOG).
      b) Ajuste a automação para on (janela Análise de formato ...) na tabela do receptor esquerdo e mantenha o AutoON ajustado para true.

****** SUBSTITUINDO O CÓDIGO DE EXEMPLO PELO SEU CÓDIGO ******

8) Uma vez que o exemplo esteja funcionando, você pode atualizar as estratégias de exemplo com seu código, pulando
todos, exceto a última etapa d) desta seção. Ou você pode formar um novo conjunto de estratégias idêntico ao exemplo
e depois atualizar as novas estratégias com Designer Generated e código de inicialização, e
com seu código de acordo com as seguintes etapas:
   a) Formar três novas estratégias e copiar e passar o código exato do remetente, do receptor e da estratégia deste exemplo.
   b) Para cada estratégia, estabeleça o código Gerado pelo Designer e o código de inicialização como se segue:
      1. Com a janela do editor da nova estratégia em foco, selecione "View/Toolbars/Properties",
      ou clique no ícone "Janela de Propriedades" na barra de ferramentas superior. Uma Janela de Propriedades deve aparecer.
      2. 2. Clique no ícone "Eventos" (relâmpago) na janela de propriedades.
      3. Clique duas vezes no campo em branco "Valor" à direita de "Inicializado" e o seguinte deve
      povoar esse campo: "AnalysisTechnique_Initialized .... Isto formará o Código Gerado pelo Designer
      e o código do evento de inicialização na estratégia.
      4. Observe o novo bloco de código próximo ao topo, começando com "método de análise nuloTechnique_Initialized ...".
      Vamos pegar essa linha e substituir uma linha mais abaixo que pode ser idêntica ou quase idêntica
      com essa linha, e depois apagar o novo bloco de código com os seguintes passos:
      - Eliminar a linha antiga mais abaixo no código que começa do mesmo modo.
      - Copie a nova linha e passe-a onde a linha antiga acabou de ser apagada.
      - Eliminar o novo bloco de código no topo, tudo o que precisávamos era de uma nova linha.
   c) Agora certifique-se de que o novo conjunto de estratégias está funcionando exatamente da mesma forma que o exemplo está funcionando
   seguindo os passos 3 a 6, começando com a formação de dois novos gráficos. (Já que você já fez
   isto, por exemplo, não vai demorar muito tempo e confirmará seu ponto de partida e sua revisão
   as configurações corretas de backtestON e AutoON).
   d) Na janela do editor para cada estratégia, pesquisar no REPLACE e substituir ou atualizar o exemplo
   código modelo com seu próprio código e configurações de acordo com as instruções que seguem o REPLACE.
      NOTA: esta etapa requer habilidades avançadas de programação.

****** RESOLUÇÃO DE PROBLEMAS ******

9) DIAGNÓSTICO e RESOLUÇÃO DO PROBLEMA: Se forem encontrados problemas, primeiro reveja sempre a entrada
as configurações, as configurações do gráfico (devem ser idênticas), e repetir a seguinte seqüência de desligamento e ativação:
      - Desligue todas as estratégias dos dois gráficos.
      - Em seguida, ligue as estratégias no gráfico correto (remetente), e revise o gráfico para as negociações.
      - Após as negociações aparecerem no gráfico da direita, ligue as estratégias no gráfico da esquerda (receptor).

   Se as verificações e a seqüência de ligar/desligar não resolverem o problema, realize o seguinte teste diagnóstico:
      a) Insira _ecDiagnosticSender na tabela correta. (já importado na etapa 2)
      b) Insira _ecDiagnosticReceiver na tabela à esquerda. (já importado na etapa 2)
      c) Se nenhuma exceção for lançada, então abra o seguinte arquivo usando o editor de sua escolha (ou seja, Notebook):
      c:ecDiagnosticChart.txt.
      Esse arquivo deve conter as duas linhas a seguir (com carimbos de tempo diferentes).
      1120412 2015 Gráfico_01 4/19/2012 12:07:54 PM
      1120412 2015 Gráfico_02 4/19/2012 12:07:57 PM

      d) Se o arquivo de diagnóstico não lançou uma exceção e o arquivo de saída mostra as duas linhas corretas, então
      o teste de diagnóstico passou e a aplicação deve funcionar. Talvez tenha sido instalado de forma incorreta ou um ajuste
      falhado. Portanto, remova todas as estratégias e gráficos instalados, depois reinicie o computador e reinicie a TradeStation
      e fazer cuidadosamente uma nova instalação em novos gráficos.
      
      e) Se o diagnóstico falhou, ou uma reinicialização e nova instalação não resolve o problema, então solicite mais
      assistência nos fóruns e PM o autor para possível assistência adicional. Certifique-se de ser muito detalhado sobre
      qual é o problema, incluindo a mensagem de erro exata, qual etapa falhou, quais são as configurações de entrada, quais são os
      são, que mudanças foram feitas no código, se houver, etc.
///////////////////////////////////

Eu também o fiz com o SPY e ele funciona - eu ainda não usei no comércio real.

comentar imagem

Por favor, me informe seu feedback.
Assim, o controle de equidade final poderia ser possível de ser implementado.

Continuar lendo