use of org.ta4j.core.BaseTradingRecord in project ta4j by ta4j.
the class CashFlowTest method cashFlowValueWithOnlyOneTradeAndAGapBefore.
@Test
public void cashFlowValueWithOnlyOneTradeAndAGapBefore() {
TimeSeries sampleTimeSeries = new MockTimeSeries(1d, 1d, 2d);
TradingRecord tradingRecord = new BaseTradingRecord(Order.buyAt(1, sampleTimeSeries), Order.sellAt(2, sampleTimeSeries));
CashFlow cashFlow = new CashFlow(sampleTimeSeries, tradingRecord);
assertDecimalEquals(cashFlow.getValue(0), 1);
assertDecimalEquals(cashFlow.getValue(1), 1);
assertDecimalEquals(cashFlow.getValue(2), 2);
}
use of org.ta4j.core.BaseTradingRecord in project ta4j by ta4j.
the class CashFlowTest method cashFlowBuyWithOnlyOneTrade.
@Test
public void cashFlowBuyWithOnlyOneTrade() {
TimeSeries sampleTimeSeries = new MockTimeSeries(1d, 2d);
TradingRecord tradingRecord = new BaseTradingRecord(Order.buyAt(0, sampleTimeSeries), Order.sellAt(1, sampleTimeSeries));
CashFlow cashFlow = new CashFlow(sampleTimeSeries, tradingRecord);
assertDecimalEquals(cashFlow.getValue(0), 1);
assertDecimalEquals(cashFlow.getValue(1), 2);
}
use of org.ta4j.core.BaseTradingRecord in project ta4j by ta4j.
the class CashFlowTest method cashFlowShortSell.
@Test
public void cashFlowShortSell() {
TimeSeries sampleTimeSeries = new MockTimeSeries(1, 2, 4, 8, 16, 32);
TradingRecord tradingRecord = new BaseTradingRecord(Order.buyAt(0, sampleTimeSeries), Order.sellAt(2, sampleTimeSeries), Order.sellAt(2, sampleTimeSeries), Order.buyAt(4, sampleTimeSeries), Order.buyAt(4, sampleTimeSeries), Order.sellAt(5, sampleTimeSeries));
CashFlow cashFlow = new CashFlow(sampleTimeSeries, tradingRecord);
assertDecimalEquals(cashFlow.getValue(0), 1);
assertDecimalEquals(cashFlow.getValue(1), 2);
assertDecimalEquals(cashFlow.getValue(2), 4);
assertDecimalEquals(cashFlow.getValue(3), 2);
assertDecimalEquals(cashFlow.getValue(4), 1);
assertDecimalEquals(cashFlow.getValue(5), 2);
}
use of org.ta4j.core.BaseTradingRecord in project ta4j by ta4j.
the class CashFlowTest method cashFlowValue.
@Test
public void cashFlowValue() {
// First sample series
TimeSeries sampleTimeSeries = new MockTimeSeries(3d, 2d, 5d, 1000d, 5000d, 0.0001d, 4d, 7d, 6d, 7d, 8d, 5d, 6d);
TradingRecord tradingRecord = new BaseTradingRecord(Order.buyAt(0, sampleTimeSeries), Order.sellAt(2, sampleTimeSeries), Order.buyAt(6, sampleTimeSeries), Order.sellAt(8, sampleTimeSeries), Order.buyAt(9, sampleTimeSeries), Order.sellAt(11, sampleTimeSeries));
CashFlow cashFlow = new CashFlow(sampleTimeSeries, tradingRecord);
assertDecimalEquals(cashFlow.getValue(0), 1);
assertDecimalEquals(cashFlow.getValue(1), 2d / 3);
assertDecimalEquals(cashFlow.getValue(2), 5d / 3);
assertDecimalEquals(cashFlow.getValue(3), 5d / 3);
assertDecimalEquals(cashFlow.getValue(4), 5d / 3);
assertDecimalEquals(cashFlow.getValue(5), 5d / 3);
assertDecimalEquals(cashFlow.getValue(6), 5d / 3);
assertDecimalEquals(cashFlow.getValue(7), 5d / 3 * 7d / 4);
assertDecimalEquals(cashFlow.getValue(8), 5d / 3 * 6d / 4);
assertDecimalEquals(cashFlow.getValue(9), 5d / 3 * 6d / 4);
assertDecimalEquals(cashFlow.getValue(10), 5d / 3 * 6d / 4 * 8d / 7);
assertDecimalEquals(cashFlow.getValue(11), 5d / 3 * 6d / 4 * 5d / 7);
assertDecimalEquals(cashFlow.getValue(12), 5d / 3 * 6d / 4 * 5d / 7);
// Second sample series
sampleTimeSeries = new MockTimeSeries(5d, 6d, 3d, 7d, 8d, 6d, 10d, 15d, 6d);
tradingRecord = new BaseTradingRecord(Order.buyAt(4, sampleTimeSeries), Order.sellAt(5, sampleTimeSeries), Order.buyAt(6, sampleTimeSeries), Order.sellAt(8, sampleTimeSeries));
CashFlow flow = new CashFlow(sampleTimeSeries, tradingRecord);
assertDecimalEquals(flow.getValue(0), 1);
assertDecimalEquals(flow.getValue(1), 1);
assertDecimalEquals(flow.getValue(2), 1);
assertDecimalEquals(flow.getValue(3), 1);
assertDecimalEquals(flow.getValue(4), 1);
assertDecimalEquals(flow.getValue(5), "0.75");
assertDecimalEquals(flow.getValue(6), "0.75");
assertDecimalEquals(flow.getValue(7), "1.125");
assertDecimalEquals(flow.getValue(8), "0.45");
}
use of org.ta4j.core.BaseTradingRecord in project ta4j by ta4j.
the class CashFlowTest method cashFlowValueWithNoTrades.
@Test
public void cashFlowValueWithNoTrades() {
TimeSeries sampleTimeSeries = new MockTimeSeries(3d, 2d, 5d, 4d, 7d, 6d, 7d, 8d, 5d, 6d);
CashFlow cashFlow = new CashFlow(sampleTimeSeries, new BaseTradingRecord());
assertDecimalEquals(cashFlow.getValue(4), 1);
assertDecimalEquals(cashFlow.getValue(7), 1);
assertDecimalEquals(cashFlow.getValue(9), 1);
}
Aggregations