Search in sources :

Example 81 with Bar

use of org.ta4j.core.Bar in project ta4j by ta4j.

the class AccumulationDistributionIndicatorTest method accumulationDistribution.

@Test
public void accumulationDistribution() {
    ZonedDateTime now = ZonedDateTime.now();
    List<Bar> bars = new ArrayList<>();
    // 2-2 * 200 / 4
    bars.add(new MockBar(now, 0d, 10d, 12d, 8d, 0d, 200d, 0));
    // 1-2 *100 / 3
    bars.add(new MockBar(now, 0d, 8d, 10d, 7d, 0d, 100d, 0));
    // 3-6 *300 /9
    bars.add(new MockBar(now, 0d, 9d, 15d, 6d, 0d, 300d, 0));
    // 15-20 *50 / 35
    bars.add(new MockBar(now, 0d, 20d, 40d, 5d, 0d, 50d, 0));
    // 27-0 *600 /27
    bars.add(new MockBar(now, 0d, 30d, 30d, 3d, 0d, 600d, 0));
    TimeSeries series = new MockTimeSeries(bars);
    AccumulationDistributionIndicator ac = new AccumulationDistributionIndicator(series);
    assertDecimalEquals(ac.getValue(0), 0);
    assertDecimalEquals(ac.getValue(1), -100d / 3);
    assertDecimalEquals(ac.getValue(2), -100d - (100d / 3));
    assertDecimalEquals(ac.getValue(3), (-250d / 35) + (-100d - (100d / 3)));
    assertDecimalEquals(ac.getValue(4), 600d + ((-250d / 35) + (-100d - (100d / 3))));
}
Also used : MockBar(org.ta4j.core.mocks.MockBar) Bar(org.ta4j.core.Bar) TimeSeries(org.ta4j.core.TimeSeries) MockTimeSeries(org.ta4j.core.mocks.MockTimeSeries) ZonedDateTime(java.time.ZonedDateTime) MockBar(org.ta4j.core.mocks.MockBar) ArrayList(java.util.ArrayList) MockTimeSeries(org.ta4j.core.mocks.MockTimeSeries) Test(org.junit.Test)

Example 82 with Bar

use of org.ta4j.core.Bar in project ta4j by ta4j.

the class ChaikinMoneyFlowIndicatorTest method getValue.

@Test
public void getValue() {
    ZonedDateTime now = ZonedDateTime.now();
    List<Bar> bars = new ArrayList<>();
    bars.add(new BaseBar(now, "0", "62.34", "61.37", "62.15", "7849.025"));
    bars.add(new BaseBar(now, "0", "62.05", "60.69", "60.81", "11692.075"));
    bars.add(new BaseBar(now, "0", "62.27", "60.10", "60.45", "10575.307"));
    bars.add(new BaseBar(now, "0", "60.79", "58.61", "59.18", "13059.128"));
    bars.add(new BaseBar(now, "0", "59.93", "58.71", "59.24", "20733.508"));
    bars.add(new BaseBar(now, "0", "61.75", "59.86", "60.20", "29630.096"));
    bars.add(new BaseBar(now, "0", "60.00", "57.97", "58.48", "17705.294"));
    bars.add(new BaseBar(now, "0", "59.00", "58.02", "58.24", "7259.203"));
    bars.add(new BaseBar(now, "0", "59.07", "57.48", "58.69", "10474.629"));
    bars.add(new BaseBar(now, "0", "59.22", "58.30", "58.65", "5203.714"));
    bars.add(new BaseBar(now, "0", "58.75", "57.83", "58.47", "3422.865"));
    bars.add(new BaseBar(now, "0", "58.65", "57.86", "58.02", "3962.150"));
    bars.add(new BaseBar(now, "0", "58.47", "57.91", "58.17", "4095.905"));
    bars.add(new BaseBar(now, "0", "58.25", "57.83", "58.07", "3766.006"));
    bars.add(new BaseBar(now, "0", "58.35", "57.53", "58.13", "4239.335"));
    bars.add(new BaseBar(now, "0", "59.86", "58.58", "58.94", "8039.979"));
    bars.add(new BaseBar(now, "0", "59.53", "58.30", "59.10", "6956.717"));
    bars.add(new BaseBar(now, "0", "62.10", "58.53", "61.92", "18171.552"));
    bars.add(new BaseBar(now, "0", "62.16", "59.80", "61.37", "22225.894"));
    bars.add(new BaseBar(now, "0", "62.67", "60.93", "61.68", "14613.509"));
    bars.add(new BaseBar(now, "0", "62.38", "60.15", "62.09", "12319.763"));
    bars.add(new BaseBar(now, "0", "63.73", "62.26", "62.89", "15007.690"));
    bars.add(new BaseBar(now, "0", "63.85", "63.00", "63.53", "8879.667"));
    bars.add(new BaseBar(now, "0", "66.15", "63.58", "64.01", "22693.812"));
    bars.add(new BaseBar(now, "0", "65.34", "64.07", "64.77", "10191.814"));
    bars.add(new BaseBar(now, "0", "66.48", "65.20", "65.22", "10074.152"));
    bars.add(new BaseBar(now, "0", "65.23", "63.21", "63.28", "9411.620"));
    bars.add(new BaseBar(now, "0", "63.40", "61.88", "62.40", "10391.690"));
    bars.add(new BaseBar(now, "0", "63.18", "61.11", "61.55", "8926.512"));
    bars.add(new BaseBar(now, "0", "62.70", "61.25", "62.69", "7459.575"));
    TimeSeries series = new BaseTimeSeries(bars);
    ChaikinMoneyFlowIndicator cmf = new ChaikinMoneyFlowIndicator(series, 20);
    assertDecimalEquals(cmf.getValue(0), 0.6082);
    assertDecimalEquals(cmf.getValue(1), -0.2484);
    assertDecimalEquals(cmf.getValue(19), -0.1211);
    assertDecimalEquals(cmf.getValue(20), -0.0997);
    assertDecimalEquals(cmf.getValue(21), -0.0659);
    assertDecimalEquals(cmf.getValue(22), -0.0257);
    assertDecimalEquals(cmf.getValue(23), -0.0617);
    assertDecimalEquals(cmf.getValue(24), -0.0481);
    assertDecimalEquals(cmf.getValue(25), -0.0086);
    assertDecimalEquals(cmf.getValue(26), -0.0087);
    assertDecimalEquals(cmf.getValue(27), -0.005);
    assertDecimalEquals(cmf.getValue(28), -0.0574);
    assertDecimalEquals(cmf.getValue(29), -0.0148);
}
Also used : BaseBar(org.ta4j.core.BaseBar) Bar(org.ta4j.core.Bar) BaseTimeSeries(org.ta4j.core.BaseTimeSeries) TimeSeries(org.ta4j.core.TimeSeries) ZonedDateTime(java.time.ZonedDateTime) BaseBar(org.ta4j.core.BaseBar) BaseTimeSeries(org.ta4j.core.BaseTimeSeries) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 83 with Bar

use of org.ta4j.core.Bar in project ta4j by ta4j.

the class IIIIndicatorTest method intradayIntensityIndex.

@Test
public void intradayIntensityIndex() {
    ZonedDateTime now = ZonedDateTime.now();
    List<Bar> bars = new ArrayList<>();
    // 2-2 * 200 / 4
    bars.add(new MockBar(now, 0d, 10d, 12d, 8d, 0d, 200d, 0));
    // 1-2 *100 / 3
    bars.add(new MockBar(now, 0d, 8d, 10d, 7d, 0d, 100d, 0));
    // 3-6 *300 /9
    bars.add(new MockBar(now, 0d, 9d, 15d, 6d, 0d, 300d, 0));
    // 15-20 *50 / 35
    bars.add(new MockBar(now, 0d, 20d, 40d, 5d, 0d, 50d, 0));
    // 27-0 *600 /27
    bars.add(new MockBar(now, 0d, 30d, 30d, 3d, 0d, 600d, 0));
    TimeSeries series = new MockTimeSeries(bars);
    IIIIndicator iiiIndicator = new IIIIndicator(series);
    assertDecimalEquals(iiiIndicator.getValue(0), 0);
    assertDecimalEquals(iiiIndicator.getValue(1), (2 * 8d - 10d - 7d) / ((10d - 7d) * 100d));
    assertDecimalEquals(iiiIndicator.getValue(2), (2 * 9d - 15d - 6d) / ((15d - 6d) * 300d));
    assertDecimalEquals(iiiIndicator.getValue(3), (2 * 20d - 40d - 5d) / ((40d - 5d) * 50d));
    assertDecimalEquals(iiiIndicator.getValue(4), (2 * 30d - 30d - 3d) / ((30d - 3d) * 600d));
}
Also used : MockBar(org.ta4j.core.mocks.MockBar) Bar(org.ta4j.core.Bar) TimeSeries(org.ta4j.core.TimeSeries) MockTimeSeries(org.ta4j.core.mocks.MockTimeSeries) ZonedDateTime(java.time.ZonedDateTime) MockBar(org.ta4j.core.mocks.MockBar) ArrayList(java.util.ArrayList) MockTimeSeries(org.ta4j.core.mocks.MockTimeSeries) Test(org.junit.Test)

Example 84 with Bar

use of org.ta4j.core.Bar in project ta4j by ta4j.

the class MVWAPIndicatorTest method setUp.

@Before
public void setUp() {
    List<Bar> bars = new ArrayList<Bar>();
    bars.add(new MockBar(44.98, 45.05, 45.17, 44.96, 1));
    bars.add(new MockBar(45.05, 45.10, 45.15, 44.99, 2));
    bars.add(new MockBar(45.11, 45.19, 45.32, 45.11, 1));
    bars.add(new MockBar(45.19, 45.14, 45.25, 45.04, 3));
    bars.add(new MockBar(45.12, 45.15, 45.20, 45.10, 1));
    bars.add(new MockBar(45.15, 45.14, 45.20, 45.10, 2));
    bars.add(new MockBar(45.13, 45.10, 45.16, 45.07, 1));
    bars.add(new MockBar(45.12, 45.15, 45.22, 45.10, 5));
    bars.add(new MockBar(45.15, 45.22, 45.27, 45.14, 1));
    bars.add(new MockBar(45.24, 45.43, 45.45, 45.20, 1));
    bars.add(new MockBar(45.43, 45.44, 45.50, 45.39, 1));
    bars.add(new MockBar(45.43, 45.55, 45.60, 45.35, 5));
    bars.add(new MockBar(45.58, 45.55, 45.61, 45.39, 7));
    bars.add(new MockBar(45.45, 45.01, 45.55, 44.80, 6));
    bars.add(new MockBar(45.03, 44.23, 45.04, 44.17, 1));
    bars.add(new MockBar(44.23, 43.95, 44.29, 43.81, 2));
    bars.add(new MockBar(43.91, 43.08, 43.99, 43.08, 1));
    bars.add(new MockBar(43.07, 43.55, 43.65, 43.06, 7));
    bars.add(new MockBar(43.56, 43.95, 43.99, 43.53, 6));
    bars.add(new MockBar(43.93, 44.47, 44.58, 43.93, 1));
    data = new MockTimeSeries(bars);
}
Also used : MockBar(org.ta4j.core.mocks.MockBar) Bar(org.ta4j.core.Bar) MockBar(org.ta4j.core.mocks.MockBar) ArrayList(java.util.ArrayList) MockTimeSeries(org.ta4j.core.mocks.MockTimeSeries) Before(org.junit.Before)

Example 85 with Bar

use of org.ta4j.core.Bar in project ta4j by ta4j.

the class OnBalanceVolumeIndicatorTest method stackOverflowError.

@Test
public void stackOverflowError() {
    List<Bar> bigListOfBars = new ArrayList<Bar>();
    for (int i = 0; i < 10000; i++) {
        bigListOfBars.add(new MockBar(i));
    }
    MockTimeSeries bigSeries = new MockTimeSeries(bigListOfBars);
    OnBalanceVolumeIndicator obv = new OnBalanceVolumeIndicator(bigSeries);
    // If a StackOverflowError is thrown here, then the RecursiveCachedIndicator
    // does not work as intended.
    assertDecimalEquals(obv.getValue(9999), 0);
}
Also used : MockBar(org.ta4j.core.mocks.MockBar) Bar(org.ta4j.core.Bar) MockBar(org.ta4j.core.mocks.MockBar) ArrayList(java.util.ArrayList) MockTimeSeries(org.ta4j.core.mocks.MockTimeSeries) Test(org.junit.Test)

Aggregations

Bar (org.ta4j.core.Bar)104 ArrayList (java.util.ArrayList)60 MockBar (org.ta4j.core.mocks.MockBar)48 MockTimeSeries (org.ta4j.core.mocks.MockTimeSeries)42 Before (org.junit.Before)37 Test (org.junit.Test)33 Decimal (org.ta4j.core.Decimal)20 IOException (java.io.IOException)16 BaseTimeSeries (org.ta4j.core.BaseTimeSeries)16 BitfinexCurrencyPair (com.github.jnidzwetzki.bitfinex.v2.entity.BitfinexCurrencyPair)15 Timeframe (com.github.jnidzwetzki.bitfinex.v2.entity.Timeframe)15 ZonedDateTime (java.time.ZonedDateTime)15 CountDownLatch (java.util.concurrent.CountDownLatch)15 BiConsumer (java.util.function.BiConsumer)15 BarMerger (com.github.jnidzwetzki.cryptobot.util.BarMerger)14 ParseException (java.text.ParseException)14 SimpleDateFormat (java.text.SimpleDateFormat)14 Assert (org.junit.Assert)14 BaseBar (org.ta4j.core.BaseBar)12 TimeSeries (org.ta4j.core.TimeSeries)9