5. 股票投資-KD 技術指標計算系統

using System.Linq;

namespace Q5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void button1_Click(object sender, EventArgs e)
        { // C:\Users\User\source\repos\97\Q5\a.txt
            var txt = File.ReadAllText(textBox1.Text);
            var data = txt.Split("\r\n").Select(
                e => e.Split(" ").Select(double.Parse).ToArray()).ToArray();
            //string s = "";
            //for (int x = 0; x < data.Length; x++)
            //{
            //    for (int y = 0; y < data[x].Length; y++)
            //    {

            //    }
            //}
            var k8 = double.Parse(textBox4.Text);
            var d8 = double.Parse(textBox3.Text);

            var k = new double[12];
            k[7] = k8;
            var d = new double[12];
            d[7] = d8;

            for (int i = 8; i <= 11; i++)
            {
                var c = data[2][i] - data[1][0..(i + 1)].Min();
                var m = data[0][0..(i + 1)].Max() -
                    data[1][0..(i + 1)].Min();
                var rsv = c / m * 100;
                k[i] = k[i - 1] * 2 / 3 + rsv / 3;
                d[i] = d[i - 1] * 2 / 3 + k[i] / 3;
            }

            string output = "";
            for (int i = 7; i <= 11; i++)
            {
                output += $"{k[i]:f2} ";
            }
            output = output.Substring(0,output.Length-1);
            output += "\n";
            for (int i = 7; i <= 11; i++)
            {
                output += $"{d[i]:f2} ";
            }
            output = output.Substring(0, output.Length - 1);
            File.WriteAllText(textBox2.Text, output);
        }
    }
}

Last updated