コードをJavaに変更できますか？
Javaの同じ概念の同様の実装です。

`` Java
java.util.arraylistをインポートします。
java.util.listをインポートします。

パブリッククラスBuysellStrategy {
    public static void main（string [] args）{
        リスト<double> closeprices = new ArrayList <>（）;
        //ストックデータをロードして、ClosePricesリストに追加します

        // MACDラインと信号線を計算します
        double [] macd = new double [closeprices.size（）];
        double [] signal = new double [closeprices.size（）];
        double [] hist = new double [closeprices.size（）];
        int fastperiod = 12;
        int slowperiod = 26;
        int signalperiod = 9;
        // MACD計算の実装はここにあります

        // MACD値を保存する新しいリストを作成します
        リスト<double> macdlist = new ArrayList <>（）;
        リスト<double> Signallist = new ArrayList <>（）;
        リスト<double> histlist = new ArrayList <>（）;
        for（int i = 0; i <macd.length; i ++）{
            macdlist.add（macd [i]）;
            Signallist.Add（Signal [i]）;
            histlist.add（hist [i]）;
        }
        
        //取引信号を保存する新しいリスト「位置」を作成する
        List <Integer> positions = new ArrayList <>（）;
        for（int i = 0; i <macdlist.size（）; i ++）{
            if（macdlist.get（i）> signallist.get（i））{
                positions.add（1）;
            } それ以外 {
                positions.add（-1）;
            }
        }
        
        //現在の日の信号を避けるために信号を1でシフトします
        positions.remove（0）;
        positions.add（0、0）;
        
        //戦略の累積リターンを保存するための新しいリスト「戦略」を作成する
        リスト<double>戦略= new ArrayList <>（）;
        for（int i = 0; i <closeprices.size（）; i ++）{
            double cumreturn =（closeprices.get（i） -  closeprices.get（i -1）） / closeprices.get（i -1）;
            Strategy.Add（Cumreturn * positions.get（i -1））;
        }
        
        //戦略の累積リターンをプロットします
        //このためにライブラリをプロットする必要があります
    }
} `` `