use of org.ta4j.core.indicators.RSIIndicator in project crypto-bot by jnidzwetzki.
the class EMAStrategy03 method getStrategy.
public Strategy getStrategy() {
ClosePriceIndicator closePrice = new ClosePriceIndicator(timeSeries);
EMAIndicator sma1 = new EMAIndicator(closePrice, sma1Value);
EMAIndicator sma2 = new EMAIndicator(closePrice, sma2Value);
EMAIndicator sma3 = new EMAIndicator(closePrice, sma3Value);
RSIIndicator rsi = new RSIIndicator(closePrice, 14);
Rule buyingRule = new OverIndicatorRule(sma1, sma2).and(new OverIndicatorRule(sma2, sma3)).and(new OverIndicatorRule(rsi, Decimal.valueOf(50)));
Rule sellingRule = new CrossedDownIndicatorRule(sma1, sma3).or(new CrossedDownIndicatorRule(sma2, sma3)).or(new StopLossRule(closePrice, Decimal.valueOf("3")));
final BaseStrategy strategy = new BaseStrategy(buyingRule, sellingRule);
return strategy;
}
use of org.ta4j.core.indicators.RSIIndicator in project ta4j by ta4j.
the class RSI2Strategy method buildStrategy.
/**
* @param series a time series
* @return a 2-period RSI strategy
*/
public static Strategy buildStrategy(TimeSeries series) {
if (series == null) {
throw new IllegalArgumentException("Series cannot be null");
}
ClosePriceIndicator closePrice = new ClosePriceIndicator(series);
SMAIndicator shortSma = new SMAIndicator(closePrice, 5);
SMAIndicator longSma = new SMAIndicator(closePrice, 200);
// We use a 2-period RSI indicator to identify buying
// or selling opportunities within the bigger trend.
RSIIndicator rsi = new RSIIndicator(closePrice, 2);
// Entry rule
// The long-term trend is up when a security is above its 200-period SMA.
Rule entryRule = // Trend
new OverIndicatorRule(shortSma, longSma).and(// Signal 1
new CrossedDownIndicatorRule(rsi, Decimal.valueOf(5))).and(// Signal 2
new OverIndicatorRule(shortSma, closePrice));
// Exit rule
// The long-term trend is down when a security is below its 200-period SMA.
Rule exitRule = // Trend
new UnderIndicatorRule(shortSma, longSma).and(// Signal 1
new CrossedUpIndicatorRule(rsi, Decimal.valueOf(95))).and(// Signal 2
new UnderIndicatorRule(shortSma, closePrice));
return new BaseStrategy(entryRule, exitRule);
}
use of org.ta4j.core.indicators.RSIIndicator in project crypto-bot by jnidzwetzki.
the class ForexStrategy01 method getStrategy.
public Strategy getStrategy() {
EMAIndicator sma1 = new EMAIndicator(closePriceIndicator, 5);
EMAIndicator sma2 = new EMAIndicator(closePriceIndicator, 10);
RSIIndicator rsi = new RSIIndicator(closePriceIndicator, 14);
StochasticOscillatorKIndicator stochK = new StochasticOscillatorKIndicator(timeSeries, 14);
StochasticOscillatorDIndicator stochD = new StochasticOscillatorDIndicator(stochK);
Rule buyingRule = new CrossedUpIndicatorRule(sma1, sma2).and(new OverIndicatorRule(rsi, Decimal.valueOf(50))).and(new OverIndicatorRule(stochK, stochD)).and(new UnderIndicatorRule(stochD, Decimal.valueOf(80)));
Rule sellingRule = new CrossedDownIndicatorRule(sma1, sma2).or(new CrossedDownIndicatorRule(rsi, Decimal.valueOf(50)));
final BaseStrategy strategy = new BaseStrategy(buyingRule, sellingRule);
return strategy;
}
Aggregations