Пример #1
0
 public void sell(IAsset asset, int number)
 {
     // manage C# portfolio
     double price = asset.getPrice();
     Hedging_Portfolio.removeAsset(asset, number);
     cash += price * number;
     Operations_History.AddFirst(new Operation.Operation(DateTime.Now, "sell", asset, number, asset.getPrice()));
     // manage BD portfolio
     if (asset is Equity)
     {
         int asset_id = Access.GetIdFromName(asset.getName());
         double total = Access.getPortfolioComposition(asset_id, DateTime.Today);
         AccessBD.Write.storePortfolioComposition(DateTime.Today, asset_id, total - number);
         AccessDB.setHedgingPortfolioValue(DateTime.Today, (Hedging_Portfolio.getPrice() + cash));
         Write.storeCashValue(DateTime.Today, cash);
     }
     else if (asset is Currency)
     {
         int cur_id = Access.getForexIdFromCurrency(((Currency)asset).getEnum());
         double total = Access.getPortfolioComposition(cur_id, DateTime.Today);
         Write.storePortfolioComposition(DateTime.Today, cur_id, total - number);
         AccessDB.setHedgingPortfolioValue(DateTime.Today, Hedging_Portfolio.getPrice() + cash);
         Write.storeCashValue(DateTime.Today, cash);
     }
 }
Пример #2
0
 public void buy(IAsset asset, int number)
 {
     double price = asset.getPriceEuro(DateTime.Today);
     if (price * number < cash)
     {
         // manage C# portfolio
         Hedging_Portfolio.addAsset(asset, number);
         cash -= price * number;
         Operations_History.AddFirst(new Operation.Operation(DateTime.Now, "buy", asset, number, asset.getPrice()));
         // manage BD portfolio
         if (asset is Equity) {
             int asset_id = Access.GetIdFromName(asset.getName());
             double total = Access.getPortfolioComposition(asset_id, DateTime.Today);
             AccessBD.Write.storePortfolioComposition(DateTime.Today, asset_id, total + number);
             AccessDB.setHedgingPortfolioValue(DateTime.Today, (Hedging_Portfolio.getPrice() + cash));
             Write.storeCashValue(DateTime.Today, cash);
         }
         else if (asset is Currency)
         {
             int cur_id = Access.getForexIdFromCurrency(((Currency)asset).getEnum());
             double total = Access.getPortfolioComposition(cur_id, DateTime.Today);
             Write.storePortfolioComposition(DateTime.Today, cur_id, total + number);
             AccessDB.setHedgingPortfolioValue(DateTime.Today, Hedging_Portfolio.getPrice() + cash);
             Write.storeCashValue(DateTime.Today, cash);
         }
     }
     else
     {
         throw new ArgumentOutOfRangeException("Not enough cash to buy asset(s)");
     }
 }