Máquina de estado finito do sistema de negociação


Paul Lam.


Impacto social de engenharia.


Impacto social de engenharia.


Máquina de estado finito orientada a eventos para um sistema de comércio distribuído.


Um problema que eu tive ao construir meu sistema de comércio distribuído é gerenciar estados de forma assíncrona de múltiplos desencadeantes. Por exemplo, quando o motor alfa diz comprar, ele precisa de confirmação do motor de posição para ver se é seguro entrar em uma nova posição. Eu poderia encadear um cheque após outro de forma imperativa ou através de retorno de chamada. No entanto, a restrição subjacente é que estes desencadeiam:


são intensivos em recursos para gerar, talvez precisem compor muitos deles, não seqüenciais ou têm uma dependência individual, e, o mais importante, estão em programas separados ou em máquinas diferentes.


Assim, optei por abstrair esse problema em seu próprio módulo do sistema como uma máquina de estados finitos (FSM) dirigida a eventos para acompanhar transições de estado. Termo de intimidação, mas minha primeira implementação foi apenas declarações if-else para se qualificar como tal. O benefício é que cada um dos componentes do meu sistema só precisa empurrar sinais e extrair estados de uma interface central sem ter que se preocupar com o que deveria chamar a seguir ou pesquisar qualquer outra coisa para ver se as estrelas estão alinhadas. Isso simplificou drasticamente o desenvolvimento e a manutenção.


As responsabilidades do meu módulo FSM são:


ouça todos os sinais, descubra todas as transições e publique os estados mais recentes para o resto do sistema.


Manipulação de eventos assíncronos.


Eu uso RabbitMQ como a camada de transporte de mensagens entre os módulos do meu sistema. Tudo o que preciso fazer aqui é associar um manipulador de mensagens apropriado a cada entrada de disparo para o FSM. Aqui está um exemplo dos manipuladores de eventos usando a biblioteca Clojure RabbitMQ, Langohr. O resto desta parte é apenas o padrão RabbitMQ publicar / inscrever-se.


Isso é chamado quando um evento de posição é recebido com informações como usuário, instrumento e quantidade. Este manipulador iria encaminhar essas informações buscando estados atuais para esse usuário, avaliando o próximo estado com entrada e, em seguida, armazene os novos estados para o usuário.


Transições do estado.


Abaixo está um dos diagramas de transição de estado do meu sistema.


Existem 4 estados representados por 4 cores com 4 estados de sinalização de transição de estado. Espera-se que o programa atenda até centenas de estados independentes simultaneamente com os disparadores de eventos que chegam em algumas ocasiões por segundo.


Como eu dizia, minha primeira implementação é apenas um conjunto de métodos if-else. Por exemplo, um gatilho de engate chamaria o método envolvente para determinar o próximo estado, dado o envolvimento implícito e o estado atual.


Havia um punhado desse código de referência. Então, depois de implantar o sistema, voltei a refatorá-los. Eu tenho significado dar uma experiência no core. logic por um tempo, então isso parece ser um bom lugar para começar a usá-lo.


Antes de podermos perguntar a questão do solucionador de lógica, precisamos definir as relações. Aqui eu defino uma relação de transição para especificar toda a definição de transição de estado convenientemente em um só lugar.


E os métodos do manipulador de eventos são apenas invólucros para uma expressão de lógica de um verso, perguntando a pergunta - dado o estágio atual, cur-state e a entrada de entrada, entrada, que estado pode tomar para satisfazer essa restrição?


Não é o exemplo core. logic mais ilustrativo, mas faz o trabalho.


Começar com o core. logic é surpreendentemente fácil. Eu passei pelo Primer e tutorial e consegui isso trabalhando em uma tentativa.


Armazenamento em cache e compartilhamento de estado.


Agora que a transição do estado foi atendida, os estados são armazenados em cache e são atendidos no Redis para outras partes do sistema. Eu uso o Redis para isso porque é rápido e fácil. Os valores são armazenados em formato edn em vez de algo mais popular como o JSON para manter a estrutura de dados através do fio.


Esta é a minha primeira vez usando o edn em produção. Todas as mensagens interprocessamento neste sistema comercial são formatadas em formato edn. Funciona perfeitamente com Clojure simplesmente usando str para escrever e clojure. edn / read-string para ler. Além dos meus outros componentes do Clojure no sistema, minha interface do corretor comercial está escrita em Java. O meu programa Java usa o edn-java para analisar e desproporcionar estruturas complexas de dados Clojure (por exemplo, mapas aninhados com palavras-chave).


Eu acho que o acoplamento edn com a Redis é uma escolha fantástica, pois é quase como trabalhar com as estruturas de dados de concorrência originais de Clojure, como átomo, mas também permitir que programas externos acessem os dados.


Simples e rápidos.


Todo o programa FSM dirigido por eventos é inferior a 200 linhas do código Clojure e não levou mais do que algumas horas para fazer. No entanto, fiz alguns momentos de reflexão por alguns dias. Não fiz qualquer referência para estimar o resultado do desempenho. Então, tudo o que posso dizer é que esta configuração pode lidar com meu caso de uso simplista com quase nenhuma carga no servidor, então eu estou feliz com isso.


Alguns anos atrás, eu teria definido um monte de bandeiras para mudar estados. Na verdade, é isso que eu fiz. A maior satisfação aqui para mim não é a implementação ou tecnologias, é ver através do problema subjacente em questão e resolvê-lo com um padrão comum que tornou meu trabalho mais simples.


Automatize sua negociação usando o sistema de negociação P30K.


Trading Futures & amp; As opções envolvem um risco substancial de perda e não são adequadas para todos os investidores. Todos os dados de desempenho são baseados no modelo testado novamente, que possui limitações significativas.


O P30K Trading System é um sistema de negociação totalmente automatizado que utiliza quatro tipos diferentes de negócios para criar um sistema de negociação equilibrado.


Solicite mais informações agora.


REGRA CFTC 4.41: Os resultados são baseados em resultados de desempenho simulados ou hipotéticos que possuem certas limitações inerentes. Ao contrário dos resultados apresentados em um registro de desempenho real, esses resultados não representam a negociação real. Além disso, como esses negócios não foram efetivamente executados, esses resultados podem ter uma compensação menor ou excessiva do impacto, se houver, de certos fatores do mercado, como a falta de liquidez. Programas de negociação simulados ou hipotéticos em geral também estão sujeitos ao fato de serem projetados com o benefício de retrospectiva. Nenhuma representação está sendo feita que qualquer conta será ou será capaz de alcançar lucros ou perdas semelhantes às exibidas.


Um robusto sistema de negociação automatizado projetado para funcionar bem em mercados de touro e urso.


& # 8220; O sistema de negociação P30K utiliza máquinas de estados finitos, back-testado e metodologia para avançar, aproveita as opções premium e a alavancagem do mercado de futuros para fornecer uma completa & amp; sistema de negociação sofisticado. & # 8221;


O que o P30K Trading System pode significar para você?


LIMIT EMOÇÕES.


Vários corretores de auto-execução estão disponíveis para trocar o sistema de negociação P30K em sua conta. Minimize as lutas emocionais envolvidas na negociação e comece a usar um sistema de negociação estabelecido.


DESEMPENHO.


Este sistema comercial aproveita as condições do mercado neutro, do mercado urugo e do mercado Bull. Escolherá automaticamente o comércio adequado para fazer com base no estado atual do mercado.


INSIGHT MERCADO.


Em todos os momentos, você saberá em qual mercado estamos, onde nossa parada e amp; As ordens de limite são, a equidade de sua conta e muito mais. Você pode optar por receber alertas de texto em vez de execução automática, apenas no caso de você preferir trocar o Sistema de Negociação P30K em sua conta de negociação existente.


Futuros de negociação e opções de futuros envolvem um risco substancial de perda e não é apropriado para todos os investidores. Não há garantias na negociação. Esse sistema comercial deve ser usado apenas com capital de risco.


P30K Trading System In A Glance.


O P30K Trading System coloca quatro tipos diferentes de negócios para tirar proveito das condições de mercado direto e de curto prazo, de baixa e baixa renda, de curto prazo e de curto prazo.


Maximum Drawdown é uma medida do risco envolvido com qualquer sistema de negociação. Considere cuidadosamente esses dados antes de negociar nossos algoritmos. Trading futures & amp; as opções envolvem um risco substancial de perda e não são adequadas para todos os investidores. Maximum Drawdown é baseado em dados testados de novo que tem limitações significativas.


REGRA CFTC 4.41: Os resultados são baseados em resultados de desempenho simulados ou hipotéticos que possuem certas limitações inerentes. Ao contrário dos resultados apresentados em um registro de desempenho real, esses resultados não representam a negociação real. Além disso, como esses negócios não foram efetivamente executados, esses resultados podem ter uma compensação menor ou excessiva do impacto, se houver, de certos fatores do mercado, como a falta de liquidez. Programas de negociação simulados ou hipotéticos em geral também estão sujeitos ao fato de serem projetados com o benefício de retrospectiva. Nenhuma representação está sendo feita que qualquer conta será ou será capaz de alcançar lucros ou perdas semelhantes às exibidas.


Fale com um especialista em P30K para saber mais sobre o P30K Trading System e com a facilidade de começar.


Que tipo de trades são colocados?


DIA TRADES.


Os negócios de dia são colocados em determinados momentos, longos e curtos no S & amp; P Emini (ES). Essas negociações de risco mais baixo tentam tirar proveito das flutuações do mercado de curto prazo.


SWING TRADES.


Quando há uma expectativa para um movimento direcional de longo prazo, este sistema de negociação irá colocar um comércio e manter por vários dias.


CONDUTORES DE FERRO.


Em certos momentos, este sistema de negociação assumirá uma posição neutra no mercado chamada de comércio de opções Iron Condor. Quando colocado, este sistema cobra um prémio tanto de Call and a Put. Ele também adquire uma chamada de dinheiro fora e dinheiro para proteção.


CHAMADAS COBERTAS.


Em certos momentos, quando o comércio de swing ES desencadeia, também nos venderemos. Isso nos permite coletar prémio adicional sem necessidade de margem extra na conta.


Que tipo de opções de execução comercial estão disponíveis?


O P30K Trading System pode ser negociado usando um dos vários corretores de NFA Registered que podem executar trades com base em nossos alertas.


ALERTAS DE TEXTO.


Receba um alerta de texto sempre que iniciarmos um novo comércio. As instruções de saída e entrada serão fornecidas e você colocará cada troca manualmente quando você receber o alerta.


Você está pronto para se juntar a outros que estão automatizando sua negociação?


AVISO LEGAL.


O risco de negociação pode ser substancial e cada investidor e / ou comerciante deve considerar se este é um investimento adequado. O desempenho passado, seja real ou indicado por testes históricos simulados de estratégias, não é necessariamente indicativo de resultados futuros. O TradingSystem. org não é um membro registrado da National Futures Association ("NFA"). Reivindicamos a exclusão auto-executada do registro concedido pela Norma 14.10 (a) (10) da CFTC.


As transações em futuros de índice e opções em futuros possuem alto grau de risco. Este estilo de investimento não é para todos e só deve ser perseguido com Capital de Risco.


REGRA CFTC 4.41: Os resultados são baseados em resultados de desempenho simulados ou hipotéticos que possuem certas limitações inerentes. Ao contrário dos resultados apresentados em um registro de desempenho real, esses resultados não representam a negociação real. Além disso, como esses negócios não foram efetivamente executados, esses resultados podem ter uma compensação menor ou excessiva do impacto, se houver, de certos fatores do mercado, como a falta de liquidez. Programas de negociação simulados ou hipotéticos em geral também estão sujeitos ao fato de serem projetados com o benefício de retrospectiva. Nenhuma representação está sendo feita que qualquer conta será ou será capaz de alcançar lucros ou perdas semelhantes às exibidas.


RESULTADOS DE DESEMPENHO HIPOTÉTICOS TEM MUITAS LIMITAÇÕES INERENTES, ALGUNS DESCRITOS ABAIXO. NENHUMA REPRESENTAÇÃO ESTÁ FAZENDO QUE QUALQUER CONTA VOCE OU POSSIBILIDADE DE ALCANÇAR LUCROS OU PERDAS SIMILARES ÀOS MOSTRADOS; POR FAVOR, HÁ DIFERENÇAS FREQUENTEMENTE SHARP ENTRE RESULTADOS DE DESEMPENHO HIPOTÉTICOS E OS RESULTADOS REAIS REALIZADOS POR TODOS OS PROGRAMAS DE NEGOCIAÇÕES PARTICULARES. UMA DAS LIMITAÇÕES DOS RESULTADOS DE DESEMPENHO HIPOTÉTICOS É QUE ESTÃO GERALMENTE PREPARADAS COM O BENEFÍCIO DE HINDSIGHT. ADICIONALMENTE, A NEGOCIAÇÃO HIPOTÉTICA NÃO IMPORTA RISCOS FINANCEIROS, E NENHUM GRUPO DE NEGOCIAÇÃO HIPOTÉTICA PODE COMPLETAMENTE CONTA PARA O IMPACTO DO RISCO FINANCEIRO DE NEGOCIAÇÃO REAL. POR EXEMPLO, A CAPACIDADE DE PERDER OU DE ADESIVAR A UM PROGRAMA DE NEGOCIAÇÃO ESPECÍFICO EM ESPIRRO DE PERDAS DE NEGOCIAÇÃO SÃO PONTOS MATERIAIS QUE PODEM IGUALMENTE AFETAR EFECTUAR RESULTADOS REAIS DE NEGOCIAÇÃO. HÁ NOMBROSOS OUTROS FATORES RELACIONADOS COM OS MERCADOS EM GERAL OU NA EXECUÇÃO DE QUALQUER PROGRAMA ESPECÍFICO DE NEGOCIAÇÃO QUE NÃO PODE SER TOTALMENTE COMPTABILIZADO NA PREPARAÇÃO DE RESULTADOS DE DESEMPENHO HIPOTÉTICOS E TODOS OS QUE PODEMOS ADVERSAMENTE EFECTUAR OS RESULTADOS DE NEGOCIAÇÃO.


Por favor, leia a página de Legal & Disclaimer do TradingSystem. org para obter cláusulas de isenção de responsabilidade adicionais.


Relatórios diários de lucros / perdas.


Junte-se à nossa lista de correspondência para receber as últimas notícias e atualizações da nossa equipe.


Máquinas de Estado para Negociação.


Uma máquina de estados finitos é um modelo de um sistema que mostra os diferentes estados possíveis que o sistema pode atingir e as transições que ocorrem à medida que o sistema se move de um estado para outro. Você pode usá-lo na modelagem do seu sistema comercial.


Uma máquina de estado pode ser o mecanismo que você precisa para organizar seu modelo do mercado em um sistema vencedor. Vou explicar como uma máquina de estado finito (FSM) funciona e mostrar-lhe um modelo para um sistema de comércio. Máquinas de estado podem ser facilmente criadas na maioria das linguagens de programação para automatizar suas decisões de negociação. Você também pode operar a estratégia manualmente, se desejar.


Máquinas de estado explicadas.


Uma máquina de estados finitos, também referida como um autômato finito, é um modelo de um sistema que mostra os diferentes estados possíveis que o sistema pode alcançar e as transições que ocorrem à medida que o sistema se move de um estado para outro. Os FSMs são usados ​​por engenheiros para modelar sistemas de hardware e software. Eles também podem ser usados ​​com vantagem na modelagem do seu sistema comercial.


Um semáforo simples será usado para ilustrar os elementos-chave de uma máquina de estados finitos. A Figura 1 ilustra o diagrama de máquina de estado do semáforo. Existem três estados válidos para a luz & # 8212; vermelho, amarelo e verde. A luz pode estar em apenas um desses estados em qualquer momento. Os estados são representados pelos círculos e as setas mostram as transições de um estado para o outro. Os estados só podem mover-se de vermelho para verde, de verde para amarelo e de amarelo para vermelho.


Figura 1: diagrama de estado da luz de trânsito.


Um evento inicia um movimento do estado atual para um próximo estado válido. Para o nosso semáforo, definimos dois tipos de eventos que podem causar transições. O evento de transição mais comum ocorre após a luz ter sido ativada por um período especificado. A luz vermelha e a luz verde têm períodos de tempo de 30 segundos cada e a luz amarela tem um tempo de 5 segundos. Um cronômetro faz o controle de quanto tempo uma luz acendeu e iniciará uma transição quando o período de tempo tiver decorrido.


Um segundo tipo de evento é definido pela pressão de um botão de crosswalk. Se uma pessoa pressionar o botão de passarela enquanto a luz estiver vermelha e a luz estiver ligada por menos de 25 segundos, o temporizador é avançado para 25 segundos do tempo decorrido. Isso faz com que a transição do vermelho para o verde ocorra mais cedo para permitir que o pedestre atravesse.


Este é um modelo muito simples que assume que o sistema já está sendo executado eternamente, pois não há estado de início ou estado de parada mencionado. O diagrama mostrado na Figura 1 não nos diz nada sobre os eventos que causam transições. O programa que implementa a máquina de estados finitos deve incluir as regras que desencadeiam eventos. As regras podem ser simples, como mostrado, ou bastante complexas. A barra lateral, "Programação de uma máquina de estados", "quot; mostra como o semáforo pode ser implementado usando uma linguagem semelhante ao BASIC. Dê uma olhada no exemplo de código para ver como as regras são implementadas para mudar de um estado para o outro.


Uma máquina de estado para negociação.


A Figura 2 ilustra um diagrama de uma máquina de estados finitos para um possível sistema comercial. Um estado de início e um estado de paragem foram incluídos para representar a entrada em uma posição e sair dela. Navegue pelo diagrama de estado para descrever os diferentes estados e os eventos que podem desencadear uma transição.


Figura 2: diagrama de estado do sistema de negociação.


Este sistema de negociação pressupõe que uma série de negociações começará por acionar uma ordem de compra. As transições entre estados são iniciadas pelas regras usadas para tomar decisões de investimento. Assumiremos que um conjunto de indicadores técnicos foi escolhido para ser avaliado em cada estado para decidir quais as ações a serem tomadas. As regras normalmente serão avaliadas cada vez que recebemos um novo conjunto de dados. Um sistema diário seria avaliado com dados de fim de dia. Se o sistema estiver conectado a uma fonte de dados em tempo real, as regras de estado atuais serão avaliadas com cada novo ponto de dados.


Um sistema diário seria avaliado com dados de fim de dia. O design da máquina de estado incorpora dentro de sua estrutura as dependências entre as regras para cada estado. As ações resultantes dependem não apenas do que os indicadores do sistema mostram, mas onde o sistema é (ou seja, o estado atual). O sistema não precisa ser projetado para usar as mesmas regras ou indicadores em cada estado, de modo que as regras e os indicadores podem ser otimizados para cada estado. Essa combinação de flexibilidade e disciplina comercial que pode ser programada na máquina de estado pode trazer energia para sua negociação.


Vamos usar um exemplo simples baseado em médias móveis. Um sinal de venda ocorre quando o preço de fechamento cai abaixo da média móvel. Um sinal de compra ocorre quando o preço de fechamento cai acima da média móvel. Além disso, vamos adicionar à posição se o preço cair de volta em 5% e, em seguida, rebate sem penetrar a média móvel. Se você vendeu e o preço se recupera em 5% sem penetrar na média móvel, você pode usar isso como uma oportunidade para colocar um curto.


Suponha que você comece com a decisão de negociar um determinado problema. Neste modelo, a regra de início desencadeia o evento que move o sistema para o estado de compra. A regra para o estado de compra é bastante simples: Faça uma compra e transição para o estado de retenção de compra. A compra é um estado transitório e o sistema se move para o estado de espera de compra assim que a compra estiver completa. O sistema pode permanecer no estado de espera de compra, desde que as regras não indiquem um movimento para um novo estado.


As regras para um novo ponto de dados estipulam que nenhuma mudança de estado é exigida desde que o preço de fechamento permaneça acima da média móvel. Isso é ilustrado pela seta de transição que retorna ao estado de espera de compra.


À medida que observamos o mercado e classificamos a média móvel, vemos o preço cair de volta, mas não o suficiente para desencadear uma transição para o estado de venda. Nossas regras de modelo indicam que esse retiro excede 5%, de modo que o sistema desencadeia uma transição para o estado de adicionar compras. Como a compra, este é um estado transitório e o sistema volta ao estado de espera de compra quando a compra está completa.


Em algum momento, o preço de fechamento cai abaixo da média móvel, indicando que o movimento foi completado e ocorre uma transição para o evento de venda. Este evento move o sistema para o estado de venda transitória. Do estado de venda, são possíveis duas decisões. Podemos decidir parar a negociação nesta questão completamente, ou podemos decidir continuar rastreando esse estoque e passar para o estado de retenção de venda quando a venda estiver completa. Do estado de espera de venda, o sistema espera uma penetração da média móvel por um sinal de compra. Uma pequena oportunidade também pode ocorrer se o preço subir de 5% sem penetrar na média móvel.


A Figura 3 mostra um gráfico e os diferentes estados deste modelo durante um período de tempo selecionado, como pode ser indicado por regras como eu descrevi. Como você pode ver, a maior parte do tempo é gasto nos estados de retenção (B) ou de retenção de venda (E).


Figura 3: preço de fechamento de ações com média móvel.


Este é um modelo representativo de um simples sistema de negociação de ações. Outros sistemas, como o comércio de opções, podem ser mais complexos devido aos muitos tipos possíveis de posições que podem ser tomadas, resultando em mais estados e possíveis transições. A máquina de estado fornece uma estrutura de controle lógica para organizar as regras do seu sistema comercial e um método facilmente programado para automatizar essas regras. Em seguida, é fácil testar o sistema ao aplicar os dados históricos à máquina de estado.


Uma máquina de estado pode ser usada para fornecer disciplina ao seu sistema comercial. Você pode incorporar qualquer número de regras de decisão para cada estado. A estrutura que você design pode incorporar automaticamente relações de dependência que podem não ser óbvias ou facilmente modeladas por outras abordagens. Como mostrei na barra lateral, a programação de uma máquina de estado não é difícil uma vez que você definiu as regras que deseja usar. No entanto, a idéia da máquina de estado pode ser aplicada com facilidade a um método de negociação discricionário.


Glenn Barlis é um consultor de design de sistemas. Possui mestrado em administração de empresas e mestrado em informática.


Programação de uma máquina de estado.


Uma máquina de estado pode ser implementada em qualquer idioma que forneça a estrutura de controle IF-THEN-ELSE. O idioma também deve fornecer uma variável que possa conter o estado atual da máquina entre os eventos. Aqui está o exemplo do semáforo mostrado em uma linguagem semelhante ao BASIC. Estamos assumindo que a máquina de estado é executada uma vez por segundo e a máquina é iniciada em um estado conhecido válido.


Máquina de estado de semáforo.


Estado estático Current_State; mantém o estado da máquina.


Temporizador estático; acompanha a duração do tempo.


a luz acendeu.


Constante green_time = 30; defina o tempo para as luzes.


IF Current_State = Verde, ENTÃO.


IF Timer & gt; = green_time ENCONTRO.


Timer = Timer + 1.


ELSE IF Current_State = Amarelo, ENTÃO.


IF Timer & gt; = yellow_time THEN.


Timer = Timer + 1.


ELSE IF Current_State = Vermelho, ENTÃO.


IF Timer & lt; (tempo vermelho - 5) E Cross_Button_Pushed ENTÃO.


Timer = red_time - 5.


IF Timer & gt; = red_time ENCONTRO.


Timer = Timer + 1.


Máquina de estado usando a declaração CASE.


Manter um registro de todas as declarações IF-THEN-ELSE pode ficar confuso e torna o programa mais propenso a erros. Muitas linguagens de programação oferecem uma forma de declaração de caso para simplificar a escrita desse tipo de código. Aqui está o mesmo exemplo usando uma instrução CASE com a sintaxe Visual BASIC.


Selecione Case Current_State.


IF Timer & gt; = green_time ENCONTRO.


Timer = Timer + 1.


IF Timer & gt; = yellow_time THEN.


Timer = Timer + 1.


IF Timer & lt; (tempo vermelho - 5) E.


Timer = red_time - 5.


IF Timer & gt; = red_time ENCONTRO.


Timer = Timer + 1.


A estrutura Select Case só selecionará um dos casos com base no valor de Current_State. Como você pode ver, esse segmento de programa é muito mais fácil de entender do que o exemplo IF-THEN-ELSE e menos propensos a ter erros.


Uma terceira opção para implementar uma máquina de estado finito é usar um motor de máquina de estado orientado a mesa. Este é um método mais sofisticado que seria usado para máquinas complexas ou para software comercial que precisa fornecer um método fácil para regras de estado definidas pelo usuário.


Direitos autorais e cópia; 1982 & ndash; 2017 Technical Analysis, Inc. Todos os direitos reservados. Leia nosso aviso e amp; declaração de privacidade.


algotrading.


54 & # 32; пользователя находятся здесь.


МОДЕРАТОРЫ.


Bem-vindo ao Reddit,


a primeira página da internet.


e inscreva-se em uma das milhares de comunidades.


Это архивированный пост. Você está interessado em иолосовать или комментировать.


отправлено & # 32; 4 года назад & # 32; автор & # 32; piikac.


Quer adicionar à discussão?


помощь правила сайта центр поддержки вики реддикет mod guidelines связаться с нами.


приложенияи инструменты Reddit para iPhone Reddit para o site móvel Android кнопки.


Использование данного сайта означает, что вы принимаете & # 32; пользовательского соглашения & # 32; и & # 32; Политика конфиденциальности. &cópia de; 2017 reddit инкорпорейтед. Все права защищены.


REDDIT e o logotipo ALIEN são marcas registradas da reddit inc.


& pi; Rendido pelo PID 9083 em & # 32; app-396 & # 32; 2017-12-14 22: 41: 02.658882 + 00: 00 executando 28443b0 código do país: UA.

Комментарии

Популярные сообщения из этого блога

Investir dinheiro na negociação forex

Melhores estratégias de negociação forex pdf

Negócios forex no islão