Exemplo n.º 1
0
        public void Run()
        {
            // Data를 준비한다.
            _strategy.ReadyData();
            ExperimentData experimentData = new ExperimentData(_strategy.GetInput());
            experimentData.TotalCaseCount = (int)_strategy.GetPossibleCase();

            for (int i = 0; i < _strategy.GetPossibleCase(); ++i)
            {
                // 실행한다.
                AssetWeightLog log = _strategy.Execute(i);
                // 결과를 보여준다.
                ProfitAndLossResult result = _strategy.GetResult(log);
                experimentData.CurCaseCount = i + 1;
                foreach (IResultHandler handler in _resultHandlers)
                {
                    handler.HandleResult(experimentData, result);
                }
            }
            _strategy.InternalLogToCsv();
        }
Exemplo n.º 2
0
 void AddNewResult_Raw(ExperimentData experimentData, ProfitAndLossResult result)
 {
     _result.Add(result);
     UpdateDataGridView(experimentData);
 }
Exemplo n.º 3
0
 public void HandleResult(ExperimentData experimentData, ProfitAndLossResult result)
 {
     this.Invoke(new AddNewResult(AddNewResult_Raw), new object[] { experimentData, result });
     //this.Invoke(new AddNewResult(AddNewResult_Raw), result);
 }
Exemplo n.º 4
0
        void UpdateDataGridView(ExperimentData experimentData)
        {
            textBox1.Text = experimentData.ToString();
            dataGridView1.Rows.Clear();

            foreach (ProfitAndLossResult row in _result)
            {
                double yearPnLPerMDD = row.PPM;
                if (double.IsNaN(yearPnLPerMDD))
                {
                    continue;
                }
                int index = dataGridView1.Rows.Add();
                dataGridView1.Rows[index].Cells[0].Value = row.Key;
                dataGridView1.Rows[index].Cells[1].Value = yearPnLPerMDD.ToString("n3");
                double roi = row.AvgPnLPerYear;
                dataGridView1.Rows[index].Cells[2].Value = roi.ToString("n0");
            }
        }