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!!!