static void Main(string[] args) { // Day0 Stock mtk = new Stock(2454, 500); // 發哥 Stock asus = new Stock(2357, 326.5); // 堅若磐石 Stock skfh = new Stock(2888, 9.31); // 新光金 Stock ctbc = new Stock(2891, 19.25); // 中信金 // 建立兩位投資人 Investor kp = new Investor("柯玟轍", 50000); kp.AddHolding(2357, new Strategy(asus.Clone(), 4, 325, 305)); kp.AddHolding(2891, new Strategy(ctbc.Clone(), 1, 19.4, 19.2)); Investor rd = new Investor("連聖雯", 50000); rd.AddHolding(2454, new Strategy(mtk.Clone(), 2)); rd.AddHolding(2357, new Strategy(asus.Clone(), 2)); rd.AddHolding(2888, new Strategy(skfh.Clone(), 1)); Console.WriteLine("各投資人起始資產\n"); kp.Show(); Console.WriteLine(); rd.Show(); Console.WriteLine(); // Day1 // 更新收盤價 mtk.SetPrice(509); asus.SetPrice(325.5); skfh.SetPrice(9.3); ctbc.SetPrice(19.25); // 投資人根據Day0的收盤價,於Day1執行各自的投資策略 kp.Update(mtk.Clone()); kp.Update(asus.Clone()); kp.Update(skfh.Clone()); kp.Update(ctbc.Clone()); rd.Update(mtk.Clone()); rd.Update(asus.Clone()); rd.Update(skfh.Clone()); rd.Update(ctbc.Clone()); Console.WriteLine("day 1"); kp.Show(); Console.WriteLine(); rd.Show(); Console.WriteLine(); // Day2 完全同Day1 只是改數字 // 更新收盤價 mtk.SetPrice(510); asus.SetPrice(325); skfh.SetPrice(9.34); ctbc.SetPrice(19.45); // 投資人根據Day1的收盤價,於Day2執行各自的投資策略 kp.Update(mtk.Clone()); kp.Update(asus.Clone()); kp.Update(skfh.Clone()); kp.Update(ctbc.Clone()); rd.Update(mtk.Clone()); rd.Update(asus.Clone()); rd.Update(skfh.Clone()); rd.Update(ctbc.Clone()); Console.WriteLine("day 2"); kp.Show(); Console.WriteLine(); rd.Show(); Console.WriteLine(); }
public Strategy(Stock stock, int piece) {// 隨機亂賣的策略 this.rnd = new Random(); this.stock = stock; this.piece = piece; }