Documentação
Aplicações
Última atualização em 18. 11. 2021 por clonex / Ivan Hudec
Exemplo - Trade Edge Ratio
Conteúdo da página
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
muito bom!!!