Condicionador de condições
<< Click to Display Table of Contents >> Condicionador de condições |
OConstrutor de condiçõesé um recurso muito poderoso que permite definir condições complexas para seus sistemas de negociação automatizados, sem ter que saber como programar.
Entendendo o Construtor de Condições
Condicionador de condiçõesA maioria, se não todos, os assistentes de código do sistema de comércio automatizado têm escopo limitado, pois fornecem expressões predefinidas e permitem apenas a alteração de alguns parâmetros nessas expressões. O NinjaTrader Construtor de condiçõesé avançado em que você pode desenvolver expressões poderosas sem limitações. Devido ao seu poder e flexibilidade, é extremamente importante que você leia e compreenda suas capacidades.
O Construtor de condiçõestambém é uma ajuda muito poderosa para aqueles que estão aprendendoNinjaScriptou aprendendo a programar. Você pode criar suas condições dentro do Construtor de Condiçãoe ver instantaneamente ocódigoNinjaScript gerado com o NinjaScript Editoraberto (pressionando o botãoView Code ... na tela Construtor).
O Construtor de condiçõespode ser acessado através datela Condições e Ações no NinjaTrader Construtor de Estratégias. Operação basicaO conceito geral do Construtor de Condiçãoégerar uma expressão booleana também conhecida como expressões de comparação ou expressões condicionais. O que isso significa? É simplesmente uma expressão que resulta em um valor TRUE ou FALSE. Por exemplo, a expressão
2 < 7 (2 é menor que 7)
é uma expressão booleana porque o resultado é TRUE. Todas as expressões que contêm operadores relacionais são booleanas. Expressões booleanas ou "Condições", como são conhecidas noNinjaTrader,são usadas para determinar quando executar uma ação específica, como enviar um pedido ou desenhar no gráfico.
Olhando para a imagem abaixo, você pode ver instantaneamente que o Construtor de condições está configurado como uma expressão booleana. Selecione um item da janela da esquerda (1), compare-o com um item selecionado na janela da direita (1) e selecione o operador relacional (2).
1. Itens disponíveis, como indicadores, dados de preços, etc., para usar na comparação 2. Lista de operadores relacionais
Comparações inválidas do operador relacionalComo o operador relacional permitirá que você selecione quaisquer itens da esquerda para comparar com o direito no Construtor de condições, você precisa estar atento ao que tentar comparar. Por exemplo, comparar um valor com base no preço, como ovalor do indicadorDEMA para a categoria Misc, Fallingnão seria possível, e solicitar ao Construtor de Condições que emita um erro como mostrado abaixo -
"Tipo de expressão esquerda e expressão correta não correspondem, por favor, selecione expressões semelhantes"
Para contornar, você precisaria selecionar expressões com um valor de retorno semelhante que permitiria uma comparação programática. No exemplo usado acima, oindicadorDEMA fornece um valor duplo em retorno que é tentado a ser comparado a um valor booleano (verdadeiro / falso), que Fallingretornaria.
A abordagem correta é mostrada abaixo, oindicadorDEMA seria passado para Fallingcomo série de entrada e, em seguida, o valor de retorno poderia ser comparado aTrueda categoria Misc para criar uma condição bem-sucedida.
|
Como fazer comparações de dados de preços
Comparação de dados de preçoVocê pode comparar os dados de preço de uma barra, como a verificação de um fechamento maior. O seguinte é um exemplo e representa uma das muitas combinações possíveis.
1.Expanda acategoriaPreço no lado esquerdo e selecione o botão Fechar. 2. Expanda acategoriaPreço no lado direito e selecione o botão Fechar. 3. Selecione ooperador relacionalmaior 4. Defina oparâmetroBars ago como um valor de "1"
Uma vez que obotãoOK é pressionado, é criada uma condição que seria traduzida para o seguinte:
"O preço de fechamento atual é maior do que o preço de fechamento de 1 bar atrás" |
Como compensar um valor de item
Compensando um valor de itemVocê pode compensar o valor da maioria dos itens disponíveis noConstrutor de condições. Um deslocamento é um valor que é adicionado, subtraído, multiplicado ou dividido entre / no valor real do item. Quando um item é selecionado, tal como um indicador de preços ou dados, osoffseteoffsettipoparâmetros tornam-se visíveis na janela diretamente abaixo do item selecionado. Isso é mostrado como números 5 e 6 na imagem abaixo.
O tipo de deslocamentopode ser definido como:
Depois que otipo de deslocamentoé selecionado, você deve definir o valor dedeslocamento. Além do exemplo abaixo, você pode ver a seção "Verificando Expansão de Volume" abaixo para outro exemplo que usa otipo de deslocamentopercentual.
A seguir, um exemplo e representa uma das várias combinações possíveis:
1. Expanda acategoriaPreço e selecione o botão Fechar 2. Expanda acategoriaPreço e selecione a opção Alta 3. Selecione ooperador relacionalmaior 4. Defina oparâmetroBars ago como um valor de "1" 5. Defina oparâmetroTipo de deslocamento como Carrapatos 6. Defina oparâmetroOffset para um valor de "1"
Uma vez que obotãoOK é pressionado, é criada uma condição que seria traduzida para o seguinte:
"O preço de fechamento atual é maior que o preço alto de 1 bar atrás 1 tick" |
Como fazer um indicador para comparar os valores
Comparações de indicador para valorVocê pode comparar o valor de um indicador com um valor numérico. Isso pode ser útil se você quiser verificar se o ADX está acima do valor 30 (tendências) ou se o Stochastics está abaixo do valor 20 (oversold) ou qualquer outra condição que você possa imaginar.
A seguir, um exemplo e representa uma das várias combinações possíveis:
1. Expanda acategoriaIndicador e selecione o indicadorADX 2.Defina os parâmetros do indicador, para o nosso exemplo com os valores padrão, não são necessárias alterações 3. Expanda acategoriaMisc e selecione o valor numérico 4. Selecione ooperador relacionalmaior 5. Digite o valor numérico ao qual você deseja comparar o indicador (30 em nosso exemplo)
Uma vez que obotãoOK é pressionado, é criada uma condição que seria traduzida para o seguinte:
"O valor atual de um ADX de 14 períodos é maior que 30" |
Como comparar valores de plotagem de indicadores multi-plot
Comparação de valores de plotagem de indicadores Multi-PlotVocê pode comparar gráficos no mesmo indicador ou selecionar qualquer gráfico individual dentro de um indicador para criar uma condição.
A seguir, um exemplo e representa uma das várias combinações possíveis:
1. Expanda acategoriaIndicador e selecione o indicadorStochastics 2. Defina os parâmetros de entrada do indicador e selecione ográficoK (seta verde) 3.Expanda acategoriaIndicador e selecione o indicadorStochastics 4. Selecione ooperador relacionalmaior 5. Defina os parâmetros de entrada do indicador e selecione ográficoD (seta verde)
Uma vez que obotãoOK é pressionado, é criada uma condição que seria traduzida para o seguinte:
"O valor atual da plotagem K de um indicador Stochastics é maior que o valor atual da plotagem D do mesmo indicador Stochastics" |
Entradas do usuárioEntradas do usuário são simplesmente variáveis que podem ser usadas no lugar de valores absolutos. Eles aumentam a flexibilidade de sua estratégia, pois você pode substituir uma variável pelo parâmetro período de uma média móvel simples em vez de fornecer um valor absoluto.
SMA (9) é como você expressa uma média móvel simples de 9 períodos emNinjaScript. Se você executar uma estratégia, estará sempre usando uma média móvel simples de 9 períodos. Em tempo de execução, você pode querer alterar esse valor para 10. Entradas definidas pelo usuário fazem isso. Se você criou uma entrada chamada "MyInput", poderá expressar a média móvel simples como SMA (MyInput). Em tempo de execução, você pode configurar sua estratégia definindo o valor de "MyInput" para qualquer valor que desejar. Além disso, as entradas do usuário são necessárias aootimizar uma estratégia.
As variáveis do usuário (não confundir com entradas) se comportam da mesma maneira, com a exceção de que elas não podem ser configuradas ao iniciar uma estratégia, mas podem ser configuradas apenas programaticamente durante o tempo de execução.
•Entradas do usuário são criadas a partir datela Construtor •As variáveis do usuário podem ser definidas na lógica da estratégia por meio doConstrutor de condições(veja as seções acima)
A seguir está um exemplo e representa uma das muitas combinações possíveis, o exemplo demonstra o uso de uma entrada de usuário, no entanto, a abordagem de amostra se aplica a variáveis de usuário.
1.Expanda acategoriaPreço e selecione o botão Fechar. 2. Expanda acategoriaIndicador e selecione o indicadorSMA 3. Selecione ooperador relacionalmaior 4. Defina oparâmetroPeriod como uma entrada definida pelo usuário, pressionando o botão " Set" (seta verde) para abrir a janelaValor.
5. Expanda acategoria de entrada do usuário e selecione o valor MAPeriode pressione obotãoOK
6.O Construtor de Condição agora se parecerá com a imagem abaixo com a entrada do usuário "MAPeriod" atribuída ao parâmetro Período. Ao aplicar essa estratégia a um gráfico, você poderá definir o valor da entrada do usuário diretamente na interface do usuário, que será usada para orientar o indicador SMA.
Uma vez que obotãoOK é pressionado, é criada uma condição que seria traduzida para o seguinte:
"O preço de fechamento atual é maior que o definido pelo usuário Período de média móvel simples" |
Como criar uma condição de crossover
Condições de cruzamentoVocê pode verificar para qualquer umCrossAboveou CrossBelowestado com um usuário definido olhar para trás período. O período de retrospectiva define o número de barras a serem analisadas para verificar a condição de cruzamento.
O seguinte é um exemplo e representa uma das muitas combinações possíveis.
1.Expanda acategoriaIndicador e selecione o indicadorEMA 2. Defina oparâmetroPeriod como o valor desejado ("9" é usado neste exemplo) 3. Expanda acategoriaIndicador e selecione o indicadorEMA 4. Defina oparâmetroPeriod como o valor desejado ("20" é usado neste exemplo) 5. Selecione ooperador relacionalCrossAbove 6.Definir operíodo de retrospectiva
Uma vez que obotãoOK é pressionado, é criada uma condição que seria traduzida para o seguinte:
"Média móvel exponencial de 9 períodos cruza acima da média móvel exponencial de 20 períodos na última barra" |
Como usar insumos indicadores em outros indicadores
Indicador no indicadorVocê pode usar indicadores como entrada para outros indicadores ... na verdade, você pode aninhar indicadores dentro de indicadores infinitamente se você realmente quisesse!
O exemplo a seguir é um exemplo de aplicação de uma média móvel simples (SMA) a umindicadorADX de 14 períodos e é uma das várias combinações possíveis.
1.Expanda acategoriaIndicador e selecione oindicadorSMA 2. Defina a série de entradas para oindicadorADX pressionando o botão " Editar entrada" para abrir ajanelaValor. 3. Selecione oindicadorADX e defina as propriedades na janela Parâmetros
3. Selecione oindicadorADX e defina as propriedades na janelaPropriedades 4. Pressione obotãoOK
5. Depois de pressionar obotãoOK, você verá na janela inferior esquerda, os parâmetros "Input series" foram ajustados para o ADX(14), que é oindicadorADX de 14 períodos.
|
Como verificar se há expansão de volume
Verificando Expansão de VolumeVocê pode comparar se o volume da barra atual é maior do que o volume da barra anterior mais um valor de deslocamento.
O seguinte é um exemplo e representa uma das muitas combinações possíveis.
1.Expanda acategoriaIndicador e selecione o indicadorVOL 2. Expanda acategoriaIndicador e selecione o indicadorVOL 3. Selecione ooperador relacionalmaior que ou igual 4. Defina oparâmetroBars ago como um valor de "1" 5. Defina oparâmetro detipo de deslocamento como Porcentagem 6.Defina oparâmetroOffset para um valor de "3" - 3 igual a 300% aqui, ou seja, 10% seria 0.1
Uma vez que obotãoOK é pressionado, é criada uma condição que seria traduzida para o seguinte:
"Valor atual do volume é maior ou igual ao valor do volume de 1 bar atrás 300%" |
Como criar comparações de posição de mercado
Criando Comparações de Posição de MercadoVocê pode comparar informações sobre o estado da estratégia, como, mas não se limitando, à posição atual do mercado ou ao tamanho da posição atual.
O seguinte é um exemplo e representa uma das muitas combinações possíveis.
1.Expanda acategoriaEstratégia e selecione Posição atual de mercado. 2. Expanda acategoriaEstratégia e selecione Market position 3.Selecione osiguais para ooperador relacional 4. SelecionePlanona lista suspensa Posição do mercado em Diversos
Uma vez que obotãoOK é pressionado, é criada uma condição que seria traduzida para o seguinte:
"A posição atual do mercado é igual a flat" |
Como criar comparações de tempo
Criando Comparações TemporaisVocê pode comparar os dados de hora de uma barra a um valor de data ou hora definido pelo usuário.
O seguinte é um exemplo e representa uma das muitas combinações possíveis.
Nota: Série temporal representa uma coleção de valores de data / hora da barra de uma série de barras
1.Expanda acategoriaTime e selecione Time series 2.Expanda acategoriaTime e selecione Time series 3. Selecione ooperador relacionalmaior que ou igual 4. Defina oparâmetroTime para um valor definido pelo usuário de "10:00"
Uma vez que obotãoOK é pressionado, é criada uma condição que seria traduzida para o seguinte:
"A hora da barra atual é maior ou igual a 10:00 AM" |
Negando uma CondiçãoVocê também pode negar uma condição, permitindo, por exemplo, que um determinado filtro ou configuração de indicador técnico seja o oposto e avalie como falso.
O seguinte é um exemplo e representa uma das muitas combinações possíveis.
1.Expanda acategoriaMisc e selecione a cruz acima 2. Clique nocampo de entrada da Série 1 e selecione o indicadorDEMA como série para a comparação cruzada a ser usada 3. Expanda acategoriaMisc e selecione o False 4. Selecione o operador relacional igual
Uma vez que obotãoOK é pressionado, é criada uma condição que seria traduzida para o seguinte:
"O indicador DEMA (14) não foi ultrapassado pelo preço de fechamento nos últimos 10 bares" |
Criando um filtro de tempoOs filtros de tempo podem ser uma ferramenta útil da sua estratégia personalizada para ajudar a tornar seus negócios mais eficientes e planejar uma maneira de testar várias partes da sessão de negociação. O Condition Group Editor é ideal para configurá-los para os seus scripts do Construtor de Estratégias.
O seguinte é um exemplo e representa uma das muitas combinações possíveis (assim como os tempos reais de filtro de tempo abaixo):
1. Pressione oícone do grupo na tela Condições e Ações para abrir o Editor de Grupo de Condições
2. Opcionalmente, defina um nome personalizado para o seu Grupo de Condições, ou seja, Filtro de Tempo. 3.Selecionase todasas condições individuais do grupo devem ser atendidas para permitir uma avaliação de resultado 'true' ouse algumaserá suficiente. 4.Pressioneadicionar,editarouremover para adicionar nova condição ao grupo ou gerenciar as existentes.
5.Adicioneuma nova condição e expanda acategoriaHora e selecione Séries temporais 6. Expanda acategoriaTime e selecione Time value 7. Digite o seutempo desejado em Misc para o início do filtro de tempo, ou seja, 9:31 8. Selecione ooperador relacionaligual maior
9. Pressione obotãoOK para retornar ao Editor de grupo de condições com sua primeira condição de filtro criada.
Ter configurado a segunda condição oposta, bem como o Grupo de condições para o filtro de tempo, pode ter a seguinte aparência:
PressioneOKagora no Editor de grupo de condições para sair dele e retornar à tela Condições e ações para configurar outros critérios, como sua entrada comercial, bem como as ações resultantes a serem executadas.
O filtro de tempo criado seria traduzido para:
"Permitir que este grupo de condições seja verdadeiro apenas se a Hora do dia for maior ou igual a 9:31 e menor ou igual a 11:30" |