use of com.github.jnidzwetzki.cryptobot.portfolio.PortfolioManager in project crypto-bot by jnidzwetzki.
the class TestCapitalAllocation method testCapitalAllocationExchange1.
@Test
public void testCapitalAllocationExchange1() throws APIException {
final PortfolioManager portfolioManager = buildPortfolioManager();
final Map<BitfinexCurrencyPair, CurrencyEntry> entries = new HashMap<>();
final CurrencyEntry entry1 = new CurrencyEntry(BitfinexCurrencyPair.BTC_USD, 1000, 990);
entries.put(BitfinexCurrencyPair.BTC_USD, entry1);
portfolioManager.calculatePositionSizes(entries);
// Max loss = 10, max capital allocation 50%
Assert.assertEquals(0.45, entry1.getPositionSize(), DELTA);
}
use of com.github.jnidzwetzki.cryptobot.portfolio.PortfolioManager in project crypto-bot by jnidzwetzki.
the class TestCapitalAllocation method testCapitalAllocationExchangeMaxPositionLoss1.
@Test
public void testCapitalAllocationExchangeMaxPositionLoss1() throws APIException {
final PortfolioManager portfolioManager = buildPortfolioManager();
final Map<BitfinexCurrencyPair, CurrencyEntry> entries = new HashMap<>();
final CurrencyEntry entry1 = new CurrencyEntry(BitfinexCurrencyPair.BTC_USD, 1000, 0);
entries.put(BitfinexCurrencyPair.BTC_USD, entry1);
portfolioManager.calculatePositionSizes(entries);
// Max loss = 10, max capital allocation 50%
Assert.assertEquals(0.045, entry1.getPositionSize(), DELTA);
}
use of com.github.jnidzwetzki.cryptobot.portfolio.PortfolioManager in project crypto-bot by jnidzwetzki.
the class TestCapitalAllocation method testCapitalAllocationExchange2.
@Test
public void testCapitalAllocationExchange2() throws APIException {
final PortfolioManager portfolioManager = buildPortfolioManager();
final Map<BitfinexCurrencyPair, CurrencyEntry> entries = new HashMap<>();
final CurrencyEntry entry1 = new CurrencyEntry(BitfinexCurrencyPair.BTC_USD, 1000, 990);
entries.put(BitfinexCurrencyPair.BTC_USD, entry1);
final CurrencyEntry entry2 = new CurrencyEntry(BitfinexCurrencyPair.IOT_USD, 1000, 990);
entries.put(BitfinexCurrencyPair.IOT_USD, entry2);
portfolioManager.calculatePositionSizes(entries);
// Max loss = 10, max capital allocation 50%
Assert.assertEquals(0.45, entry1.getPositionSize(), DELTA);
Assert.assertEquals(0.45, entry2.getPositionSize(), DELTA);
}
use of com.github.jnidzwetzki.cryptobot.portfolio.PortfolioManager in project crypto-bot by jnidzwetzki.
the class DonchianBot method executeSystem.
/**
* Execute the trading system
* @throws APIException
*/
private void executeSystem() {
for (final PortfolioManager portfolioManager : portfolioManagers) {
logger.info("Apply orders to portfolio manager {}", portfolioManager);
logger.info("===============================================");
applySystemToPortfolioManager(portfolioManager);
if (Thread.interrupted()) {
return;
}
}
}
use of com.github.jnidzwetzki.cryptobot.portfolio.PortfolioManager in project crypto-bot by jnidzwetzki.
the class TestCapitalAllocation method testCapitalAllocationExchangeMaxPositionLoss2.
@Test
public void testCapitalAllocationExchangeMaxPositionLoss2() throws APIException {
final PortfolioManager portfolioManager = buildPortfolioManager();
final Map<BitfinexCurrencyPair, CurrencyEntry> entries = new HashMap<>();
final CurrencyEntry entry1 = new CurrencyEntry(BitfinexCurrencyPair.BTC_USD, 1000, 0);
entries.put(BitfinexCurrencyPair.BTC_USD, entry1);
final CurrencyEntry entry2 = new CurrencyEntry(BitfinexCurrencyPair.IOT_USD, 1000, 990);
entries.put(BitfinexCurrencyPair.IOT_USD, entry2);
portfolioManager.calculatePositionSizes(entries);
// Max loss = 10, max capital allocation 50%
Assert.assertEquals(0.045, entry1.getPositionSize(), DELTA);
Assert.assertEquals(0.45, entry2.getPositionSize(), DELTA);
}
Aggregations