public static ZooData Calculate(
            String instKey, AdjTable adjTable, DateTime from, DateTime until, double investAmount)
        {
            SortedList<DateTime, double> adjs = adjTable.Data[instKey];
            SortedList<DateTime, double> investAmts = CreateInvestAmount(adjs, investAmount);
            SortedList<DateTime, double> instData = MarketDataManager.Ins().GetData(instKey);
            SortedList<DateTime, double> increments = ConvertUtil.ToIncrement(instData);

            // create pivot dates
            List<DateTime> pivotDates = CreatePivotDates(from, until, instData);

            // create ZooData, Set adj and instData
            ZooData zoo = new ZooData();
            zoo.SetPivotDates(pivotDates);
            zoo.Append("insts", instData); // instruments market data
            zoo.Append("increments", increments);
            zoo.Append("adjs", adjs, 1.0);
            zoo.Append("investAmts", investAmts);

            SortedList<DateTime, double> pnls = CalculatePnl(zoo, investAmount);
            SortedList<DateTime, double> sum = ConvertUtil.ToSum(pnls);

            zoo.Append("pnls", pnls);
            zoo.Append("sum", sum);

            return zoo;
        }
Exemple #2
0
 public void Fill(ZooData data)
 {
     Name            = data.Name;
     Popular         = data.Popular;
     VisitorLike     = data.VisitorLike;
     Price           = data.Price;
     VisitorCount    = data.VisitorCount;
     ExpectIncome    = data.ExpectIncome;
     AnimalCount     = data.AnimalCount;
     AnimalHappiness = data.AnimalHappiness;
 }
Exemple #3
0
    public static void OnRefresh(this UI_TabZooInfo ui, ZooData zooData, int money)
    {
        ui.m_LabelName.SetText(zooData.Name);
        ui.m_StarLevelPopular.SetStarLevel(zooData.Popular);
//        ui.m_StarLevelLike.SetStarLevel(zooData.VisitorLike);
        ui.m_LabelVisitor.SetText(zooData.VisitorCount);
        ui.m_LabelMoney.SetText(money);
        ui.m_LabelIncome.SetText(zooData.ExpectIncome);
        ui.m_LabelPrice.SetText(zooData.Price);
        ui.m_BtnSettingPrice.onClick.Set((() =>
        {
            GameEntry.UI.OpenUIForm <UI_PanelZooSetting>();
        }));
    }
        static SortedList<DateTime, double> CalculatePnl(ZooData zoo, double investAmount)
        {
            SortedList<DateTime, double> pnls = new SortedList<DateTime, double>();

            double prevAdj = 1.0;

            foreach (DateTime cur in zoo.PivotDates)
            {
                Dictionary<String, double> curDict = zoo.Data[cur];

                double curIncrement = curDict["increments"];
                double curPnl = curIncrement * prevAdj * investAmount;

                pnls.Add(cur, curPnl);

                double curAdj = curDict["adjs"];
                prevAdj = curAdj;
            }
            return pnls;
        }
 void ReportResultData()
 {
     ZooData zoo = new ZooData();
     zoo.SetPivot("CumPnl", GetCumPnls());
     zoo.Append("Index", _marketData);
     zoo.Append("Investment", GetInvestments());
     zoo.ToCsv(String.Format("C:\\report\\result_data_{0}.csv", this.Key));
 }
Exemple #6
0
 public override void ClearData()
 {
     ZooData = new ZooData();
 }
Exemple #7
0
 public override void LoadDataFromJson(string json)
 {
     ZooData = JsonUtility.FromJson <ZooData>(json);
 }