Android 如何在碎片上绘制加密货币的指数移动平均数据?

Android 如何在碎片上绘制加密货币的指数移动平均数据?,android,charts,moving-average,cryptoapi,ohlc,Android,Charts,Moving Average,Cryptoapi,Ohlc,我正在开发一个应用程序,使用API从exchange获取加密货币数据。我能够成功地获取和分析数据(使用TA-LIB计算EMA、MA),但不确定在片段(用户界面)上绘制此数据的最佳方式。这就像在片段上绘制实时加密数据。感谢您的帮助。我的代码如下 import com.binance.api.client.BinanceApiClientFactory; import com.binance.api.client.BinanceApiRestClient; import com.binance.ap

我正在开发一个应用程序,使用API从exchange获取加密货币数据。我能够成功地获取和分析数据(使用TA-LIB计算EMA、MA),但不确定在片段(用户界面)上绘制此数据的最佳方式。这就像在片段上绘制实时加密数据。感谢您的帮助。我的代码如下

import com.binance.api.client.BinanceApiClientFactory;
import com.binance.api.client.BinanceApiRestClient;
import com.binance.api.client.domain.market.Candlestick;
import com.binance.api.client.domain.market.CandlestickInterval;
import com.tictactec.ta.lib.Core;
import com.tictactec.ta.lib.MInteger;

import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.TreeMap;
import java.util.stream.Collectors;

public class GET_EMA
{
    private Map<Long, Candlestick> candlesticksCache = new TreeMap<>();
    public static final int TOTAL_PERIODS=300;
    double[] result_ema=new double[TOTAL_PERIODS];
    private static double[] values;
    private static final int LOOKBACK = 10;
    private static final double EXTRA_VALUE = 100000;
    MInteger begin = new MInteger();
    MInteger length = new MInteger();
    private long m_LastOpenTime=0;

    public static void main(String[] pArgs)
    {
    }
    public GET_EMA(){
        //Default Constructor
    }
    public GET_EMA(String symbol,CandlestickInterval interval)
    {
        Locale.setDefault(Locale.US);
        Calculate_EMA(symbol,interval);
    }
    public String Calculate_EMA(String symbol, CandlestickInterval interval)
    {
        //Initialize Binance API
        BinanceApiClientFactory factory = BinanceApiClientFactory.newInstance();
        BinanceApiRestClient client = factory.newRestClient();
        //GET Required EMA Value
        List<Candlestick> candlestickBars = client.getCandlestickBars(symbol.toUpperCase(), interval, Integer.valueOf(TOTAL_PERIODS), null, null);
        List<Double> closingPriceList = candlestickBars.stream().map(c -> Double.valueOf(c.getClose())).collect(Collectors.toList());
    //        System.out.println("Total Candlesticks : "+candlestickBars.size());
//        System.out.println(Arrays.toString(closingPriceList.toArray()));
        double values[]=new double[closingPriceList.size()];
        for(int i=0;i<closingPriceList.size();i++)
        {
            values[i]=closingPriceList.get(i);
        }
            Core talib=new Core();
            int emaValue=26;
            int pos=TOTAL_PERIODS-emaValue;
            talib.ema(0,values.length-1,values,emaValue,begin,length,result_ema);
            String ema=String.valueOf(result_ema[pos]);
            return ema;
    }
}
import com.binance.api.client.BinanceApiClientFactory;
导入com.binance.api.client.BinanceApiRestClient;
导入com.binance.api.client.domain.market.Candlestick;
导入com.binance.api.client.domain.market.candlestickintrval;
导入com.tictactec.ta.lib.Core;
导入com.tictactec.ta.lib.MInteger;
导入java.util.List;
导入java.util.Locale;
导入java.util.Map;
导入java.util.TreeMap;
导入java.util.stream.collector;
公共类获取
{
私有映射candlestickcache=newtreemap();
公共静态最终整数总周期=300;
double[]结果=新的double[总周期];
私有静态双[]值;
私有静态最终int回望=10;
专用静态最终双额外_值=100000;
MInteger begin=新的MInteger();
MInteger长度=新的MInteger();
私有长m_LastOpenTime=0;
公共静态void main(字符串[]pArgs)
{
}
公众获取(EMA){
//默认构造函数
}
公共GET_EMA(字符串符号、烛台间隔)
{
setDefault(Locale.US);
计算_EMA(符号、间隔);
}
公共字符串计算(字符串符号,烛台间隔)
{
//初始化二进制API
BinanceApiClientFactory工厂=BinanceApiClientFactory.newInstance();
BinanceApiRestClient=factory.newRestClient();
//获取所需的EMA值
List candlestickbar=client.getcandlestickbar(symbol.toUpperCase(),interval,Integer.valueOf(TOTAL_PERIODS),null,null);
List-closingpriclist=candlestickbar.stream().map(c->Double.valueOf(c.getClose()).collect(Collectors.toList());
//System.out.println(“总烛台数:+candlestickbar.size());
//System.out.println(Arrays.toString(closingPriceList.toArray());
双精度值[]=新双精度值[closingPriceList.size()];
对于(int i=0;i