Estou tentando traduzir um indicador de MQL4 (Metatrader language) para Matlab. O código das bandas de Bollinger é o seguinte: a documentação iBands () lista as 8 entradas como: Eu entendo tudo isso, exceto a mudança de faixa e a mudança. Pergunta: Se i Bars é toda a gama de dados, por que o i1 não cria um erro fora do alcance Tanto quanto eu posso dizer, este é um código para um período de 20, 2 desvio padrão da banda de Bollinger. Para um determinado intervalo de tempo, os valores da banda Bollinger associados são 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 implementaria no matlab Minha tentativa, usando isso Desvio padrão móvel e esta média móvel: eu não acho que isso dê o mesmo resultado que o código MQL4. Quaisquer sugestões serão definitivamente apreciadas, perguntou 14 de fevereiro às 20:06 Como entender o iBars1 e um erro de falta de alcance faltante O MQL4 funciona em um espaço de indexação de tempo reverso. Assim, o iBar mostra a profundidade do TimeSeriesDataSET histórico, enquanto a barra mais recente (ao vivo) possui um índice de 0. Isto significa que, para um cálculo de qualquer indicador técnico, o codificador deve providenciar o processamento desta maneira. Isso também significa que, para qualquer nova barra, a representação interna da camada de armazenamento de dados precisa deslocar de alguma forma todas as DataCELLs de uma para a esquerda (para trás em uma direção TimeDOMAIN em direção a História) para criar um espaço para uma nova barra que tenha ainda Índice de 0 (a Now moment in a TimeDOMAIN). Ao mover fisicamente toda a profundidade atual do DataSTORE seria uma grande quantidade de recursos (tempo, CPU). A camada de armazenamento de dados funciona de forma mais inteligente, ajusta a cabeça de indexação em cada novo evento de barra e usa alguma forma de elástico Planejamento de capacidade de DataSTORE em tamanho sob demanda, de modo a minimizar as mem-alloc (alocação) durante o crescimento contínuo do DataSTORE. Isso significa que o teste para um erro fora de alcance não possui suporte no namespace do código do usuário da linguagem MQL4. Como entender a mudança de faixa e a mudança. Chamar iBands () tem que indicar para qual Barra se pergunta a função para calcular um resultado. Shift fornece entrada para isso. O índice obedece às regras acima. Uma vez que os cálculos Bollinger Bands são feitos, pode-se desejar compensar as curvas por uma quantidade de barras - transpondo o gráfico em TimeDOMAIN direito - para que os gráficos visualizados atendam às expectativas ou prazeres. A mudança de faixa fornece entrada para este gráfico de mudança ad hoc. Observe também que as diferenças observadas entre os gráficos do Google, YFinance, MATLAB e MQL4 simplesmente têm que aparecer e contam detalhes adicionais (desconhecidos) que dificilmente pode decodificar das linhas que acabam de ser mostradas na tela. Preço aplicado: fornece uma entrada para selecionar o tipo apropriado de preço que entra no cálculo de Bollinger. Modo: fornece entrada para receber um valor PriceDOMAIN. Assim, uma abordagem preguiçosa é chamar os iBands () três vezes para obter a linha de árvores-Bollinger, ou muitas vezes para um mapa de calor Bollinger Band de cor espectro. Com meu pequeno conhecimento das bandas de Bollinger, parece que você pode ter um problema de implementação. Você tentou o resultado da função Bollinger em MATLAB As bandas de 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 do MQL4 para verificar as fórmulas usadas. Notei uma diferença quando implementei no Python e o indicador visto no Google Finance. No entanto, se você implementou corretamente, os valores onde o tamanho da janela é de 20, você verá os mesmos valores. A menos que você tenha certeza do código FEX, você deve usar std e significar para implementação. Respondido 9 de fevereiro às 5:55 Sua resposta 2017 Stack Exchange, IncBollinger Bands 8211 Momentum Model Trading Strategy (Configuração) I. Estratégia de negociação Desenvolvedor: John Bollinger (Bollinger Bands). Conceito: estratégia de negociação baseada na Tendência, baseada em Bandas Bollinger. Objetivo de pesquisa: verificação de desempenho do modelo trifásico (longshortneutral). Especificação: Tabela 1. Resultados: Figura 1-2. Trade Setup: Long Trades: Closei 1 gt UpperBandi 1. Transações curtas: Closei 1 lt LowerBandi 1. Índice: i Barra atual. Entrada de Comércio: Long Trades: Uma compra no open é colocada após uma configuração de alta. Operações curtas: uma venda no aberto é colocada após uma configuração de baixa. Trade Exit: Tabela 1. Carteira: 42 mercados de futuros de quatro principais setores de mercado (commodities, moedas, taxas de juros e índices de participação). Dados: 36 anos desde 1980. Plataforma de testes: MATLAB. II. Teste de sensibilidade Todas as tabelas 3-D são seguidas de gráficos de contorno bidimensionais para fator de lucro, Razão de Sharpe, Índice de desempenho de úlcera, CAGR, Drawdown máximo, Negociações lucrativas percentuais e Média. Win Avg. Rácio de perda. A imagem final mostra a sensibilidade da Equity Curve. Variáveis testadas: MALength amp StDev (Definições: Tabela 1): Figura 1 Desempenho do portfólio (Entradas: Tabela 1 Comitê amp Slippage: 0). Acabei de publicar um artigo MATLAB como um Sistema de Execução Automatizada. (Está disponível para os leitores do meu livro e assinantes no meu site de Conteúdo Premium). Ele vem com ex-códigos MATLAB que executam uma estratégia de negociação E-mini Bollinger-band de alta freqüência. Como mencionei anteriormente, agora acho que o MATLAB seja uma boa plataforma, não apenas para backtesting, mas também para execução automática. Claro, nem todas as corretoras possuem APIs que se conectam ao MATLAB. Meus códigos de exemplo são para enviar ordens automaticamente para uma conta Interactive Brokers. Em geral, acho que escrever programas de execução no MATLAB é uma brisa em comparação com C, Java ou mesmo C. Demora cerca de 15 o tempo de desenvolvimento de um programa C. Qualquer limitação de desempenho provavelmente não será devido ao MATLAB, mas à latência de sua corretora na atualização de posições e no status do pedido. 82 comentários: Eu tenho sido um louco por um tempo e aproveite seu blog. Pergunta rápida: você já tentou Mathematica (possui um conjunto poderoso e bastante elegante de funções, com base em uma metodologia de lista que pode ser mapeada para estratégias de negociação ou coisas aleatórias como a fotografia de abertura sintética.) Obrigado novamente por outro artigo fantástico. Seu livro simplesmente continua dando via senha embutida para o seu site premium. Sei que seu código Bollinger foi projetado mais para nos mostrar como implementar o MATLAB2IB do que como um sistema comercial, mas como você obviamente é realmente bom em Matlab, como você adicionaria um final Pare a condição de saída. Eu entendo a lógica - qual é o maior lucro aberto, o que é lucro aberto atual, se diferente por X por cento, então saia, mas estou tendo problemas com a sintaxe Matlab. Qualquer chance de você fornecer um exemplo simples no código Matlab para o exemplo de Bollinger ou como um autônomo Você é um estudioso e um cavalheiro, tenho procurado um exemplo como esse por algum tempo. Muito apreciado Oi G-Fav, já programado em Mathematica antes. No entanto, sinto que a capacidade de processamento da matriz MATLABs é mais adequada à pesquisa de arbitragem estatística. Além disso, não tenho certeza de que exista uma API Mathematica para conexão com corretoras. Ernie Oi Anônimo, vou olhar para fornecer código de exemplo para parar em algum ponto no futuro. Mas você sempre pode acompanhar o preço máximo do seu estoque desde a sua entrada em uma variável Matlab. Portanto, a qualquer momento, 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 adorou o livro Ernie, várias das suas funções auxiliares estão no meu caminho MATLAB. Se alguém for deixado de fora no frio com IB, o MB Trading SDK também se integra bem com o MATLAB. Ele possui controles ActiveX pré-definidos que são rápidos para implementar no GUIA para criar interfaces de negociação personalizadas. Este código é ouro - obrigado por ser tão generoso com o seu conhecimento. Eu gostaria de trocar FX, mas com IB você não obtém 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 troca em sua sessão atual. Qual é uma boa maneira de abordar esse problema Como um comprador de preços no FX, muitas vezes você tem que tomar a propagação, de modo que a média (tomar o ponto médio) do bidask não é uma solução viável. Qualquer recomendação Você também deve considerar o combo RPythonPerl. É grátis, mas poderoso. Uma pergunta e um comentário, Qual é a vantagem de usar o software IB2MATLAB na versão gratuita usando o ACTIVEX. Aqui está um código de exemplo como se conectar diretamente via COM. (Matlabtradercode. phpprojectInteractiveBrokersampfileIBexamples) Eu acredito que usar um objeto temporizador matlab tornará o código mais amigável. Obrigado pelo código. Eu achei muito útil. Após uma revisão posterior, o demo da API MatLab2IB não inclui todas as funções para que não possa ser testado. Entrei em contato com eles para ver se uma versão completa pode ser testada. Além disso, não consegui obter o código do MatLabtrader usando os controles ActiveX para funcionar. Estou executando a API 9.51. Alguém mais tem melhor sorte Matt, se o IB não fornecer o último preço para as moedas, talvez seja necessário se inscrever no Bloomberg e usar a caixa de ferramentas Matlabs Datafeed para obter os dados da Bloomberg. Esta é, naturalmente, uma proposição muito mais cara, mas vale a pena se você pode gerar receita de seu modelo. Ernie Anonymous, Sim, eu também mencionei em uma publicação antes que exista uma API de R de código aberto gratuita que se conecte aos Interactive Brokers. Eu não tentei isso mesmo, mas algum leitor aqui tentou Ernie Anonymous, pode não haver uma vantagem em usar matlab2ibapi usando a versão gratuita do matlabtrader. No entanto, o custo do matlab2ibapi é tão baixo e o serviço ao cliente é tão amigável que não considero uma vantagem intrínseca. O maior custo na negociação é a perda de execução incorreta ou modelos ruins. Ernie ExchangeAPI recusou meu pedido para um teste totalmente funcional. Eu não posso testar esta API para obter confiabilidade, precisão e latência contra meus sistemas atuais, então eu vou ter que encontrar uma solução usando a versão gratuita do MatLabTrader. Eu simplesmente não posso afundar 300 em outro software que soa bem, a menos que exista uma vantagem distinta em relação à minha infraestrutura atual. Eu tenho usado a versão matlabtrader há muito tempo e funciona perfeitamente. Claro que você tem que dar alguns ajustes aqui e aí, mas ele fornece todas as funcionalidades. Existem alguns exemplos incluídos, por isso é muito fácil começar. Eu recomendo isso a qualquer pessoa que queira negociar usando a API, mas não quer gastar dinheiro) Dr. Chang, isso não está relacionado a esta publicação, mas está relacionado ao seu livro. Como você menciona Jim Simon. Eu pensei que você apreciaria isso: economistfinancedisplaystory. cfmstoryid13751628, bem como este comentário particular anexado à história acima: henry Leeds escreveu: 29 de maio de 2009 2:49 Jim Simons é um operador de pool com a capacidade de aumentar grandes quantidades de dinheiro dos investidores . Ele não possui habilidades e conhecimentos matemáticos para desenvolver um Sistema de Negociação realmente superior. Sua reivindicação à fama recai sobre seus anos ajudando Shiing Shen Chern, um matemático brilhante que generosamente permitiu que Simons adicionasse seu nome ao artigo de 1974, Chern escreveu. O Fundo Medalhão foi criado por Elwyn Berlekamp, brilhante professor de Engenharia Elétrica e Matemática em Berkeley. Berlekamp utilizou seu conhecimento da revolucionária Teoria da Informação de Claude Shannon para criar essa maravilha. Shannon foi consultor de doutorado da Berlekamp na MIT. Berlekamp desenvolveu seu Medallion Fund em questão de meses e seu desempenho incrível é descrito no site da Berlekamp. Simons queria que Berlekamp voltasse para Long Island e continue desenvolvendo os algoritmos que compõem a obra-prima do Medalhão. Berlekamp não queria deixar Berkeley e, como resultado, cometeu um grande erro. Ele vendeu os direitos de sua invenção a Simons por seis vezes o que lhe custou - uma quantidade relativamente pequena. Ele afirma agora em seu site que o Fundo Medalhão vale milhares de vezes o valor em dólares que ele recebeu para sua realização. O hedgefund RIEF RIEF é um exemplo das habilidades criativas de Simon. Seu desempenho é pitiful e resultou na retirada de investidores de 18 bilhões de dólares. Os investidores do Renascimento se queixaram amargamente de como seu investimento foi tão mal, enquanto o Fundo Medalhão, reservado exclusivamente para funcionários do Renascimento, o fez tão bem. Pode-se certamente entender a sua vexação. Eu já estive na indústria comercial por um momento e todos e suas coisas de mãe de Jim Simon como sendo um deus. O Sr. Leeds parece oferecer outra leitura do Pr. O sucesso de Simon foi um choque para mim. Eu não tenho tanta certeza sobre o serviço de cliente do MatLab2IB39 tão amigável depois dos comentários do N N39, enviei um e-mail perguntando se eles podem confirmar que o programa funcionará definitivamente com o IB39s FX, especialmente o roteamento com o IDEALPRO - nunca recebi uma resposta. Então, agora estou jogando com matlabtrader, vou tentar codificar seu exemplo com o matlabtrader, se eu conseguir funcionar melhor, talvez você goste de postar o código comparativo. Adoro esse site - obrigado eu sou um dos autores da API MATLAB2IB. Nos pedimos desculpas. Não temos certeza de como perdi o seu e-mail. Você pode ser gentil o suficiente para nos enviar um e-mail novamente. Estamos sendo inundados com solicitações de teste e outros e-mails e por isso podemos ter perdido. Você pode me enviar um e-mail diretamente. SIM, MATLAB2IB funcionará com IB FX. Enquanto você tiver permissões com o IB, o MATLAb2IB não terá nenhum problema ao fazer o seu pedido. Infact, SOLE dos nossos proprietários de licenças, usá-lo especificamente para FX. Em relação à NN: Ele nos perguntou se podemos fornecer uma versão de avaliação com funcionalidade api completa. Como uma política, decidimos não fornecê-la. É tão simples como isso. Há muitas razões que eu posso discutir separadamente. Matt, acho que se você deseja rootear suas ordens FX para IDEALPRO, basta especificar IDEALPRO como a troca quando você usa a função placeOrder. Ernie, eu tinha escrito anteriormente sobre algum código de perda de stop. Em Mathworks, vejo que Aly Kassam atualizou seu excelente 39Algorithmic Trading com o webinar MATLAB39 e o código associado para que agora inclua algum código de parada de perda. O código de webinar atualizado é em: mathworks. aumatlabcentralfileexchange24320 Seus leitores podem estar interessados em assistir os dois seminários da web da Aly39 para ver os benefícios do MATLAB. Procure o mathworks para 39Algorithmic Trading com MATLAB para Aplicações Financeiras39 e 39Algorithmic Trading com MATLAB - Update for 2009 (United Kingdom) 39 Então, se alguém quisesse criar um programa de negociação de pares com essa amostra, eles criariam um quotlocalsymbol2quot, então solicitariam os dados do mercado Para essa segurança particular e fazer o programa executar comprar ou vender ordens opostas à segurança principal com acessório se loops 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 Bandas Então, 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 essa segurança específica e mandariam a compra ou venda ordens opostas à segurança primária com acessório se loops E Para calcular os períodos de desvio e lookback, um seria capaz de anunciar 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 um símbolo local para a outra perna do par. Quanto a Zscore, lookback, etc., uma vez que você determinou uma relação de hedge, você reduziu a série de tempo para 1 dimensão (quotthe spreadquot), então a banda de Bollinger funcionará exatamente como em um caso de 1 instrumento. Ernie Então, na ordem de compra para segurança 39localsymbol39 parte de um loop, logo abaixo, um colocaria uma ordem de venda para segurança 39localsymbol239 e tornaria tudo parte de um único loop para torná-lo um comércio em tandem e Regressão Linear ou EMA ou qualquer Outro indicador deve funcionar bem desde que sejam fornecidos os parâmetros zscore adequados. O que é a métrica do volume?
No comments:
Post a Comment