BOLLINGER BAND AND CROSS OVER SYSTEM para Amibroker (AFL) SECTIONBEGIN (Bollinger Bands com cross-over e tweaked bar code) P ParamField (Campo de preço, -1) Período Param (Períodos Curtos, 20, 15, 30, 1) Width Param (Short Largura, 2, 1, 10, 1) TopCondBBandTop (P, Período, Largura) gtRef (BBandTop (P, Período, Largura), - 1) MidCondMA (C, Período) gtRef (MA (C, Período), - 1) BotCondBBandBot (P, Período, Largura) gtRef (BBandBot (P, Período, Largura), - 1) UpColorIIf (TopCond e MidCond, colorTurquoise, colorPink) DownColorIIf (MidCond e BotCond, colorTurquoise, colorPink) PlotOHLC (BBandTop (P, Period, Largura), BBandTop (P, Período, Largura), MA (C, Período), MA (C, Período), UpColor, estiloCloudstyleNoLabelstyleNoTitle, Nulo, Nulo, Nulo, -2) PlotOHLC (MA (C, Período), MA (C, Período), BBandBot (P, Período, Largura), BBandBot (P, Período, Largura), DownColor, styleCloudstyleNoLabelstyleNoTitle, Nulo, Nulo, Nulo, -2) Plot (BBandBot (P, Period, Width) ,, ColorGreen, styleThickstyleNoTitle, Null, Null, Null, -1) Plot (BBandTop (P, Período, Largura) ,, colorRed, styleThickstyleNoTitle, Null, Null, Null, -1) Plot (MA (C, Period), colorLime, styleThickstyleNoTitle, Null, Null, Null, -1) FilterTopCond e MidCond e BotCond AddColumn (V, volume, 1.0 ) SECTIONBEGIN (Preço) SetChartOptions (0, chartShowArrowschartShowDates) N (Título StrFormat (- Abrir g, Hi g, Lo g, Fechar g (.1f) Vol WriteVal (V, 1.0), O, H, L, C, SelectedValue ( ROC (C, 1)))) tendência IIf (MACD (12,26) gt 0 E MACD (12,26) gt Signal (12,26,9), colorBlue, colorWhite) trendcolor IIf (MACD (12,26) Lt 0 AND MACD (12,26) lt Signal (12,26,9), colorRed, trendup) Plot (C, Close, trendcolor, styleBar styleThick) RSIup RSI (7) gt 70 RSIdown RSI (7) lt 30 sp Param (RSI Período, 7, 1, 100) r RSI (sp) RSIup r gt 70 RSIdown r lt 30 shape RSIup shapeNone RSIdown shapeNone PlotShapes (forma, IIf (RSIup, colorBrightGreen, colorRed), 0, IIf (RSIup, Low, High )) Se (ParamToggle (Tooltip mostra, Todos os valores somente Preços)) ToolTipStrFormat (Abrir: gnHigh: gnLow: gnFechar: g (.1f) nVolume: Num ToStr (V, 1), O, H, L, C, SelectedValue (ROC (C, 1))) SECTIONEND () SetChartBkColor (ParamColor (Color do painel, colorBlack)) PlotOHLC (Open, High, Low, Close,, ColorLime , EstiloBar styleThick) SECTIONBEGIN (trailstops) EntrySignal C gt (LLV (L, 20) 2 ATR (10)) ExitSignal C lt (HHV (H, 20) - 2 ATR (10)) Cor IIf (EntrySignal, colorBlue, IIf ( ExitSignal, colorOrange, colorGrey50)) TrailStop HHV (C - 2 ATR (10), 15) ProfitTaker EMA (H, 13) 2 ATR (10) gráfico do preço do gráfico e pára Plot (TrailStop, Trailing stop, colorGold, styleThick styleLine) (C, Preço, cor, estiloBar) Trama de cor de trama (2,, Cor, styleArea styleOwnScale styleNoLabel, -0,1, 50) Procedimento SECTIONBEGIN (GFX EMA) Plotlinewidth (pvalue, ptitle, pcolor, pstyle, pmin, pmax, pxshift, Plinewidth, pshowdate8203) pvalue local, ptitle, pcolor, pstyle, pmin, pmax, pxshift, plinewidth, ppenstyle, pshowdate local Miny, Maxy local Lvb, fvb local pxwidth, pxheight local TotalBars, axisarea local i, x, y if (plinewidthgt0 am Pamp Status (ação) 1 ampamp (pstyle amp styleLinestyleLine)) GfxSetOverlayMode (0) MinyStatus (axisminy) MaxyStatus (axismaxy) lvbStatus (lastvisiblebar) fvbStatus (firstvisiblebar) pxwidthStatus (pxwidth) pxheightStatus (pxheight) TotalBarsLvb-fvb xaxisarea56 se (pshowdate) yaxisarea10 Senão yaxisarea0 i0 x5i (pxwidth-xaxisarea-10) (TotalBars1) y5yaxisarea (pvalueifvb-Miny) (pxheight-yaxisarea-10) (Maxy-Miny) GfxMoveTo (x, pxheight-y) para (i1 iltTotalBars AND ilt (BarCount-fvb ) I) GfxSelectPen (pcolori fvb, plinewidth, 0) x5i (pxwidth-xaxisarea-10) (TotalBars1) y5yaxisarea (pvalueifvb-Miny) (pxheight-yaxisarea-10) (Maxy-Miny) GfxLineTo (x, pxheight-y) RequestTimedRefresh (2) SECÇÃO () SECTIONBEGIN (Pequenos Disparadores) p1 Param (TL 1 Períodos, 20, 5, 50, 1) p2 Param (TL 2 Períodos, 5, 3, 25, 1) TL1 LinearReg (C, p1) TL2 EMA (TL1, p2) Col1 IIf (TL1 gt TL2, ParamColor (TL Up Color, colorBrightGreen), ParamColor (TL Dn Color, colorCustom12)) Plot (TL1, TriggerLine 1, Col1, styleLinestyleThickstyleNoLabel) Plot (TL2 , TriggerLine 2, Col1, styleLinestyleThickstyleNoLabel) SECTIONEND () SECTIONBEGIN (Disparadores grandes) p3 Param (TL 3 Períodos, 80, 5, 100, 1) p4 Param (TL 4 Períodos, 20, 3, 100, 1) TL3 LinearReg (C P3) TL4 EMA (TL3, p4) Col1 IIf (TL3 gt TL4, ParamColor (TLL Up Color, colorBlue), ParamColor (TLL Dn Color, colorRed)) Plot (TL3, TriggerLine 3, Col1, styleLinestyleThickstyleNoLabel) Lote (TL4, TriggerLine 4, Col1, styleLinestyleThickstyleNoLabel) SECTIONEND () SECTIONBEGIN (Fibo Retrace and Extensions) fibs ParamToggle (Plot Fibs, OffOn, 1) pctH Param (Pivot Hi, 0.325,0.001,2.0,0.002) HiLB Param (Olá LookBack, 1,1 , BarCount-1,1) pctL Param (Pivot Lo, 0,325,0,001,2,0,0,002) LoLB Param (Lo LookBack, 1,1, BarCount-1,1) Back Param (Estender a esquerda 2,1,1,500,1) Parâmetro Fwd (Plot Forward, 0, 0, 500, 1) texto ParamToggle (Plot Text, OffOn, 1) hts Param (Text Shift, -33.5, -50,50,0.10) estilo ParamStyle (Line Style, styleLine, styleNoLabel) X BarIndex () pRp PeakBars (H, pctH, 1) 0 yRp0 SelectedValue (ValueWhen (pR P, H, HiLB)) xRp0 SelectedValue (ValueWhen (pRp, x, HiLB)) pSp TroughBars (L, pctL, 1) 0 ySp0 SelectedValue (ValueWhen (pSp, L, LoLB)) xSp0 SelectedValue (ValueWhen (pSp, x, LoLB)) Delta yRp0 - função ySp0 fib (ret) retval (Delta ret) Fibval IIf (ret lt 1.0 E xSp0 lt xRp0, yRp0 - retval, IIf (ret lt 1.0 E xSp0 gt xRp0, ySp0 retval, IIf (ret gt 1.0 E xSp0 lt xRp0, yRp0 - retval, IIf (ret gt 1.0 E xSp0 gt xRp0, ySp0 retval, Null)))) return FibVal x0 Min (xSp0, xRp0) - Back x1 (BarCount -1) r236 fib (0.236) r236I LastValue (r236,1) r382 fib (0.382) r382I LastValue (r382,1) r050 fib (0.50) r050I LastValue (r050,1) r618 fib (0.618) r618I LastValue (r618,1) r786 fib (0.786) r786I LastValue ( R786,1) e127 fib (1.27) e127I LastValue (e127,1) e162 fib (1.62) e162I LastValue (e162,1) e200 fib (2.00) e200I LastValue (e200,1) e262 fib (2.62) e262I LastValue (e262, 1) e424 fib (4.24) e424I LastValue (e424,1) p00 IIf (xSp0 gt xRp0, ySp0, yRp0) p00I LastValue (p00,1) p100 IIf (xSp0 Lt xRp0, ySp0, yRp0) p100I LastValue (p100,1) color00 IIf (xSp0 gt xRp0, colorLime, colorRed) color100 IIf (xSp0 lt xRp0, colorLime, colorRed) numbars LastValue (Cum (Status (barvisible))) fração IIf ( StrRight (Name (), 3), 3.2, 3.2) se (fibs1) Plot (LineArray (xRp0-Fwd, yRp0, x1, yRp0, Voltar), PR, 32,8styleNoRescale, Null, Null, Fwd) Plot (LineArray ( XSp0-Fwd, ySp0, x1, ySp0, Voltar), PS, 27,8styleNoRescale, Null, Null, Fwd) Lote (LineArray (x0-Fwd, r236, x1, r236, Voltar) ,, 45, stylestyleNoRescale, Nulo, Nulo , Fwd) Plot (LineArray (x0-Fwd, r382, x1, r382, Voltar) ,, 44, stylestyleNoRescale, Null, Null, Fwd) Plot (LineArray (x0-Fwd, r050, x1, r050, Back) ,, 41 , Estilo, estilo, Nulo, Nulo, Nulo, Fwd) Lote (LineArray (x0-Fwd, r618, x1, r618, Voltar) ,, 43, stylestyleNoRescale, Null, Null, Fwd) Plot (LineArray (x0-Fwd, r786, x1, r786 Voltar ao topo da página: lineArray (x0-Fwd, e127, x1, e127, Voltar), e127,47, stylestyleNoRescale, Null, Null, Fwd), Plot (LineArray (x0- Fwd, e162, x1, e162, Voltar), e162,47, stylestyleNoRescale, Null, Null, Fwd) Plot (LineArray (x0-Fwd, e200, x 1, e200, Voltar), p200,47, stylestyleNoRescale, Null, Null, Fwd) Lote (LineArray (x0-Fwd, e262, x1, e262, Voltar), p262,47, stylestyleNoRescale, Null, Null, Fwd) Plot ( LineArray (x0-Fwd, e424, x1, e424, Voltar), p424,25, stylestyleNoRescale, Null, Null, Fwd) se (text1) PlotText (0 WriteVal (p00, fração), LastValue (BarIndex ()) - (numbarshts ), P00I 0.05, color00) PlotText (23 WriteVal (r236, fração), LastValue (BarIndex ()) - (numbarshts), r236I 0.05, 45) PlotText (38 WriteVal (r382, fração), LastValue (BarIndex ()) - (Numbarshts), r382I 0.05, 44) PlotText (50 WriteVal (r050, fração), LastValue (BarIndex ()) - (numbarshts), r050I 0.05, 41) PlotText (62 WriteVal (r618, fração), LastValue (BarIndex () ) - (numbarshts), r618I 0.05, 43) PlotText (78 WriteVal (r786, fração), LastValue (BarIndex ()) - (numbarshts), r786I 0.05, 42) PlotText (100 WriteVal (p100, fração), LastValue (BarIndex () (Numbarshts), p100I 0.05, color100) PlotText (127 WriteVal (e127, fração), LastValue (BarIndex ()) - (numbarshts), e127I 0.05, 47) PlotText ( 162 WriteVal (e162, fração), LastValue (BarIndex ()) - (numbarshts), e162I 0.05, 47) PlotText (200 WriteVal (e200, fração), LastValue (BarIndex ()) - (numbarshts), e200I 0.05, 47) PlotText (262 WriteVal (e262, fração), LastValue (BarIndex ()) - (numbarshts), e262I 0.05, 47) PlotText (424 WriteVal (e424, fração), LastValue (BarIndex ()) - (numbarshts) e e424I 0.05, 25) SECTIONEND () Código para identificar automaticamente os pivôs - qual será o nosso alcance de lookback para hh e ll farbackParam (Até agora, 100,50,5000,10) nBars Param (Número de barras, 12, 5, 40) Title Name () (StrLeft (FullName (), 15)) O: Open, H: High, L: Low, C: Close - Plote o gráfico básico de velas PlotOHLC (Open, High, Low, Close, n OO nH H nL LAugust 25, 2017 IMPORTANTE: Não use o indicador em um sistema de comércio real, olha com antecedência e fará com que você perca dinheiro. É apenas para pesquisa: mostrar lucros potenciais e exibir setas em posições altamente lucrativas para facilitar a formulação de melhores regras de negociação. O indicador apresentado aqui é muito semelhante ao Indicador ZigZag, exceto que os pontos de avanço para este indicador são onde as Bandas Bollinger opostas são ultimamente violadas antes do próximo sinal. A fórmula é escrita como um sistema comercial. Pode ser testado de volta, e o período e a largura do BB podem ser otimizados. Uma vez que esta é apenas uma fórmula experimental, nenhuma tentativa foi feita para otimizar o código. Arquivado por Herman às 8:43 pm sob Indicadores Comentários desativados na Bollinger Band ZigZag Indicator Os comentários estão fechados. Posts recentes Comentários recentes Categorias Copyright (C) 2006 AmiBroker. Este site usa a página do WordPress gerada em 0.535 segundos. O melhor comerciante do sistema Better Trader do sistema é o podcast e o blog dedicado a comerciantes sistemáticos, fornecendo dicas práticas de especialistas comerciais em todo o mundo. Blast Buy 038 Hold com esta estratégia Bollinger Band simples No Episódio 4 do podcast Better System Trader. Nick Radge discute algumas idéias comerciais que ele usou para criar sistemas lucrativos. Ele menciona uma idéia Bollinger Band, que também é publicada em seu livro Unholy Grails. Nick diz: a estratégia que fizemos e mostrou resultados muito promissores foi uma entrada usando uma banda Bollinger e uma saída usando a banda Bollinger oposta, mas usamos 3 desvios padrão para a entrada e 1 desvio padrão para a saída, apenas para manter A trailing pára um pouco mais apertado.8221 Em Unholy Grails, a estratégia é usada no mercado de ações australiano, mas neste artigo iria testá-lo na Nasdaq 100, em vez disso, para determinar se a estratégia tem potencial em outros mercados. As regras de negociação Em primeiro lugar, aqui estão os parâmetros de teste: Período: Gráficos diários Universo: Nasdaq 100, usando componentes históricos para eliminar viés de sobrevivência, dados do período de Teste de Dados Premium: de 112005 a 112017. Esse período foi escolhido porque tem uma mistura de Mercados de touro e urso, juntamente com alta e baixa volatilidade Patrimônio inicial: 100.000 Número máximo de negócios simultâneos: 6 Tamanho da posição: Cada posição será 16 de 100.000 Lucros compostos: Não Comissões: 10 de cada caminho Alavancagem: 0 Agora para a entrada e saída regras. No livro de Nicks, ele usa 100 Bandas de Bollinger do período, então faça o mesmo. A banda Bollinger superior será 3 desvios da linha central, a banda Bollinger inferior será 1 desvio abaixo da linha central. Entrada: Compra no Open no dia seguinte à conclusão de um estoque acima da saída Bollinger Band: Sair no Open no dia seguinte à conclusão de um estoque abaixo da Bollinger Baixa. Aqui está um exemplo de uma entrada (10052007) e sair para AAPL: The O retorno anual da estratégia básica é quase 20 melhores do que o Compre amp Hold com menos de 12 o drawdown. A curva de equidade da estratégia básica mostra um aumento geral no patrimônio com alguns períodos de redução: adicionando um filtro de mercado. Um filtro de mercado é usado para alternar uma estratégia sobre ou desativada com base em condições de mercado mais amplas. Como este é um sistema de longo tempo, provavelmente não queremos entrar em negociações em um mercado de ursos tão bem, apenas entram negociações quando o índice está aumentando. Com o SampP 500 o índice mais utilizado pelos profissionais financeiros, iriam usar isso para o filtro de índice. Nesse teste, um mercado de touro será definido como o fechamento do índice acima da média móvel simples de 100 dias quando o índice se fechar abaixo da média móvel de 100 dias, é um mercado ostentoso e nós não entraremos em negociações até que os preços se fechem acima dos 100 dias em movimento média. A média móvel de 100 dias foi escolhida para corresponder ao valor da Bollinger Band, outros comprimentos médios móveis podem funcionar melhor, mas precisarão ser testados. Os resultados: o filtro de índice melhorou a qualidade da estratégia, com maior retorno, menor redução e maior relação de ganhos com menos negócios. Existem períodos durante o teste em que são apresentados mais sinais de entrada comercial do que podemos tomar usando um máximo de 6 posições, então precisamos decidir quais ações escolher quando isso acontecer. Vamos tentar uma estratégia de classificação básica para sistematizar o processo de seleção. Quando uma série de entradas de estoque ocorrem no mesmo dia, precisamos tomar uma decisão sobre quais as quais tomar. Poderíamos escolhê-los aleatoriamente, mas precisamos executar simulações de monte carlo para obter uma melhor indicação das possíveis variações usando este método. Eu prefiro adicionar um sistema de classificação simples à estratégia para que a seleção de ações seja completamente sistemática. A estratégia de classificação que vou usar aqui é baseada no que eu acho que a força das estratégias é. Espero que a estratégia seja melhor, mesmo depois de um mercado urugo ou de um período de consolidação, entrando no início de um novo mercado de touro ou rompendo a consolidação e montando ele mais alto. Nesse caso, irão tentar classificar por Taxa de Mudança nos últimos 90 dias, de modo que os estoques com a menor Taxa de Mudança terão maior prioridade do que aqueles com uma grande Taxa de Mudança. Logicamente, ele faz sentido, mas o que os resultados nos dizem. A estratégia de classificação produziu um retorno anual mais alto, com redução menor, menor número de negócios e maior vitoria. Pode não ter impactado muitos negócios, portanto, a adição do ranking pode não ser estatisticamente significante, mas fornece um método sistemático para escolher ações quando múltiplas oportunidades se apresentam. O poder do Compounding Até agora, vimos a estratégia básica superar ligeiramente o amplificador Compre Hold, mas com reduções consideravelmente menores. A inclusão de um Filtro de Índice e a classificação pelo ROC mais pequeno melhoraram a estratégia, embora os resultados não estejam pendentes. Vejamos como os lucros dos compostos impactam os resultados da estratégia: Estratégia básica com filtro de índice Estratégia básica com filtro de índice e menor ranking de ROC Estratégia básica com filtro de índice e classificação de ROC lucro de amplificador composto 274 8211 Como solicitado por Rick, aqui está um histograma de distribuições, com A maioria dos negócios na faixa de -25 a 70 e alguns negócios com 100 e mais: com ganhos compostos, agora temos uma estratégia que produz mais do dobro dos retornos do Buy amp Hold com apenas metade do drawdown. A taxa de ganhos de 73,33 e o índice winloss de 3,33 também são bons para uma tendência seguindo o sistema. Parece que a estratégia tem algum potencial e merece maior investigação. Algumas áreas de consideração podem ser: O comprimento das Bandas de Bollinger, Diferentes filtros de mercado, paradas de adaptação mais avançadas, Classificação baseada em outras métricas, Adequação a outros mercados. Como uma cópia do código AmiBroker Deseja obter as últimas atualizações automaticamente A melhor maneira de ser notificado quando novas coisas são lançadas é se inscrever na lista de e-mail abaixo e bem, certifique-se de informá-lo: 004 - Nick Radge 005 - Kevin Posts relacionados de Davey Hans van der Helm Obrigado pelo muito interessante artigo 8220Blast Buy amp Hold com esta estratégia Bollinger Band simples8221. I8217m usando Amibroker também. É possível postar (ou enviar-me) o código deste sistema. Obrigado antecipadamente. Atenciosamente, Hans van der Helm Oi Hans, I8217ve acabei de enviar-lhe o código da AFL, espero que ajude. Andrew - Obrigado pela redação. Estou interessado no afl. Aprecio o seu trabalho sobre isso. Obrigado Derrick, I8217ve enviou por e-mail uma cópia da AFL. Obrigado pela excelente informação. Você poderia enviar por e-mail o afl Obrigado. Esta estratégia é estratégia de ações apenas oi Casey, I8217ve testou apenas em ações, no entanto, ela pode funcionar em futuresforex etc. Eu posso fornecer o código AmiBroker se você quiser testar para si mesmo o artigo agradável. Você pode enviar o código AFL Obrigado Bob, I8217ve acabou de enviar-lhe o código AFL. Obrigado por essa entrevista com Nick e a análise de seu sistema Bollinger Band. Ansioso pelo código AFL. Muito interessante. Cheers John, I8217ve acabou de enviar-lhe o código AFL. Realmente curtindo os podcasts e as excelentes informações que você fornece. Você poderia enviar pelo código AFL. Muito obrigado, consegui duas coisas: (a) Você poderia publicar resultados do início do índice. Embora haja uma tendência de baixa, o período escolhido tem duas tendências ascendentes. (B) Qual foi a contribuição da AAPL e do GOOG nos resultados Se você fosse remover essas empresas do índice, qual seria o resultado que I8217m dizia isso, porque é muito parecido ter empresas similares no futuro próximo. Até que ponto seus resultados são influenciados por alguns valores atrevidos. Grande ponto de considerar os valores atípicos. Eu verifiquei os resultados do comércio e os negócios com os retornos mais altos na verdade, AAPL ou GOOG. Na verdade, a estratégia não teve um comércio no GOOG e a AAPL era apenas a terceira maior, aqui estão os 5 melhores: GILD: 213.98 BIDU: 137.33 AAPL: 107.10 EXPE: 103.48 QVCA: 98.10 Se eu remover todos os negócios da AAPL, O Retorno Anual é 18.43 e DD é -23.60 então os retornos são ligeiramente mais baixos, mas quem é o que vai acontecer no futuro 8211 AAPL pode continuar mais alto, outro estoque pode assumir, esta estratégia pode falhar miseravelmente amanhã, nós nunca sabemos. Obrigado Ainda estou preocupado com outliers. Eu seria bom se você pudesse adicionar ao blog um histograma de retornos por estoque negociado, talvez pelo menos os 30 melhores. Então ficará claro se o desempenho foi devido a alguns valores aberrantes aleatórios ou devido ao método. Desculpas pelo pedido, mas não tenho os dados para fazê-lo, caso contrário, eu faria. Oi Rick, I8217ve adicionou um gráfico mostrando os retornos. A maior parte dos negócios estão na faixa de -25 a 70, com alguns 100 ou superior. Espero que responda as suas perguntas. Lembre-se de que esta pesquisa não é um sistema comercial completo, é apenas um ponto de partida. O objetivo da pesquisa foi determinar se a estratégia que o Nick menciona no podcast tem potencial em outros mercados. Parece que pode, mas uma investigação mais aprofundada, obviamente, deve ser completada antes de continuar. Se você puder, eu recomendo obter alguns dados e executar alguns desses testes, I8217m com certeza se a estratégia poderia ser melhorada para que I8217d estivesse interessado em ouvir seus resultados. Grande escrita. It8217s surpreendente o que um sistema simples com apenas alguns ajustes podem fazer. I8217d aprecio uma cópia do código AFL para que eu possa ver se posso fazer alguns outros ajustes que podem ajudar. Obrigado. Ei Gav, feliz por você ter gostado. Sim, I8217ve encontrado que os sistemas simples são frequentemente os melhores, espero ansiosamente ouvir o que você descobre em seus testes. A AFL está a caminho. 8230 Blast Comprar amp Hold com esta estratégia Bollinger Band Better Better Trader System No Episódio 4 do podcast Better System Trader, Nick Radge discute algumas idéias comerciais que ele usou para criar sistemas lucrativos. Ele menciona uma idéia Bollinger Band, que também é publicada em seu livro Unholy Grails. Nick diz: a estratégia que fizemos e mostrou resultados muito promissores foi uma entrada usando uma banda Bollinger e uma saída usando a banda Bollinger oposta, mas usamos 3 padrão 8230 8230 Klla: Blast Buy amp. Hold com esta estratégia Bollinger Band 8211 Better System Trader 8230 A negociação de ações, opções, futuros e divisas envolve um risco significativo de perda e não é adequado para todos. O desempenho passado não é necessariamente indicativo de resultados futuros.
No comments:
Post a Comment