当前位置: 首页>>代码示例>>Java>>正文


Java TimeSeries.getEndIndex方法代码示例

本文整理汇总了Java中eu.verdelhan.ta4j.TimeSeries.getEndIndex方法的典型用法代码示例。如果您正苦于以下问题:Java TimeSeries.getEndIndex方法的具体用法?Java TimeSeries.getEndIndex怎么用?Java TimeSeries.getEndIndex使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在eu.verdelhan.ta4j.TimeSeries的用法示例。


在下文中一共展示了TimeSeries.getEndIndex方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: subseries

import eu.verdelhan.ta4j.TimeSeries; //导入方法依赖的package包/类
/**
 * Returns a new time series which is a view of a subset of the current series.
 * <p>
 * The new series has begin and end indexes which correspond to the bounds of the sub-set into the full series.<br>
 * The tick of the series are shared between the original time series and the returned one (i.e. no copy).
 * @param series the time series to get a sub-series of
 * @param beginIndex the begin index (inclusive) of the time series
 * @param duration the duration of the time series
 * @return a constrained {@link TimeSeries time series} which is a sub-set of the current series
 */
public static TimeSeries subseries(TimeSeries series, int beginIndex, Duration duration) {

    // Calculating the sub-series interval
    ZonedDateTime beginInterval = series.getTick(beginIndex).getEndTime();
    ZonedDateTime endInterval = beginInterval.plus(duration);

    // Checking ticks belonging to the sub-series (starting at the provided index)
    int subseriesNbTicks = 0;
    int endIndex = series.getEndIndex();
    for (int i = beginIndex; i <= endIndex; i++) {
        // For each tick...
        ZonedDateTime tickTime = series.getTick(i).getEndTime();
        if (tickTime.isBefore(beginInterval) || !tickTime.isBefore(endInterval)) {
            // Tick out of the interval
            break;
        }
        // Tick in the interval
        // --> Incrementing the number of ticks in the subseries
        subseriesNbTicks++;
    }

    return new BaseTimeSeries(series, beginIndex, beginIndex + subseriesNbTicks - 1);
}
 
开发者ID:mdeverdelhan,项目名称:ta4j-origins,代码行数:34,代码来源:WalkForward.java

示例2: calculateMaximumDrawdown

import eu.verdelhan.ta4j.TimeSeries; //导入方法依赖的package包/类
/**
 * Calculates the maximum drawdown from a cash flow over a series.
 * @param series the time series
 * @param cashFlow the cash flow
 * @return the maximum drawdown from a cash flow over a series
 */
private Decimal calculateMaximumDrawdown(TimeSeries series, CashFlow cashFlow) {
    Decimal maximumDrawdown = Decimal.ZERO;
    Decimal maxPeak = Decimal.ZERO;
    if (!series.isEmpty()) {
    	// The series is not empty
     for (int i = series.getBeginIndex(); i <= series.getEndIndex(); i++) {
         Decimal value = cashFlow.getValue(i);
         if (value.isGreaterThan(maxPeak)) {
             maxPeak = value;
         }
	
         Decimal drawdown = maxPeak.minus(value).dividedBy(maxPeak);
         if (drawdown.isGreaterThan(maximumDrawdown)) {
             maximumDrawdown = drawdown;
         }
     }
    }
    return maximumDrawdown;
}
 
开发者ID:mdeverdelhan,项目名称:ta4j-origins,代码行数:26,代码来源:MaximumDrawdownCriterion.java

示例3: getValue

import eu.verdelhan.ta4j.TimeSeries; //导入方法依赖的package包/类
@Override
public T getValue(int index) {
    TimeSeries series = getTimeSeries();
    if (series != null) {
        final int seriesEndIndex = series.getEndIndex();
        if (index <= seriesEndIndex) {
            // We are not after the end of the series
            final int removedTicksCount = series.getRemovedTicksCount();
            int startIndex = Math.max(removedTicksCount, highestResultIndex);
            if (index - startIndex > RECURSION_THRESHOLD) {
                // Too many uncalculated values; the risk for a StackOverflowError becomes high.
                // Calculating the previous values iteratively
                for (int prevIdx = startIndex; prevIdx < index; prevIdx++) {
                    super.getValue(prevIdx);
                }
            }
        }
    }
    
    return super.getValue(index);
}
 
开发者ID:mdeverdelhan,项目名称:ta4j-origins,代码行数:22,代码来源:RecursiveCachedIndicator.java

示例4: getBuySignal

import eu.verdelhan.ta4j.TimeSeries; //导入方法依赖的package包/类
@Override
public boolean getBuySignal(TimeSeries tickers) {

    BuySignalIndicator buySignal = new BuySignalIndicator(tickers, 33, Decimal.valueOf(0.25));

    // Need to go through all index to initialize indicators
    for (int i = tickers.getBeginIndex(); i <= tickers.getEndIndex(); i++) {
        buySignal.getValue(i);
    }

    boolean signal = buySignal.getValue(tickers.getEndIndex());
    LOGGER.debug("buy_trigger: {} (end time={})", signal, tickers.getLastTick().getEndTime());
    return signal;
}
 
开发者ID:jeperon,项目名称:freqtrade-java,代码行数:15,代码来源:AnalyzeServiceImpl.java

示例5: getSplitBeginIndexes

import eu.verdelhan.ta4j.TimeSeries; //导入方法依赖的package包/类
/**
 * Builds a list of split indexes from splitDuration.
 * @param series the time series to get split begin indexes of
 * @param splitDuration the duration between 2 splits
 * @return a list of begin indexes after split
 */
public static List<Integer> getSplitBeginIndexes(TimeSeries series, Duration splitDuration) {
    ArrayList<Integer> beginIndexes = new ArrayList<>();

    int beginIndex = series.getBeginIndex();
    int endIndex = series.getEndIndex();
    
    // Adding the first begin index
    beginIndexes.add(beginIndex);

    // Building the first interval before next split
    ZonedDateTime beginInterval = series.getFirstTick().getEndTime();
    ZonedDateTime endInterval = beginInterval.plus(splitDuration);

    for (int i = beginIndex; i <= endIndex; i++) {
        // For each tick...
        ZonedDateTime tickTime = series.getTick(i).getEndTime();
        if (tickTime.isBefore(beginInterval) || !tickTime.isBefore(endInterval)) {
            // Tick out of the interval
            if (!endInterval.isAfter(tickTime)) {
                // Tick after the interval
                // --> Adding a new begin index
                beginIndexes.add(i);
            }

            // Building the new interval before next split
            beginInterval = endInterval.isBefore(tickTime) ? tickTime : endInterval;
            endInterval = beginInterval.plus(splitDuration);
        }
    }
    return beginIndexes;
}
 
开发者ID:mdeverdelhan,项目名称:ta4j-origins,代码行数:38,代码来源:WalkForward.java


注:本文中的eu.verdelhan.ta4j.TimeSeries.getEndIndex方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。