MetaTrader 5 - Especialistas Criando fractals em MQL5 usando o Iterated Function Systems (IFS) - especialista para MetaTrader 5 Existem muitos programas que permitem a criação de conjuntos auto-similares, definidos pelo Iterated Function System (IFS). Veja, por exemplo, Fractint. Fractal Designer ou IFS Matlab Generator. Graças à velocidade do idioma MQL5 e à possibilidade de trabalhar com objetos gráficos, esses belos conjuntos podem ser estudados no terminal do cliente MetaTrader 5. A biblioteca cIntBMP, desenvolvida por Dmitry (Integer), oferece novas oportunidades gráficas e simplifica muito a criação de imagens gráficas. Esta biblioteca recebeu o prêmio especial da MetaQuotes Software Corp. Nesta publicação, consideramos os exemplos de trabalho com a biblioteca cIntBMP. Além disso, abordaremos os algoritmos de criação de conjuntos de fragmentos usando os Sistemas de Função Iterados. 1. Transformação Affine de plano A transformação afim de plano é um mapeamento. Geralmente, a transformação Affine 2-D pode ser definida com alguma matriz e. vetor. O ponto com as coordenadas (x, y) transforma para algum outro ponto usando a transformação linear: as transformações afim não alteram a estrutura dos objetos geométricos (as linhas transformadas em linhas), o AT permite descrever deformação simples dos objetos, como Como rotação, dimensionamento e tradução. Exemplo de transformações de linhas afim: aqui é um exemplo de transformação afim: os fractals construíram o seguinte caminho: algum objeto (simples) geométrico (seção, triângulo, quadrado) dividido em N peças e M deles usado para construção adicional do conjunto (Se NM, obteremos a dimensão inteira do conjunto resultante). Além disso, esse processo repetiu repetidas vezes para cada uma das peças. Triadic Koch Curve, N3, M4 Cantor Dust, N3, M2 Os fractals têm estrutura auto-similar, alguns deles podem ser definidos por várias transformações de similaridade. A estrutura da transformação afim depende do caminho da construção fractal. Como você verá mais, é muito simples e o único problema que temos de resolver é descrever apenas a primeira iteração da construção fractal e encontrar o conjunto correspondente de tranforms affine. Suponha que tenhamos algum conjunto. De acordo com o algoritmo de criação fractal, precisamos reduzir, girar e colocar um determinado lugar. O problema é descrever esse processo usando transformações afins, ou seja, precisamos encontrar a matriz e o vetor. É fácil provar que é o suficiente para tirar 3 pontos do conjunto inicial (não trivial) e transformá-los em 3 pontos correspondentes do conjunto reduzido. Essa transformação levará a 6 equações lineares, permitindo-nos encontrar a solução a, b, c, d, e, f como solução. Ao resolver o sistema de equações lineares, conseguiremos os coeficientes a, b, c, d, e e f: as coordenadas dos pontos são: temos 3 transformações: o sistema de equações lineares é o seguinte: encontramos Os coeficientes de três transformações afins. Em seguida, vamos usá-los para a criação de conjuntos auto-similares. 3. Criando Fractals Usando os Sistemas de Função Iterados Vamos considerar o algoritmo de construção fractal usando o Sistema de Função Iterada (veja também o jogo Chaos). A escolha da contração depende da sua probabilidade. Se repetimos o processo (por exemplo, para 30000 pontos) e traçamos o conjunto resultante, veremos sua estrutura apesar do processo aleatório. Aqui está um exemplo de Sierpinski Gasket: Figura 1. O Sierpinski Gasket, gerado com os coeficientes IFS calculados no capítulo 2 Se configuramos escala para 1350, aumente o número de iterações para 15000000 e altere o deslocamento do ponto inicial: poderemos Veja a região ampliada do conjunto. Pode-se ver (Fig. 2), que tem uma estrutura auto-similar: Figura 2. Região Zoomed da Junta Sierpinski Figura 3. Barnsleys Fern O código é semelhante, mas neste caso, temos 4 contrações IFS com pesos diferentes. É notável que essa estrutura complexa possa ser definida por apenas 28 números. Se aumentarmos a escala para 150 e estabelecemos iterações para 1250000, veremos o fragmento ampliado: Figura 4. Um fragmento de Barnsleys Fern Como você vê o algoritmo é universal, ele permite que você gere diferentes conjuntos de fractal. O próximo exemplo é Sierpinski Carpet, definido seguindo os coeficientes IFS: Figura 5. Tapete Sierpinski No capítulo 2 consideramos o algoritmo de cálculo de coeficientes de contrações IFS. Vamos considerar como criar as palavras do fractal. Em russo, a palavra Fractals se parece com: Figura 6. Fractals word in Russian Para encontrar os coeficientes IFS, precisamos resolver os sistemas lineares correspondentes. As soluções são: Como resultado, obteremos a seguinte imagem: Figura 7. Palavra auto-similar O código-fonte completo pode ser encontrado em ifsfractals. mq5. Se ampliamos o conjunto, vemos a estrutura auto-similar: Figura 8. Região ampliada do conjunto Os conjuntos auto-similares, com base no IFS, podem ser construídos usando o Fractal Designer. Cobrimos o tópico de criar conjuntos de fragmentos usando os Sistemas de Função Iterados. Graças à biblioteca cIntBMP, o processo é muito simples. Agora é hora de criar uma aula e adicionar alguns recursos para melhorar as imagens. Você pode notar que a construção correta de conjuntos conduzidos por probabilites. A diferença de probabilidades significa que o conjunto possui uma estrutura irregular (ver pesos de IFS de Barnsley Fern). Esse fato pode ser usado para criar imagens bonitas. Precisamos definir a cor, proporcional à freqüência do ponto em algum bairro. Isso pode ser feito usando a tela virtual (apenas uma matriz), se a cor do pixel depender dos valores anteriores. Finalmente, a tela virtual será renderizada no bmp usando a paleta. A própria imagem bmp pode ser desenhada como uma imagem de plano de fundo do gráfico. Aqui está o código de Expert Advisor, baseado na classe CIFS: Figura 9. Imagem de farsa de Barnsleys, criada com a classe CIFS Figura 10. A região ampliada de Barnsleys Fern Figura 11. A região ampliada de Barnsleys Fern Figura 12. A região ampliada de Barnsleys Fern 1. Há muitos fractals IFS em Fractint. Por exemplo: traçar esses conjuntos. Como encontrar as transformações iniciais de similaridade usando os coeficientes IFS 2. Crie seus próprios conjuntos fractals e calcule seus coeficientes (capítulo 2). 3. Tente jogar com cores de paleta (uchar Palette array), estenda a paleta e adicione cores de gradiente. 4. O que sobre a dimensão fractal (Hausdorf-Bezikovitch) de Barnsleys Fern Existe uma fórmula para o cálculo da dimensão fractal usando os coeficientes IFS. 5. Adicione o zoom de uma determinada região, usando as informações sobre as coordenadas de clique do mouse no OnChartEvent: Consideramos o algoritmo de criação de conjuntos auto-similares usando o Sistema de Função Iterada. O uso da biblioteca cIntBMP simplifica muito o trabalho com imagens gráficas. Além do método DrawDot (x, y, color) que usamos, a classe cIntBMP contém muitos outros métodos úteis. Mas é outra história. Traduzido do russo por MetaQuotes Software Corp. Código original: mql5rucode328Sistemas de função iniciada Fractals que reproduzem formas realistas, como montanhas, nuvens ou plantas, podem ser gerados pela iteração de uma ou mais transformações afins. Uma transformação afim é uma transformação recursiva do tipo. Cada transformação afim geralmente produzirá um novo atrativo na imagem final. A forma do atractor é dada através da escolha dos coeficientes a a f. Que determinam de forma única a transformação afim. Para obter uma forma de desejo, a colagem de vários atractores pode ser usada (ou seja, várias transformações afins). Este método é referido como um Sistema de Função Iterada (IFS). Um exemplo de um sistema de função iterado é a samambaia de espoleta do preto. É construído através do uso de quatro transformações afim (com probabilidades ponderadas): A imagem resultante é: Esta imagem é infinitamente complexa, é um fractal auto-parecido em todas as escalas. O que é realmente surpreendente é que apenas 28 números são necessários para gerar essa imagem infinitamente complexa: quatro matrizes de transformação de 2 x 2, quatro vetores de tradução de 2 x 1 e quatro probabilidades ponderadas para as transformações (cada atrator). Copyright copie 2010 Larry Bradley. Todos os direitos reservados.
Forex Education DailyFX Free Online Forex Trading Universidade Trading é uma viagem que pode durar uma vida. Embora a idéia de lsquobuying seja baixa, e a venda alta, o rsquo pode parecer simples o bastante, as negociações rentáveis são consideravelmente mais difíceis do que apenas comprar quando o preço se move para baixo, ou vender quando o preço se move mais alto. A traderrsquos Forex educação pode atravessar uma variedade de condições de mercado e estilos de negociação. No DailyFX Free Online Forex Trading University, passamos por uma ladainha dos fatores que afetam os movimentos de preços no mercado Forex. Wersquove organizou o conteúdo por nível de dificuldade, começando com o ano de caloiro, e terminando com a graduação do último ano. Clicando em lsquoLearn Morersquo em qualquer uma das seções abaixo o levará diretamente ao currículo, e você pode seguir o currículo simplesmente clicando lsquonext lessonrsquo na parte inferior de cada artigo. Este currículo pode fornecer uma gr...
Comments
Post a Comment