Documentação

Aplicações

Última atualização em 18. 11. 2021 por clonex / Ivan Hudec

Exemplo - Trade Edge Ratio

A relação de vantagem nos diz quão alto era o potencial para um determinado comércio. O cálculo é a razão de MFE normalizada e MAE normalizada. Já escrevemos sobre a Razão de Borda neste artigo. No tutorial a seguir, mostraremos como criar uma nova coluna de comércio que nos permitirá analisar a relação de borda de cada comércio.

Passo 1 - Criar nova coluna de Comércio

 

Abra CodeEditor, clique em Criar novo e escolha a opção de coluna Lista de negócios - Nomeá-lo EdgeRatioTrade.

Isto criará um novo snippet EdgeRatioTrade.java em pasta Usuário/Snippets/SQ/Colunas/Trades

Vamos colocar Decimal2 no construtor a fim de obter o valor com duas casas decimais.

 

classe pública EdgeRatioTrade estende a TradelistColumn {
    
    público EdgeRatioTrade() {
        super("EdgeRatioTrade", Decimal2);
        setWidth(80);
    }


Passo 2 - Implementar o método getValue()

 

Este método tem no parâmetro Ordem A ordem é uma classe que armazena os valores de cada ordem da estratégia. Ao mesmo tempo, esta classe contém métodos que nos permitem classificar ou identificar a ordem. Em segundo plano, StrategyQuant X chama o método getValue(Order order) e produz um valor para cada ordem da estratégia.

 

    @Override
    public Object getValue(Ordem de compra) {
    
    duplo mae = encomenda.PipsMAE; //get order MAE em pips
    duplo mfe = encomendar.PipsMFE; // obter encomenda MAE em pips
    duplo atrOnOpen = encomendar. ATROnOpen; // obter encomenda ATR em pips

    dupla normaMAE = mae/atrOnOpen; // normalizar MAE
    dupla normaMFE = mfe/atrOnOpen; // obter MFE normalizada

    eRTrade duplo = SQUtils.safeDivide(normMFE,normMAE); // SQUtils.safeDivide precede a exceção de divisão nula zero

    retornar eRTrade;

}

 

Dica:

Se você quiser depurar seu código este trecho basta adicionar a função fdebug(""","") ao seu código. O log onde os valores são escritos pode ser encontrado na pasta usuário/Log/StrategyQuant.

 

@Override
    public Object getValue(Ordem de compra) {
        
        duplo mae = encomenda.PipsMAE; //get order MAE em pips
        duplo mfe = encomendar.PipsMFE; // obter encomenda MAE em pips
        duplo atrOnOpen = encomendar. ATROnOpen; // obter encomenda ATR em pips

        dupla normaMAE = mae/atrOnOpen; // normalizar MAE
        dupla normaMFE = mfe/atrOnOpen; // obter MFE normalizada

        eRTrade duplo = SQUtils.safeDivide(normMFE,normMAE); // SQUtils.safeDivide precede a exceção de divisão nula zero

        /// fdebug
        fdebug("EdgeRatioTrade---> "," pedido.Ticket: ordem "+ordem.Ticket+".PipsMAE: ordem "+ordem.PipsMAE+".ATROnOpen: ordem "+ordem.ATROnOpen");

        retornar eRTrade;

    }

 

Etapa 3 - Adicionar trecho à lista de ofícios

 

Após compilar o snippet e reiniciar StrategyQuantX, você pode adicionar o snippet à lista de comércio.

 

 

Código comentado completo do snippet

 

Pacote SQ.Colunas.Comércio;

import com.strategyquant.lib.*;
import com.strategyquant.datalib.*;
import com.strategyquant.tradinglib.*;

classe pública EdgeRatioTrade estende a TradelistColumn {
    
    público EdgeRatioTrade() {
        super("EdgeRatioTrade", Decimal2);
        setWidth(80);
    }
    
    @Override
    public Object getValue(Ordem de compra) {
        
        duplo mae = encomenda.PipsMAE; //get order MAE em pips
        duplo mfe = encomendar.PipsMFE; // obter encomenda MAE em pips
        duplo atrOnOpen = encomendar. ATROnOpen; // obter encomenda ATR em pips

        dupla normaMAE = mae/atrOnOpen; // normalizar MAE
        dupla normaMFE = mfe/atrOnOpen; // obter MFE normalizada

        eRTrade duplo = SQUtils.safeDivide(normMFE,normMAE); // SQUtils.safeDivide precede a exceção de divisão nula zero

        retornar eRTrade;

    }

}

 

Este artigo foi útil? O artigo foi útil O artigo não foi útil

Assine
Notificação de
1 Comentário
Mais antigo
Novidades Mais Votados
Feedbacks em linha
Ver todos os comentários
Emmanuel
23. 12. 2021 12:29 am

muito bom!!!