Multiplicações De Média Variável Em Movimento
Funções em Multicartos e Tradestation: Lição 06 Trabalhando com Multicartas e Tradestation 8211 Lição 06: Funções Saiba como criar e usar funções em Multicartos e Tradestation. Vamos ver quais são as funções e como elas são usadas. Podemos usar isso como base para outra lição quando examinamos como operar a função que vem com nosso indicador de área de valor gratuito. Nas lições anteriores, analisamos as Médias Móveis em várias formas. Os estudos que escrevemos tinham todos os cálculos dentro do bloco de código principal. Isso é bom para demonstrar coisas ou quando você trabalha apenas com algumas linhas de código. No entanto, o manuseio de dez diferentes médias móveis dentro do seu código exigiria que você adicionasse o mesmo código dez vezes. Isso tornaria seu código muito mais difícil de ler e a manutenção do código ficaria mais difícil também. Pense em um erro de lógica que você deseja corrigir ou uma mudança na fórmula média que você deseja fazer. Um erro na lógica média provavelmente está incluído em todos os dez blocos de código. A mudança para a fórmula deveria ser feita em dez locais dentro do código. Quais são as funções As funções podem ser úteis aqui. Como desenvolvedor você pode manter seu código em um local, dentro de uma função. Você pode usar esta função agora para fornecer os resultados da computação para qualquer outro código. Em caso de erro lógico no código, isso pode ser uma grande ajuda. O erro deve ser corrigido apenas em um local. Ao mesmo tempo, esta correção afetará todos os outros códigos que chamam sua função. Não tem que ser tão grave quanto um erro. Se você quer simplesmente mudar a lógica, você só precisaria fazer isso em um só lugar. Você também não precisa adicionar o mesmo bloco de código várias vezes, pois você pode simplesmente chamar a função em vez disso. Isso sozinho pode ajudar a minimizar seu trabalho. Ao quebrar a lógica complexa em partes menores também pode melhorar a legibilidade do seu código. Complexidade minimizada, melhor legibilidade e menos trabalho soa ótimo, mas o que são funções Simplificando, uma função é um conjunto de instruções de código que retornam um ou mais valores. As funções têm um nome e, usando esse nome, um indicador, sinal ou outra função pode chamá-lo. Vamos dar uma olhada em como você cria funções, transformando a lógica da média móvel da aula 2 em uma. Isso deve tornar as coisas um pouco mais claras. Crie uma nova função Caso o Editor PL já não esteja funcionando, por favor, comece. Vá para - gt 8220File8221 e clique em - gt 8220New8221 para criar uma nova função. Defina o botão de opção para 8220Function8221 e clique em 8220OK8221. Na próxima janela, devemos dar a nossa nova função um nome. Após a nomeação de lições anteriores, irei chamar a função 8220ABCMovingAverageLesson68221. Estou usando underscores dentro do nome, pois nomes de funções podem não conter espaços e caracteres não alfanuméricos. O sublinhado é a única exceção, e é por isso que estou usando isso em vez do espaço. Sinta-se à vontade para dar a sua função um nome diferente. Apenas tenha em mente que você terá que ajustar seu código mais tarde. O 8220Return Type8221 especifica o tipo de resultado que a função retorna ao chamador. Para a média móvel, retornaremos um valor numérico. Então, configurá-lo para 8220Numeric8221. No caso de sua função retornar um resultado booleano, o tipo de retorno deve ser TrueFalse. Finalmente você usaria a última opção, no caso de a função retornar uma string. Defina o 8220Function Storage8221 para Detecção automática e faça com que o Editor PL cuide do armazenamento correto. Em geral, uma função seria 8220Simple8221, a menos que você faça referência a valores de barras anteriores nele (usando colchetes) nesse caso, ele se tornaria 8220Series8221. Entradas de função Nossa idéia é transformar o código de média móvel da lição 2 em uma função. Nós também queremos chamá-lo facilmente com um comprimento diferente ou usar um preço diferente para a média mais tarde. Como o indicador, a função terá duas entradas. Isso permitirá que você defina o comprimento eo preço da média. Vamos criar entradas semelhantes no código que chama a função mais tarde. Desta forma, podemos alterar os resultados que a função retorna. Você precisa especificar um valor de entrada padrão em um indicador. No código da função, por outro lado, você deve especificar o tipo de cada entrada. Isso garantirá que o programa conheça o valor de entrada a ser esperado enquanto o código está sendo executado. Na maioria das vezes você trabalhará com três tipos de parâmetros de entrada de função 8211 Numérico, TrueFalse ou String (texto). Cada parâmetro pode ter um dos dois subtipos principais série 8211 e simples. Embora isso possa parecer um pouco mais complexo, é muito fácil quando você observa o seguinte. Se o parâmetro de entrada específico for constante, ele é 8220simple8221. Um comprimento médio móvel, por exemplo, seria 8220NumericSimple8221. As entradas que se referem a valores que podem mudar são da série do subtipo. That8217s por que uma entrada de série de preços (como 8220Close8221 para a média móvel) seria 8220NumericSeries8221. A regra de ouro é, quando a entrada permanece barra constante por barra, é 8220Simple8221, caso contrário, é 8220Series8221. Função Saídas Você também pode usar entradas para receber valores fora das funções. Essas 8220 saídas8221 são tratadas como entradas no código também. Com essas entradas você pode referenciar valores para o chamador (indicador, sinal ou função). Desta forma, você pode criar uma função que retorna todos os valores de muitos cálculos relacionados. A função estocástica vem à mente como exemplo aqui. It8217s não apenas retornando um, mas quatro valores (adicionalmente ao valor de retorno da função normal): Slow K, Slow D, Fast K e Fast D. Você declara uma entrada de referência semelhante a uma entrada regular, a única diferença é que você precisa Adicione 8220Ref8221 ao tipo. A maioria das funções de construção em Multicartos e Tradestation que estão usando entradas de referência usam a letra o em frente ao nome da entrada. Desta forma, você pode ver imediatamente que um inputoutput (daí o 8220o8221) é referenciar valores para o chamador. Eu sugeriria manter esse hábito, pois isso pode ajudar a tornar seu código mais claro e melhor para ler. Os tipos de parâmetro de entrada são numéricos, truefalse e string. That8217s porque as entradas de referência são declaradas como numericref, truefalseref e stringref. Valor de retorno Estes valores de saída são adicionais ao valor normal de retorno da função. O último é do tipo especificado como tipo de retorno quando você criou a função. O valor de retorno normal é atribuído ao nome da função no código. Todas as funções de Tradestation devem ter um valor de retorno atribuído ao nome da função. Embora o Multicarts, por outro lado, não exija isso. Você deve tornar seu hábito, como boa prática, sempre adicionar um (mesmo que seja apenas um valor fofo como 1), no entanto. Esse valor simulado pode ser usado mais tarde para verificar uma chamada de função bem-sucedida. Você também pode passar e fazer referência a arrays para e de funções. Isso é feito com NumericArray, NumericArrayRef, TrueFalseArray, TrueFalseArrayRef, StringArray ou StringArrayRef. Examinaremos esse tópico em outra lição. Para hoje, basta ter em mente que você pode passar e fazer referência a arrays, também. Que partes precisamos Queremos que nossa função compute uma média móvel e devolva o resultado. Isso é feito atribuindo o valor ao nome da função. De olhar para o código que criamos na lição 02, exigiremos duas entradas: uma para o preço que deve ser calculado de forma média. Pelo que aprendemos acima, esta será uma entrada de tipo 8220NumericSeries8221. Uma entrada para o comprimento. Como isso permanecerá constante para a média móvel, será do tipo 8220NumericSimple8221. Permite usar os mesmos nomes para as entradas como fizemos no indicador da lição 02. Código de função O código de função principal também será muito semelhante ao indicador. Nossa função requer uma variável usada como contador para o loop. Outra variável para manter o resultado da soma e, finalmente, uma variável para manter o resultado da divisão (o resultado médio real). Embora seja possível usar a mesma variável para os dois resultados, o código fica mais legível com o uso de dois. Também podemos reutilizar a maior parte do código principal que escrevemos para o indicador da média móvel. Ele usa o 8220for loop8221 para somar os valores de preço nas últimas barras X (onde X é o valor de entrada AverageLength). Para obter o resultado médio real, temos que dividir o resultado da soma pelo AverageLength. Como você pode ver, há apenas algumas diferenças no bloco de código principal. Nós não podemos usar a palavra reservada reservada em uma função e precisamos atribuir a variável AverageValue ao nome da função. Desta forma, ele pode ser retornado ao código chamando a função. Agora clique em compilar no editor (ou pressione F3) e você criou sua primeira função. Bom trabalho. Como chamamos uma função, devemos colocar nossa função para usar como o próximo passo e verificar se ele realmente faz o que queremos. A maneira mais fácil de fazer isso é chamar a função em um indicador e traçar o valor que ele retorna. Desta forma, podemos compará-lo facilmente ao código de indicador que criamos na lição 02. Para poder personalizar facilmente o indicador no gráfico, queremos poder definir o preço usado na média móvel e o comprimento por meio de entradas. À medida que o trabalho pesado é feito dentro do código da função, nosso indicador requer apenas uma variável que irá armazenar o valor de retorno das funções. Para receber o resultado, você simplesmente atribui o nome da função à variável que deseja usar. O nome da função é seguido por um suporte de abertura e a primeira entrada de função. Se a função tiver mais de uma entrada, cada entrada é separada por uma vírgula. Após a última entrada, você fecha o suporte e termina a indicação de código com um ponto-e-vírgula. Caso você tenha uma função sem qualquer entrada, o suporte permanecerá vazio. O indicador completo com a chamada de função pode parecer algo assim. Comparando Resultados Comparamos este estudo com o que criamos na lição 02 e verifique se os resultados correspondem. Desde que utilizemos as mesmas entradas e configurações, a menos que cometemos um erro em nossa codificação. O indicador conduzido por função é exibido no gráfico como linha verde. A linha vermelha por baixo, por outro lado, está mostrando o resultado do código que criamos na lição dois. Temos uma correspondência exata e agora temos uma função que é capaz de calcular uma média móvel simples. Eu sugeriria para praticar um pouco mais como chamar e lidar com funções. Você pode, por exemplo, expandir o indicador chamando nossa função, portanto, pode traçar duas médias móveis diferentes. O estudo deve ser capaz de exibir duas médias, mesmo comprimento, mas preços diferentes. Ou, dependendo das entradas, dos mesmos preços, mas de um comprimento diferente. Amuleto de linguagem Amp. Tutorial de PowerLanguage 8211 Lição 02: codificação de uma média móvel Criando o primeiro indicador real e expandindo os conceitos básicos Depois de se familiarizar com o PowerLanguage Editor no tutorial PowerLanguage anterior 8211 lição 01 Agora vamos construir nesta base. No caso de não ter lido a última lição, sugiro fazer isso primeiro, pois também pode ajudá-lo a entender esta lição. Let8217s começam com a lição today8217s agora. Abra o PowerLanguage Editor e crie um novo estudo de indicadores. Nomearei a minha ABCPowerLanguage Lesson 02 8211 Moving Average para que eu possa encontrá-lo facilmente no meu editor mais tarde. O nome é totalmente válido para você, e você pode até mesmo alterá-lo mais tarde. Como a última parte do nome do indicador sugere, vamos criar e traçar uma média móvel hoje. Você provavelmente já viu uma média móvel em um gráfico antes ou lembre-se da média do termo de matemática. O uso principal para médias é como um filtro para suavizar os dados que você inseriu. A imagem exibe uma média móvel simples de 200 períodos que dá um resultado muito suave. A desvantagem dessa suavidade é que você apresente mais atraso. Isso significa que a média se torna menos sensível às mudanças no preço. Se você dar uma olhada na próxima imagem, você verá o quanto o comportamento de uma média móvel simples de 200 períodos é quando você a compara com a média do período 10 verde. O último é muito mais rápido em responder às mudanças de preços, mas, por sua vez, há muito mais 8220noise8221 na média. Existem muitos tipos diferentes de médias que variam principalmente no impacto que cada ponto de dados tem no resultado da média. Uma média móvel simples de 200 períodos simplesmente calculará um somatório dos últimos 200 pontos de dados e dividirá por 200. O resultado é uma média que dá a cada ponto de dados a mesma influência (o mesmo valor) no resultado. A primeira barra e a última barra que fazem parte da média são ponderadas da mesma forma para o resultado. Duas outras médias proeminentes e de uso comum são a média móvel exponencial e a média móvel ponderada. Ambos têm maiores fatores de ponderação para os pontos de dados mais recentes. Em uma média móvel ponderada, a ponderação diminuirá na progressão aritmética. Para a média exponencial, ele diminuirá exponencialmente, daí o nome. Isso será tão teoricamente quanto ele vai conseguir para hoje. Se você quiser ler mais detalhes sobre médias, você pode começar com este artigo da Wikipédia. Para uma melhor compreensão desta lição, você não precisa mais desta informação adicional. Let8217s começam com a codificação de nossa média. Nosso indicador não deve apenas calcular uma média, mas deve produzir o resultado para um gráfico. EasyLanguage tem a palavra reservada 8220Plot8221 para isso e nós vamos usá-lo para fazer isso. Antes de começar com a programação de algo, sempre é uma boa idéia dar um passo atrás e pensar sobre o que você está tentando realizar e como você vai fazer isso. Como este estudo não é muito complexo, há apenas algumas coisas para pensar. Quando os estudos ficam mais complexos, você pode economizar muito tempo com um bom planejamento antecipado. O objetivo é um estudo que calcula e traça uma média móvel simples. Queremos poder alterar o comprimento da média com uma entrada para que ele seja fácil de personalizar. Para a média, precisamos somar a quantidade de valores que correlacionam a entrada de comprimento. Nós não queremos escrever código para cada entrada de comprimento possível para o somatório. Isso significa que o código precisa ser capaz de calcular todas as entradas de comprimento possíveis por conta própria. Você já tem uma idéia de como podemos conseguir isso. A resposta é que precisamos de uma declaração de iteração que pode ser executada repetidamente em cada barra por um número específico de vezes (nossa entrada de comprimento). Eu sei que isso parece complicado, mas será bastante simples. Usaremos o 8220for loop8221 para esta tarefa. Este loop repete uma ou mais instruções para um número específico de iterações definido pelo usuário. O código EasyLanguage é executado de cima para baixo e geralmente da esquerda para a direita. Uma vez que uma linha de código é executada, a próxima linha é executada e assim por diante. Caso a linha de código seja o início de um loop, as linhas de código dentro do loop serão executadas para o valor especificado. Somente quando o loop terminar a próxima linha de código após o loop ser executado. A for loop parece e funciona da seguinte maneira: Uma variável numérica será incrementada (ou diminuída) com cada ciclo do loop a partir do seu valor inicial até o valor final. Esta imagem exibe um loop básico para uma variável de contador numérico (ii neste caso) e o valor inicial de 0. As iterações serão realizadas dez vezes até que o contador tenha atingido o valor de 9. Então o bloco de loop é executado o último Tempo e saída. Você não precisa incrementar o valor do contador, o código do loop cuida disso. O valor do contador atual será armazenado na variável do contador. Então você pode acessá-lo para cada ciclo de loop e usá-lo para seus cálculos. Isso será útil para calcular nossa média. O loop for também pode diminuir o contador com cada iteração. O valor inicial neste exemplo é 9, mas o loop é executado dez vezes até que seja encerrado, também. O contador simplesmente diminui com cada iteração em um até atingir 0. Na Easylanguage, você pode referenciar palavras reservadas, variáveis e funções reservadas a dados de uma barra anterior muito fácil. Usando um número entre colchetes seguindo a palavra reservada, cálculo ou variável retornará o valor para essa barra particular. O número cresce a partir da barra atual (que você faz referência com 0) em incrementos de um. Quando você deseja armazenar o valor do bar8217s anterior próximo a uma variável chamada PrevCloseValue você pode fazê-lo assim: queremos construir nossa média usando o Close para as últimas barras X. Onde X é uma entrada para permitir mais flexibilidade. Você já sabe que queremos usar um loop para isso e acabamos de descobrir como podemos referenciar os valores de Close para as barras anteriores. Isso deve ser suficiente para escrever o código para a parte principal do nosso indicador. Let8217s continuam criando as seções de entrada e variável. Você pode lembrar da última lição que o uso de nomes variáveis de variáveis é uma boa prática de codificação e pode salvar muitos problemas mais tarde. Precisamos declarar uma entrada para que possamos alterar o tamanho da nossa média no gráfico. Além disso, queremos uma variável que contenha a soma, uma para manter o valor do contador e um último para armazenar o valor médio. Para exibir o valor no gráfico, usaremos a palavra reservada Plot. Isto é seguido por um número para que você possa distinguir entre lotes diferentes. O que é necessário, pois você pode usar até 999 parcelas em Multicartas. A palavra reservada reservada pode ter vários parâmetros como cor, tamanho do gráfico e alguns mais. Vamos manter isso simples aqui e usar Plot1 com apenas dois parâmetros 8211 o primeiro para que a expressão numérica seja plotada e uma segunda para o nome que queremos atribuir ao enredo. O código final será algo assim: depois de compilar este código, estamos quase prontos para carregar nosso indicador em um gráfico em Multicartos. Let8217s apenas dê uma olhada nas propriedades do indicador primeiro. Você pode encontrá-los sob - gt File - gt Properties ou clicando no símbolo Properties no menu (deve ser o único para Compile). Na guia Estilo, você pode alterar a cor, o estilo da linha e a espessura para o gráfico que você criou. Se você for na guia de propriedades, há várias opções para definir ou verificar, mas, por enquanto, você só pode querer certificar-se de que a opção 8220Same como Symbol8221 esteja marcada. Isso garantirá que o indicador seja aplicado diretamente no seu gráfico em vez de um subchart. Agora você está pronto para aplicar o indicador a um gráfico de sua escolha. Quando você tem um gráfico aberto na janela principal do Multicartos, você pode simplesmente inserir o indicador neste gráfico. Quando o indicador é aplicado, o resultado deve ser semelhante à captura de tela acima. No entanto, isso não parece certo, pois isso não parece uma média móvel. A série de preços é quase uma linha plana e o gráfico que vem do nosso indicador está aumentando apenas. Com o E-Mini SampP 500 na área de 18217800, um valor médio móvel de 10 bar para este mercado de 182179528217647 obviamente não está correto. Isso aponta para um problema em nossos cálculos. Você tem uma idéia do que o código está faltando. Na verdade, é apenas um pouco, mas um detalhe muito importante que nós esquecemos de adicionar. Precisamos adicionar algo na frente do loop for. O loop simplesmente continua adicionando os valores das dez barras anteriores com cada nova barra. Isso está bem e nós queremos que ele faça exatamente isso, mas nós não queremos que ele adicione os novos valores aos valores antigos. Em outras palavras, você precisa garantir que CloseValueSum doesn8217t ainda mantenha os valores antigos quando o loop for for iniciado. Com a adição de uma linha ao código, o resultado é exatamente o que queríamos alcançar. Também podemos alterar a aparência do indicador8217 na tabela. Usando a aba de estilo sob 8220Format Study8221 podemos alterar o resultado visual como estilo, cor e espessura da linha. Sob a guia 8220Inputs8221, você encontrará a entrada que você criou e a configuração padrão para o comprimento. Ao carregar uma segunda instância do estudo e usando uma cor e um comprimento diferentes, você pode confirmar que o estudo dá um resultado diferente com uma entrada de comprimento diferente. Se você está tendo problemas para encontrar a correção, sinta-se à vontade para nos contatar com sua solução e tentaremos ajudá-lo em tempo hábil. Tenho medo de pedir apenas a solução, mas, pelo menos, você pode demonstrar que você também envolveu algum esforço para encontrar a solução. Como última sugestão, você pode dar uma olhada em outros indicadores ou funções comuns e encontrar alguma inspiração para o link perdido. Espero que você tenha gostado desta lição do tutorial de Powerlanguage e estou ansioso para trabalhar com você no próximo. Copie e cole o código acima em seu ambiente de desenvolvimento em Tradestation ou MultiCharts como Indicador. Em seguida, clique em compilar ou verifique. Este código detecta se o preço de fechamento hoje é maior ou menor que o preço de fechamento de ontem. (Isso pode ser colocado em gráficos diários ou gráficos de minutos e o close1 refere-se ao bar anterior ou no dia anterior) Se você digitar close2, ele se referiria ao fechamento de 2 dias ou barras atrás. Então temos o somatório das últimas barras (comprimento 20). Para ver como funciona, você pode alterar esta linha de código plot1 (summove, quotup-downcountquot) para este plot1 (move, quotup-downcountquot). Em seguida, clique em compilar. Você pode então ver seus gráficos de indicadores uma linha que é 1, -1 ou 0. As entradas escritas na parte superior representam valores que podem ser alterados pelo usuário ao traçar o indicador no gráfico. Uma vez que você traça o indicador na sua forma original, você pode alterar o comprimento para 50 ou 20 ou 100 para ver como ele afeta o enredo. As variáveis são mostradas aqui como quotvarsquot e estes são os valores que criei para armazenar os valores emitidos pelas 3 linhas de código iniciando se fechado. E a variável summove. Summove summation (move, length) Isso significa que o summove da variável é criado a partir da somatória das últimas barras de 20 barras (ou período de tempo) com todos os valores de 1 e -1 e 0. Você pode experimentar jogando com valores diferentes. Exemplo de novato no2 (porcentagem de ponderação ajustável em média móvel) média lenta (fechar, comprimento1) média rápida (fechar, comprimento2) se valor1lt0 então valor10 se valor1gt1 então valor11 Você pode ler primeiro o código acima antes de criar este indicador e ver se você pode ver O que está fazendo. Existem duas médias móveis usadas com comprimento lento de 50 e um comprimento rápido de 20, a entrada chamada fator é ajustável para atribuir uma ponderação a cada uma. Se o fator for definido como 0,5, ele adicionará 50 da média lenta a 50 da média rápida e criará uma média combinada do período dois. Para ver valores máximos do fator de ajuste médio lento para 1, para ver o gráfico construído inteiramente da média mais rápida, você pode definir o fator em 0. Você pode experimentar valores como 0.1 e 0.9 para ver os efeitos de ajustes na ponderação. Se você usar o nome valor1 ou valor2 ou o valor 99 como variáveis, não será necessário declarar os nomes desses na parte superior. Value2 1-factor é uma maneira muito boa de obter 2 variáveis para atribuir automaticamente 1 de uma parte e 99 da outra parte, então, quando adicionadas, sempre serão 100 Limite o erro do usuário, restringindo as entradas fazendo as variáveis as lerem. (O código para value1 faz isso depois de ler a entrada do fator) Truques de código para tentar Se você olhar para as variáveis lentas e rápidas, você verá que ambos usam médias (média é que este código significa média simples). Você pode tentar fazer o lento em uma média ponderada ou uma média exponencial e misturá-los para fazer sua própria combinação média combinada. Iniciantes exemplo no3 (Indicador de tendência binária simples) se média (fechar, tempo rápido) gt média (fechar, comprimento lento), em seguida, iniciar binarytrend1 terminar mais binarytrend -1 Esse indicador determina a tendência quotbinary, o que significa que converte-a em um número. Assim, a tendência de alta 1 tende de baixa -1 e o valor inicial é atribuído como 0. Se você traçar a média móvel de 80 períodos e a média móvel de 12 períodos no gráfico, você pode verificar se o indicador de tendência está funcionando. Usando outras instruções para reduzir o comprimento do código. EG acima supõe que, se a tendência não for 1, deve ser -1. Truques de código para tentar Se você tentar usar outro método para atribuir a tendência é para cima ou para baixo e substituir o código por sua idéia. POR EXEMPLO. Você usa o oscilador estocástico com 50 acima indicadas e tendência de queda abaixo de 50. O equivalente a 50 pode ser apanhado dizendo isso. Se o estocástico for gt50, então conte-se como tendência de alta (código psuedo) Exemplo de novidades no4 (algoritmo de ajuste de comprimento simples) se fechar mais alto (fechar, comprimento básico) ou fechar mais baixo (fechar, comprimento básico), então, iniciar o monitor monitor1-1 terminar mais monitormonitor10.5 se o monitor Lt minlength então monitorize minlength se monitor gt maxlength então monitor maxlength Este é o primeiro estágio de fazer um algoritmo para controlar o comprimento aplicado a um indicador. Você pode ver que, se você traçar esse indicador no subgrafo 2, ele varia entre 50 e 10, que são os comprimentos máximo e mínimo permitidos. (Mas estas são entradas ajustáveis) Se o preço estiver fazendo um novo alto ou baixo para o período de comprimento básico, ele diminuirá com 1 incremento de comprimento para cada barra que a condição é verdadeira. Se o preço não for um novo alto ou baixo para o mesmo período, reduzirá o comprimento por 0,5 incremento de comprimento para cada barra, a condição é verdadeira. Truques de código para tentar Se você tentar alterar os valores de -1 e 0,5 para quantidades maiores ou menores, você pode ajustá-lo de acordo com suas necessidades. Abaixo vou mostrar-lhe como construir este código em um indicador de mudança de comprimento. Iniciantes exemplo no5 (Comprimento simples ajustando a média móvel ponderada) se fechar mais alto (fechar, comprimento básico) ou fechar mais baixo (fechar, comprimento básico), então, iniciar o monitor monitor1-1 terminar outro monitormonitor10.5 se monitor lt minlength então monitorar minlength se monitor gt maxlength então Monitorar maxlength Você pode ver que outra variável foi adicionada, que é uma média móvel ponderada e o truque aqui é substituir o campo de comprimento usual pelo monitor de algoritmo que está ajustando o comprimento aplicado. Truques de código para tentar Se você traça uma média ponderada de 20 períodos ao lado dele no subgrafo. Você pode ver como o código acima da média de mudança de comprimento é mais lento em algum período e mais rápido em outros períodos. O indicador acima é colocado no subgrafo n. ° 1 sobreposto com o preço. O código de exemplo no4 é colocado no sub 2. Você pode observar o algoritmo de mudança de comprimento em ação e ver como ele afeta a velocidade da média ponderada. Iniciantes exemplo no6 (Como evitar divisão por zero de erros) Divisão por zero é um problema freqüente na programação. A resposta é sempre infinita, por isso temos que evitar que qualquer coisa seja dividida em zero, em primeiro lugar. Existem dois métodos para fazer isso. Se value1 0 então value1value10.0000000001 Então, simplesmente adicionamos um pequeno número, o que é tão pequeno que não vai fazer muita diferença nas saídas. Se value1 ltgt 0, então valor2 valor3 valor1 Isso força o computador a perguntar se o valor1 é 0 ou não antes de fazer seus cálculos. Se for 0, retornará o valor padrão que foi atribuído ao valor1 nas variáveis quando você o criou. Exemplo de novatos no7 (Como usar Fisher Transform)
Comments
Post a Comment