Saturday, 18 November 2017

Bollinger bands in matlab no Brasil


Estou tentando traduzir um indicador de MQL4 (linguagem Metatrader) para Matlab. O código de bandas de Bollinger é o seguinte: a documentação de iBands () lista as 8 entradas como: Eu entendo todas essas exceto bandsshift e shift. Pergunta: Se i Bars é todo o intervalo de dados, por que o i1 não cria um erro fora do intervalo Tanto quanto eu posso dizer, este é o código para um período de 20, 2 desvio padrão banda Bollinger. Para um determinado intervalo de tempo, são os valores de banda Bollinger associados os valores calculados para o intervalo de tempo anterior (daí o 1 após a quarta vírgula) O que o i1 faz então Dado este código, como eu iria implementar em matlab Minha tentativa, usando este Movendo desvio padrão e esta média móvel: Eu não acho que isso dá a mesma saída como o código MQL4. Quaisquer sugestões seria definitivamente apreciado pediu Feb 4 14 at 20:06 Como entender iBars1 e um Missing Out of Range Erro MQL4 funciona em um espaço de indexação TimeDOMAIN invertido. Assim, o iBar mostra a profundidade do histórico TimeSeriesDataSET, enquanto o mais recente (ao vivo) barra tem um índice de 0. Isto significa que, para um cálculo de qualquer indicador técnico, o codificador deve organizar o processamento desta maneira. Isso também significa que, para qualquer nova barra, a representação interna da camada de armazenamento de dados tem de alguma forma mudar todos os DataCELLs por um para a esquerda (para trás em uma direção TimeDOMAIN para History) para fazer um espaço para uma nova barra ainda ter Índice de 0 (um momento Now em um TimeDOMAIN). Ao mover fisicamente toda a profundidade atual do DataSTORE seria um conjunto absoluto de recursos (tempo, CPU.), A camada de armazenamento de dados funciona mais inteligente, ajusta a cabeça de indexação em cada novo evento de barra e usa alguma forma de elástico DataSTORE planejamento de capacidade de tamanho sob demanda, de modo a minimizar o mem-alloc (s) durante o crescimento contínuo do DataSTORE. Isso significa que o teste para um Erro fora do intervalo não tem suporte no namespace do código do usuário da linguagem MQL4. Como entender bandas shift e shift. Chamar iBands () tem que indicar para qual Bar um pede a função para calcular um resultado. Shift fornece entrada para isso. O índice obedece às regras acima. Uma vez que os cálculos de Bandas de Bollinger são feitos, pode-se desejar compensar as curvas por uma certa quantidade de Barras - transpondo o gráfico em TimeDOMAIN para a direita - para que os gráficos visualizados satisfaçam as expectativas ou o prazer. Bandsshift fornece entrada para este gráfico ad-hoc deslocamento. Observe também que as diferenças observadas entre os gráficos do Google, YFinance, MATLAB e MQL4 simplesmente precisam aparecer e contabilizar detalhes adicionais (desconhecidos) que dificilmente podem ser descodificados das linhas mostradas na tela. Appliedprice: fornece uma entrada para selecionar o tipo apropriado de preço entrando no cálculo de Bollinger. Modo: fornece entrada para receber um valor PriceDOMAIN. Assim, uma abordagem preguiçosa é chamar as iBands () três vezes para obter o tree-line-Bollinger, ou muitas vezes para um espectro de cores Bollinger Band calor-mapas. Com meu pouco conhecimento das bandas de Bollinger, parece que você pode ter uma questão de implementação. Você já tentou a saída da função Bollinger em MATLAB bandas Bollinger podem ter sido implementadas de forma diferente para casos de borda onde o tamanho da janela é menor que 20. Você pode ter que entrar em contato com os autores MQL4 para verificar as fórmulas usadas. Eu notei uma diferença quando eu implementado em Python eo indicador visto no Google Finanças. No entanto, se você tiver implementado corretamente, os valores onde o tamanho da janela é de 20, você verá os mesmos valores. A menos que você esteja muito seguro do código FEX, você deve usar std e significa para a implementação. (Data, wsize, wts, nstd) calcula as bandas média, superior e inferior que compõem as bandas de Bollinger a partir dos dados vetoriais. Mid é o vetor que representa a banda média, uma média móvel simples com tamanho de janela padrão de 20. uppr e lowr são vetores que representam as bandas superior e inferior. Estas bandas são 2 vezes e -2 vezes movendo desvios padrão longe da banda média. Midfs, upprfts, lowrfts bollinger (tsobj, wsize, wts, nstd) calcula as bandas média, superior e inferior que compõem as bandas de Bollinger de um objeto de série de tempo financeiro tsobj. Midfts é um objeto de série de tempo financeiro que representa a banda média para todas as séries em tsobj. Ambos upprfts e lowrfts são objetos da série de tempo financeiro que representam as faixas superior e inferior de todas as séries, que são 2 vezes e -2 vezes movendo desvios padrão longe da faixa média. Calcular as bandas de Bollinger para preços de fechamento de ações da Disney e traçar os resultados: Achelis, Steven B. Análise Técnica de A a Z. Segunda impressão, McGraw-Hill, 1995, pp. 72 - 74. Acabei de publicar um artigo MATLAB como um sistema de execução automatizado. (Está disponível para os leitores do meu livro e assinantes do meu site de conteúdo Premium.) Ele vem com códigos MATLAB ex executando uma simples Bollinger banda de alta freqüência E-mini estratégia de negociação. Como eu mencionei antes, agora acho MATLAB para ser uma boa plataforma não apenas para backtesting, mas para a execução automatizada também. Naturalmente, nem todas as corretoras têm APIs que se conectam ao MATLAB. Meus códigos de exemplo são para enviar ordens automaticamente para uma conta Interactive Brokers. Em geral, eu acho que escrever programas de execução em MATLAB é uma brisa em comparação com C, Java ou mesmo C. Demora cerca de 15 o tempo de desenvolvimento de um programa em C. Quaisquer limitações de desempenho provavelmente não serão devidas ao MATLAB, mas à latência de sua corretora na atualização de posições e status da ordem. 82 comentários: Ive sido um lurker por um tempo e desfrutar do seu blog. Pergunta rápida: você já tentou Mathematica (tem um conjunto poderoso e bastante elegante de funções baseadas em uma metodologia de lista que pode mapear bem para estratégias de negociação Ou, coisas aleatórias como fotografia de abertura sintética.) Obrigado novamente por outro artigo fantástico. Seu livro apenas continua dando através da senha embutida para o seu site premium Eu sei que seu código Bollinger é projetado mais para nos mostrar como implementar MATLAB2IB do que como um sistema comercial, mas uma vez que você é obviamente muito bom no Matlab, como você adicionaria um trailing Parar condição de saída. Eu entendo a lógica - o que é o maior lucro aberto, o que é lucro aberto atual, se diferente por X por cento, em seguida, sair, mas estou tendo problemas com a sintaxe Matlab. Qualquer possibilidade que você poderia fornecer um exemplo simples no código de Matlab para o exemplo de Bollinger ou como um autônomo Você é um erudito e um cavalheiro, eu tenho procurado um exemplo como este por algum tempo. Muito apreciado Hi G-Fav, tenho programado em Mathematica antes. No entanto, eu sinto que MATLABs array capacidade de processamento é mais adequado para a pesquisa de arbitragem estatística. Além disso, não tenho certeza se existe uma API Mathematica para conexão com corretoras. Ernie Olá Anônimo, vou olhar para fornecer código de exemplo para parar à direita em algum ponto no futuro. Mas você pode sempre manter-se a par do preço máximo de seu estoque desde sua entrada em uma variável de Matlab. Assim, sempre que o último preço gera um retorno (redução) abaixo de um determinado mínimo, envie uma ordem de mercado para sair da sua posição. Ernie Adorei o livro Ernie, várias de suas funções de ajuda estão no meu caminho MATLAB. Se alguém é deixado de fora no frio com IB, o MB Trading SDK também se integra bem com MATLAB. Ele tem controles ActiveX pré-fabricados que são um snap para implementar no GUIA para criar interfaces comerciais personalizadas. Este código é ouro - obrigado por ser tão generoso com o seu conhecimento. Id gostaria de negociar FX, mas com IB você não começa um último preço no feed de dados FX, você obtém o último fechamento da sessão anterior, mas não o último preço de negociação em sua sessão atual. O que é uma boa maneira de abordar este problema Como um tomador de preço em FX você muitas vezes tem que tomar a propagação de forma a calcular a média (tomar o ponto médio) do bidask isnt uma solução viável. Quaisquer recomendações Você também deve considerar a combinação RPythonPerl. É livre, mas poderoso. Uma pergunta e um comentário, Qual é a vantagem de usar o software IB2MATLAB sobre a versão gratuita usando o ACTIVEX. Aqui está um código de exemplo como conectar diretamente via COM. (Matlabtradercode. phpprojectInteractiveBrokersampfileIBexamples) Eu acredito que usando um objeto matlab timer fará o código mais amigável. Obrigado pelo código. Eu achei muito usful. Após uma análise mais aprofundada, a demonstração da API MatLab2IB não inclui todas as funções para que não possa ser testada. Eu entrei em contato com eles para ver se uma versão completa pode ser trialed. Além disso, eu não era capaz de obter o código do MatLabtrader usando controles ActiveX para trabalhar. Estou executando a API 9.51. Qualquer outra pessoa tem melhor sorte Matt, Se o IB não fornecer o último preço para as moedas, você pode ter que assinar a Bloomberg e usar Matlabs Datafeed toolbox para obter dados Bloomberg. Esta é, naturalmente, uma proposta muito mais cara, mas vale a pena se você pode gerar receitas a partir do seu modelo. Ernie Anonymous, Sim, eu também mencionei em um post antes que há uma livre de código aberto API R que se conecta aos corretores interativos. Eu não tentei sozinho, mas fez qualquer leitor aqui tentar Ernie Anonymous, Não pode haver uma vantagem em usar matlab2ibapi mais usando a versão gratuita do matlabtrader. No entanto, o custo de matlab2ibapi é tão baixo, eo serviço ao cliente tão amigável, que eu não considero uma vantagem intrínseca livre. O maior custo na negociação é a perda de má execução ou maus modelos. Ernie ExchangeAPI recusou meu pedido para um julgamento totalmente funcional. Não consigo testar esta API para confiabilidade, precisão e latência em relação aos meus sistemas atuais, por isso terei que encontrar uma solução usando a versão gratuita do MatLabTrader. Eu apenas can39t afundar 300 em outro software que soa bem a menos que haja uma vantagem distinta sobre minha infra-estrutura atual. Eu tenho usado a versão matlabtrader por um longo tempo agora e ele funciona perfeitamente. Claro que você tem que dar alguns ajustes aqui e ali, mas ele fornece toda a funcionalidade. Existem alguns exemplos incluídos, por isso é muito fácil de começar. Eu recomendaria altamente a qualquer um que quer negociar usando a API, mas não quer gastar o dinheiro) Dr. Chang, este é um pouco não relacionado a este borne, mas relacionado a seu livro. Desde que você menciona Jim Simon. Eu pensei que você iria apreciar isso: economistfinancedisplaystory. cfmstoryid13751628, bem como este comentário em particular anexado à história acima: quotHenry Leeds escreveu: 29 de maio de 2009 2:49 Jim Simons é um Pool Operador com a capacidade de levantar grandes quantidades de dinheiro de investidores . Ele não tem as habilidades matemáticas e conhecimentos necessários para desenvolver um Sistema de Negociação realmente superior. Sua reivindicação à fama repousa sobre seus anos ajudando Shiing Shen Chern, um matemático brilhante que generosamente permitiu Simons para adicionar seu nome para o papel de 1974 Chern escreveu. O Fundo Medalhão foi criado por Elwyn Berlekamp, ​​um brilhante professor de Engenharia Elétrica e Matemática em Berkeley. Berlekamp utilizou seu conhecimento da teoria revolucionária da informação de Claude Shannon para criar esta maravilha. Shannon foi conselheiro de doutorado de Berlekamp no MIT. Berlekamp desenvolveu seu Medallion Fund em questão de meses e seu desempenho incrível é descrito no site Berlekamp39s. Simons queria Berlekamp para re-localizar a Long Island e continuar a desenvolver os algoritmos que compõem a sua obra-prima Medalhão. Berlekamp não queria deixar Berkeley e, como resultado, cometeu um enorme erro. Ele vendeu os direitos de sua invenção para Simons por seis vezes o que lhe custou - uma quantidade relativamente pequena. Ele agora afirma em seu site que o Fundo Medalhão vale muitos milhares de vezes a quantia em dólar que ele recebeu por sua conquista. O fundo de hedge de RIEF da Renascença é um exemplo das habilidades criativas de Simon. Seu desempenho é lamentável e resultou em retiradas de investidores de 18 bilhões de dólares. Os investidores renascentistas queixaram-se amargamente de como seu investimento se fez tão mal, enquanto o Medallion Fund, reservado exclusivamente para funcionários da Renascença, fez tão bem. Pode-se certamente compreender a sua vexação. Eu tenho estado na indústria comercial por um pouco de tempo e todos e suas coisas de mãe de Jim Simon como sendo um deus. O Sr. Leeds parece oferecer outra leitura do Pr. Sucesso de Simon que veio como um choque para mim. I39m não tão certo sobre MatLab2IB39s quotcustomer serviço tão friendlyquot após N N39s comentários eu lhes enviei um e-mail perguntando se eles podem confirmar que o programa vai trabalhar com IB39s FX, especialmente o roteamento com IDEALPRO - Eu nunca recebi uma resposta. Então agora estou brincando com o matlabtrader, vou tentar codificar seu exemplo com o matlabtrader, se eu conseguir que ele funcione bem talvez você gostaria de postar o código de comparação. Adoro esse site - obrigado, sou um dos autores da API MATLAB2IB. Pedimos desculpas. Não sabemos como perdemos seu e-mail. Você pode ser gentil o suficiente para e-mail novamente. Estamos sendo inundados com pedidos de julgamento e outros e-mails e por isso pode ter perdido. Você pode me enviar um e-mail diretamente. SIM, o MATLAB2IB funcionará com IB FX. Contanto que você tenha permissões com IB, MATLAb2IB não terá nenhum problema em colocar seu pedido. Infact, SOme dos nossos proprietários de licença usá-lo especificamente para FX. Quanto NN: Ele nos perguntou se podemos fornecer-lhe uma versão de avaliação com funcionalidade api completo. Como política decidimos não fornecê-lo. É tão simples assim. Há muitas razões que eu posso discutir separadamente. Matt, eu acho que se você quiser rotear suas ordens de FX para IDEALPRO, você só precisa especificar IDEALPRO como a troca quando você usa a função placeOrder. Ernie eu tinha escrito anteriormente sobre alguns trailing stop loss code. No Mathworks, vejo que Aly Kassam atualizou seu excelente webinar de 39Algorithmic Trading com MATLAB39 eo código associado para que agora inclua algum código de stop loss. O código do webinar atualizado está em: mathworks. aumatlabcentralfileexchange24320 Seus leitores podem estar interessados ​​em assistir a ambos os webinars da Aly39s para ver os benefícios do MATLAB. Portanto, se alguém quisesse criar um programa de troca de pares com essa amostra, eles criariam um quotlocalsymbol2quot, então solicitariam os dados do mercado Para que a segurança particular e ter o programa executar ordens de compra ou venda oposto à segurança primária com loops de acessório e para calcular os períodos de desvio e lookback, um seria capaz de ajustá-lo, modificando o zscore39lookback3939entryz3939exitz39 para representar dizer regressão linear em vez de bollinger Então, se alguém quisesse criar um programa de troca de pares com este exemplo, eles criariam um quotlocalsymbol2quot, em seguida, solicitar os dados de mercado para essa segurança particular e ter o programa executar compra ou vender ordens opostas à segurança principal com loops Para calcular os períodos de desvio e retrocesso, seria possível Apenas modificando o zscore39lookback3939entryz3939exitz39 para representar dizer regressão linear em vez de bandas de bollinger Hi Anon, Sim, você pode criar um símbolo separado2 e símbolo locals2 para a outra perna do par. Quanto ao Zscore, lookback, etc. Depois de ter determinado uma relação de hedge, você reduziu a série de tempo para 1 dimensão (quotthe spreadquot), então a banda Bollinger funcionará exatamente como em um caso de 1 instrumento. Ernie So, na ordem de compra para a segurança 39localsymbol39 parte de um loop, logo abaixo, um iria colocar uma ordem de venda de segurança 39localsymbol239 e torná-lo parte de um único loop para torná-lo um tandem comércio E Linear Regression ou EMA ou qualquer Outro indicador deve funcionar tão bem, desde que sejam fornecidos os parâmetros zscore adequados. Quanto a métricas de volumeB Indicador B Indicador A configuração padrão para B é baseada na configuração padrão para Bandas de Bollinger (20,2). As bandas são definidas 2 desvios padrão acima e abaixo da média móvel simples de 20 dias. Que também é a banda média. Preço de segurança é o fechar ou o último comércio. Sinais: OverboughtOversold B pode ser usado para identificar situações de sobrecompra e sobrevenda. No entanto, é importante saber quando procurar leituras de sobre-compra e quando procurar por leituras de sobrevenda. Tal como acontece com a maioria dos osciladores de momentum, é melhor olhar para situações de sobrecarga de curto prazo quando a tendência de médio prazo é para cima e curto prazo sobre-comprado situações quando a tendência de médio prazo está para baixo. Em outras palavras, procure oportunidades na direção da tendência maior, como um pullback dentro de uma maior tendência de alta. Defina a tendência maior antes de procurar as leituras de overbought ou oversold. O gráfico 1 mostra a Apple (AAPL) dentro de uma forte tendência de alta. Observe como B moveu-se acima de 1 várias vezes, mas nem sequer chegou perto de 0. Embora B mudou-se acima de 1 vezes, essas leituras de sobre-compra não produziram bons sinais de venda. Os retornos eram superficiais, à medida que a Apple reverteu bem acima da banda inferior e retomou sua tendência de alta. John Bollinger refere-se a caminhar a banda durante fortes tendências. Em uma forte tendência de alta, os preços podem subir na faixa superior e raramente tocar na banda inferior. Inversamente, os preços podem caminhar abaixo da banda inferior e raramente tocar a banda superior em uma forte tendência de baixa. Depois de identificar uma tendência maior, B pode ser considerada sobre-vendida quando se move para zero ou abaixo. Lembre-se, B move para zero quando o preço atinge a faixa inferior e abaixo de zero quando o preço se move abaixo da faixa inferior. Isso representa um movimento que é 2 desvios padrão abaixo da média móvel de 20 dias. O gráfico 2 mostra o ETF Nasdaq 100 (QQQQ) dentro de uma tendência de alta que começou em março de 2009. B moveu-se abaixo de zero três vezes durante esta tendência de alta. As leituras sobrevendidas no início de julho e início de novembro forneceram bons pontos de entrada para participar da maior tendência de alta (setas verdes). Sinais: Identificação de Tendências John Bollinger descreveu um sistema de tendências seguintes usando B com o Índice de Fluxo de Dinheiro (MFI). Uma tendência de alta começa quando B está acima de 0,80 e MFI (10) está acima de 80. MFI é limitado entre zero e cem. Um movimento acima de 80 lugares MFI (10) nos 20 superiores de sua escala, que é uma leitura forte. As tendências de baixa são identificadas quando B está abaixo de 0,20 e MFI (10) está abaixo de 20. O gráfico 3 mostra FedEx (FDX) com B e MFI (10). Uma tendência de alta começou no final de julho, quando B estava acima de 0,80 e MFI estava acima de 80. Esta tendência de alta foi posteriormente afirmado com mais dois sinais no início de setembro e meados de novembro. Embora esses sinais fossem bons para a identificação de tendências, os traders provavelmente teriam problemas com a relação risco-recompensa após esses grandes movimentos. É preciso um aumento de preço substancial para empurrar B acima de 0,80 e MFI (10) acima de 80 ao mesmo tempo. Os comerciantes podem considerar o uso deste método para identificar a tendência e, em seguida, olhar para os níveis de overbought apropriado ou oversold para melhores pontos de entrada. Conclusões B quantifica a relação entre o preço e Bandas Bollinger. Leituras acima .80 indicam que o preço está perto da faixa superior. As leituras abaixo .20 indicam que o preço está próximo da faixa inferior. Surges para a banda superior mostram força, mas às vezes pode ser interpretado como overbought. Os mergulhos na banda inferior mostram fraqueza, mas às vezes podem ser interpretados como sobrevendidos. Muito depende da tendência subjacente e outros indicadores. Enquanto B pode ter algum valor por conta própria, é melhor quando usado em conjunto com outros indicadores ou análise de preços. Clique aqui para um gráfico ao vivo. B e SharpCharts B podem ser encontrados na lista de indicadores no SharpCharts. Os parâmetros padrão (20,2) são baseados nos parâmetros padrão para Bandas Bollinger. Estes podem ser alterados em conformidade. 20 representa a média móvel simples. 2 representa o número de desvios padrão para a banda superior e inferior. B pode ser posicionado acima, abaixo ou atrás do gráfico de preços. Clique aqui para ver um exemplo vivo de B. Varreduras sugeridas B Varredura de alta tendência: Esta varredura filtra estoques onde B está acima de 0,80 e MFI apenas cruzou acima de 80. De acordo com Bollinger, essas ações poderiam começar novas oscilações. Esta verificação é apenas um ponto de partida. Refinamento adicional e análise são necessários. B Varredura de tendência: Esta varredura filtra estoques onde B está abaixo de 0,20 e MFI apenas cruzou abaixo de 20. De acordo com Bollinger, essas ações poderiam começar novas oscilações. Esta verificação é apenas um ponto de partida. Refinamento adicional e análise são necessários.

No comments:

Post a Comment