Skip to content

team172011/ta4jCharting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Test develop Test develop Buy Me A Coffee

Ta4jCharting

A simple charting application for ta4j using Swing and jfreechart.

Maven artifacts and SNAPSHOTS

You can get the latest release of this library by adding the following maven dependency:

<dependency>
  <groupId>de.sjwimmer.ta4j-charting</groupId>
  <artifactId>lib</artifactId>
  <version>0.1</version>
</dependency>

The latest SNAPSHOT can by used by this dependency:

<dependency>
  <groupId>de.sjwimmer.ta4j-charting</groupId>
  <artifactId>lib</artifactId>
  <version>0.2-SNAPSHOT</version>
</dependency>

How to build

The example application and library can be build by executing:

> git clone https://github.com/team172011/ta4jCharting.git
> cd ta4jCharting
> mvn clean package

How to start the example

After building the example application the example can be started by executing:

> java -jar example/target/example-0.0.1-SNAPSHOT.jar

How to use

Quick start

final BarSeries barSeries = loadAppleIncSeries(); // create a ta4j bar series
TacChartBuilder.of(barSeries)
        .buildAndShow("AAPL");

Example picture

Build a chart with custom indicators and a trading record

// 1 Create a barSeries, indicators and run your strategy with ta4j
final BarSeries barSeries = loadAppleIncSeries();
final VolumeIndicator volume = new VolumeIndicator(barSeries);
final ParabolicSarIndicator parabolicSar = new ParabolicSarIndicator(barSeries);
final ClosePriceIndicator closePrice = new ClosePriceIndicator(barSeries);
final EMAIndicator longEma = new EMAIndicator(closePrice, 12);
final EMAIndicator shortEma = new EMAIndicator(closePrice, 4);
final CrossedDownIndicatorRule exit = new CrossedDownIndicatorRule(shortEma, longEma);
final CrossedUpIndicatorRule entry = new CrossedUpIndicatorRule(shortEma, longEma);

final Strategy strategy = new BaseStrategy(entry, exit);
final TradingRecord tradingRecord = new BarSeriesManager(barSeries).run(strategy);

final Returns returns = new Returns(barSeries, tradingRecord, Returns.ReturnType.ARITHMETIC);

// 2 Use the ChartBuilder to create a plot with barSeries, indicators and trading record
TacChartBuilder.of(barSeries)
    .withIndicator(
        of(shortEma)
            .name("Short Ema")
            .color(Color.BLUE)) // default: ChartType.LINE, PlotType.OVERLAY
    .withIndicator(
        of(volume)
            .name("Volume")
            .plotType(PlotType.SUBPLOT)
            .chartType(ChartType.BAR)
            .color(Color.BLUE))
    withIndicator(
        of(parabolicSar)  // default name = toString()
            .plotType(PlotType.OVERLAY)
            .chartType(ChartType.LINE)
            .color(Color.MAGENTA))
    .withIndicator(
        of(longEma)
            .name("Long Ema")
            .plotType(PlotType.SUBPLOT)
            .chartType(ChartType.LINE)) // random color
    .withIndicator(
        of(returns)
            .name("Returns")
            .plotType(PlotType.SUBPLOT)
            .color(Color.BLACK)) // default: ChartType.LINE
    .withTradingRecord(tradingRecord)
    .buildAndShow(); // Creates and displays the JPanel in a JFrame

Example picture

You can also use a dark theme:

TacChartBuilder.of(barSeries, Theme.DARK).buildAndShow();

Example picture

Project structure

This project is a simple maven project with a parent pom and two modules for the ta4j-charting library and the example project

└───ta4j-charting-parent
    ├───pom.xml
    ├───README.md
    └───lib
    │    ├───pom.xml
    │    └───src
    │         ├───main
    │         │    └───resources
    │         └───test
    │    
    │
    └───example
         ├───pom.xml
         └───src
             ├───main
             │    └───resources
             └───test

About

Simple charting app for ta4j

Resources

Stars

Watchers

Forks

Packages

 
 
 

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy