jfree. org por Fujiko raquo Sáb Out 22, 2005 6:09 pm Aqui está a rotina que eu uso para calculá-lo: public String histo2 (String st, int n) double fm26, int fm12 k String novo String2 String tm new Stringn1 String ts novo Stringn1 para (kn-50 k ltn1 k) fm26 Float. parseFloat (calMoymeu (st, 26, k)) fm12Float. parseFloat (calMoymeu (st, 12, k)) tmkString. valueOf (fm12-fm26) para (kn -40 k ltn1k) tskcalMoymeu (tm, 9, k) int iflagk, i, jwm e ts são respectivamente a média móvel rápida e lenta n é o índice de tempo (pode ser dia, mês ou qualquer outro) st é o valor do estoque correspondente Você também tem que criar a função de movimento exponencial (CalMoymeu) // você está querendo algo como isto. (Eu criei usando o JFreeChart alguns meses atrás) Se sim, vc tem que calcular tudo que o amp combina o gráfico de linhas com o histograma. (1 semanas pode fazer isso) diz respeito, wei wei. /urljfree. org Em alguns diagramas de Bollinger Bands, os highlows são coloridos em vermelho ou verde, dependendo de sua tendência de venda e tendência de compra. Isso é possível fazer no jfreechart Como nesta foto, mas sem a cor azul (Estou interessado apenas nas cores verde e vermelha) O código a seguir reproduz o gráfico na imagem (o gráfico de preço mais alto). 58 você pode descomentar a linha que removerá a linha azul Código: Selecionar todas as importações org. jfree. chart. ChartFrame import org. jfree. chart. JFreeChart import org. jfree. chart. axis. DateAxis import org. jfree. chart. axis. NumberAxis import org. jfree. chart. axis. SegmentedTimeline import org. jfree. chart. labels. HighLowItemLabelGenerator importar org. jfree. chart. plot. XYPlot import org. jfree. chart. renderer. xy. CandlestickRenderer import org. jfree. chart. renderer. xy. XYLineAndShapeRenderer import org. jfree. data. general. DatasetChangeEvent import org. jfree. data. general. DatasetChangeListener importar org. jfree. data. xy. import java. awt. import java. io. BufferedReader import java. io. InputStreamReader import java. net. URL import java. text. DateFormat import java. text. SimpleDateFormat import java. util. ArrayList import java. util. Collections import java. util. Date import java. util. StringTokenizer public class CandlesticBBDemo123 public static void main40String9193 args41 123 ChartFrame chartFrame novo ChartFrame40quotCandlestick Bollinger Bandsquot, buildChart40quotIBMquot4141 chartFrame. setSize40600,36041 chartFrame. setVisible40true41 125 public static JFreeChart buildChart40String symbol41 123 DateAxis domainAxis nova DateAxis4041 NumberAxis rangeAxis nova NumberAxis40quotPricequot41 CandlestickRenderer priceRenderer nova CandlestickRenderer4041 XYDataset priceDataset getDataSet40symbol41 XYLineAndShapeRenderer bbRenderer nova XYLineAndShapeRenderer40true, false41 XYDataset bbDataset nova BollingerBandsDataset4040OHLCDataset41priceDataset 41 XYPlot mainPlot nova XYPlot40priceDataset, domainAxis, rangeAxis, priceRenderer41 // Este é o código que acrescenta os dados de linha para o gráfico de velas mainPlot. setRenderer401, bbRenderer41 mainPlot. setDataset 401, bbDataset41 // Não alguma configuração, consulte a API Doc rangeAxis. setAutoRangeIncludesZero40false41 domainAxis. setTimeline40 SegmentedTimeline. newMondayThroughFridayTimeline4041 41 priceRenderer. setSeriesPaint400, Color. BLACK41 priceRenderer. setSeriesToolTipGenerator400, novo HighLowItemLabelGenerator404141 priceRenderer. setDrawVolume40false41 bbRenderer. setSeriesPaint400, Color. GREEN41 bbRenderer. setSeriesPaint401, Color. BLUE41 bbRenderer. setSeriesPaint402, Color. RED41 // bbRenderer. setSeriesVisible401, false41 // Descomente esta linha para remover a média de movimento 40center line41 return new JFreeChart40symbol, null, mainPlot, false41 125 estático protegido AbstractXYDataset getDataSet40String symbol41 123 java. util. ListltOHLCDataItemgt dataItems new ArrayListltOHLCDataItemgt4041 try 123 String strUrl quotichart. finance. yahoo/table. csvsquotsymbolquotampa2ampb1ampc2005ampd6ampe22ampf2005ampignore. csvquot URL url new URL40strUrl41 BufferedReader no novo BufferedReader40new InputStreamReader40url. openStream40414 141 DateFormat df new SimpleDateFormat40quoty-M-dquot41 String inputLine in. readLine4041 enquanto 4040inputLine in. readLine404141 null41 123 StringTokenizer st new StringTokenizer40inputLine, quot, quot41 Data date df. parse40 st. nextToken4041 41 double aberto Double. parseDouble40 st. nextToken4041 41 double high Duplo. parseDouble40 st. nextToken4041 41 double low Duplo. parseDouble40 st. nextToken4041 41 double close Double. parseDouble40 st. nextToken4041 41 volume duplo Double. parseDouble40 st. nextToken4041 41 double adjFeche Double. parseDouble40 st. nextToken4041 41 OHLCDataItem item novo OHLCDataItem40date, aberto, alto , low, close, volume41 dataItems. add40item41 125 in. close4041 125 catch 40Exception e41 123 e. printStackTrace4041 125 Coleções. reverse40dataItens41 OHLCDataItem9193 dados dataItens. toArray40novo OHLCDataItem91dataItems. size40419341 retornar novo DefaultOHIDDataset40symbol, data41 125 classe estática privada BollingerBandsDataset estende AbstractXYDataset implementa Datase tChangeListener 123 protegido OHLCDataset ohlcDataset protegido int int maxLength protegido upperBandwidth protegido int lowerBandwidth Double9193 upperValues Double9193 lowerValues Double9193 averageValues pública BollingerBandsDataset40OHLCDataset ohlcDataset41 123 this40ohlcDataset, 20, 2, 241 125 pública BollingerBandsDataset40OHLCDataset ohlcDataset, int maxLength, int upperBandwidth, int lowerbandwidth41 123 this. maxLength maxLength este. upperBandwidth upperBandwidth this. lowerBandwidth lowerbandwidth this. setOhlcDataset40ohlcDataset41 125 pública OHLCDataset getOhlcDataset4041 123 retorno ohlcDataset 125 public void setOhlcDataset40OHLCDataset ohlcDataset41 123 se 40this. ohlcDataset null41 this. ohlcDataset. removeChangeListener40this41 this. ohlcDataset ohlcDataset this. ohlcDataset. addChangeListener40this41 calculateBollingerBands4041 fireDatasetChanged4041 125 protected void calculateBollingerBands4041 123 int tamanho ohlcDataset. getItemCount40041 upperValues new Double91size93 a verageValues novo Double91size93 lowerValues novo Double91size93 for40int imaxLength, n ohlcDataset. getItemCount40041 iltn i41123 double sma this. calculateSMA40 i 41 double stdDev this. calculateStdDev40 i, sma41 averageValues91i93 sma upperValues 91i93 sma40stdDev upperBandwidth41 lowerValues 91i93 sma-40stdDev inferiorBandwidth41 125 125 protegido double calculateSMA40int end41 123 double total 0.0 para 40int i final-maxLength iltend i41 123 total getSourceValue40i41 125 return total / maxLength 125 protegido double calculateStdDev40int end, duplo sma41 123 double stdDev 0.0 double total 0.0 para 40int i final-maxLength iltend i41 123 double dev getSourceValor40i41 - sma total 40dev dev41 125 total 40total / maxLength41 stdDev Math. sqrt40total41 return stdDev 125 protegido double getSourceValue40int item41123 retorno ohlcDataset. getCloseValue400, item41 125 public int getSeriesCount4041 123 return 3 125 public Comparável getSeriesKey40int series41 123 switch 40series41 123 case 0: return quotBollinger Bands Lowerquot case 1: return quotBollinger Bands Averagequot case 2: return quotBollinger Bands Upperquot default. return null 125 125 public int getItemCount40int series41 123 return ohlcDataset. getItemCount40041 125 public Número da série getX40int, int item41 123 return ohlcDataset. getX400, item41 125 public Número da série getY40int, int item41 123 switch 40series41 123 caso 0: retorno lowerValues91item93 caso 1: retorno averageValues91item93 case 2: retorna defaultValues91item93. return null 125 125 public void datasetChanged40DatasetChangeEvent event41 123 calculateBollingerBands4041 fireDatasetChanged4041 125 125 125 A resposta não vem de pensar fora da caixa, mas a resposta vem de perceber a verdade Não há caixa. my js siteTrader QampA: Como faço para usar o Bollinger Bands Lou Temos uma pergunta do Tom em Minnesota, Como faço para usar o Bollinger Bands quando negocio ações Robert Sabe, eu acho que o Bollinger Bands tende a ser um produto de volatilidade, tentou avaliar isso. Existem algumas maneiras diferentes de usá-las. Muitos comerciantes usam-nos para tentar negociar entre eles. Compre quando atingir a faixa inferior. Venda quando atingir a banda mais alta. Essa é uma maneira de usá-los. Outra maneira de usá-los é a fuga da banda. Quando ficar acima da banda ou abaixo da banda, pense em comprar quando estiver acima, ou vender quando chegar abaixo. Essas são algumas maneiras diferentes de usá-las. Mas acho que voltamos para, ei, algumas dessas coisas adicionais que iriam usar em nossas negociações, temos que entender como elas funcionam. Você sabe, você tem que se educar em torno disso. Então, eu acho que eu diria, Tom, em nosso centro de aprendizado em nosso site da Schwab, temos uma aula maravilhosa sobre o Bollinger Bands que abordamos todas as maneiras diferentes que você pode usar para usar o Bollinger Bands em suas negociações. Acho que vou dar uma olhada nisso primeiro. Certifique-se de entender como eles funcionam, as vantagens e as desvantagens. Se você está confortável com isso, então comece a aplicá-lo à sua negociação. Quaisquer opiniões expressas neste documento estão sujeitas a alterações sem aviso prévio a qualquer momento. A Schwab não recomenda o uso de análise técnica como único meio de pesquisa de investimento. Os dados de desempenho anteriores não devem ser interpretados como indicativos de resultados futuros. 2014 Charles Schwab amp Co. Inc. Todos os direitos reservados. Membro SIPC (0114-0767) Foi útil para a Schwab ter ferramentas para ajudá-lo a preparar-se mentalmente para negociar Fale com um especialista da Schwab a qualquer momento. Ligue para o 888-245-6864 MF, das 8h30 às 21h00 EST 24 / 7h Live Chat Obtenha 500 ações e opções de ações gratuitas em regime de comissão para um ano inteiro Divulgações Importantes Restrições se aplicam: A comissão de 8,95 não se aplica a ações estrangeiras transações de grandes blocos que requerem tratamento especial ou transações de estoque restritas. Todas as negociações telefônicas automatizadas e assistidas por corretores estão sujeitas a taxas de serviço. É necessário um depósito mínimo de 1.000 para abrir a maioria das contas de corretagem da Schwab. Dispensas podem ser aplicadas. Consulte o Guia de preços da Charles Schwab para obter taxas completas e horários de comissões. As transações de compensação do capital do empregado estão sujeitas a tabelas de comissões separadas. As opções carregam um alto nível de risco e não são adequadas para todos os investidores. Certos requisitos devem ser atendidos para negociar opções através da Schwab. As chamadas cobertas proporcionam proteção negativa apenas na medida do prêmio recebido e limitam o potencial de aumento do preço de exercício mais o prêmio recebido. Com opções longas, os investidores podem perder 100 dos fundos investidos. Estratégias de opções de múltiplas pernas envolverão várias comissões. Por favor, leia o Documento de Divulgação de Opções intitulado Características e Riscos das Opções Padronizadas. Quaisquer opiniões expressas neste documento estão sujeitas a alterações sem aviso prévio a qualquer momento. A Schwab não recomenda o uso de análise técnica como único meio de pesquisa de investimento. Os dados de desempenho anteriores não devem ser interpretados como indicativos de resultados futuros. Produtos de corretagem: Não são segurados pelo FDIC Nenhuma garantia bancária pode perder valor A Charles Schwab Corporation fornece uma gama completa de serviços de corretagem, assessoria bancária e financeira através de suas subsidiárias operacionais. Sua subsidiária de corretagem, a Charles Schwab amp Co. Inc. (membro da SIPC), oferece serviços e produtos de investimento, incluindo contas de corretagem da Schwab. Sua subsidiária bancária, Charles Schwab Bank (membro FDIC e Equal Housing Lender), fornece serviços e produtos de depósito e empréstimo. O acesso a serviços eletrônicos pode ser limitado ou indisponível durante os períodos de pico de demanda, volatilidade do mercado, atualização de sistemas, manutenção ou por outros motivos. Este site foi projetado para residentes dos EUA. Não-EUA os residentes estão sujeitos a restrições específicas do país. Saiba mais sobre nossos serviços para residentes fora dos EUA. 169 2016 Charles Schwab amp Co. Inc., Todos os direitos reservados. Membro SIPC. O acesso não autorizado é proibido. O uso será monitorado. (1014-6898)
No comments:
Post a Comment