Exemple #1
0
        internal bool goal_seek_newton(ref GoalSeekData data, ref RateData user_data, double x0)
        {
            double num2 = data.precision / 2.0;

            for (int i = 0; i < 100; i++)
            {
                double y    = 0.0;
                double num6 = 0.0;
                if ((x0 < data.xmin) || (x0 > data.xmax))
                {
                    return(false);
                }
                bool flag = this.rate_f(x0, ref y, ref user_data);
                if (!flag)
                {
                    return(flag);
                }
                if (FinancialHelper.update_data(x0, y, ref data))
                {
                    return(true);
                }
                flag = this.rate_df(x0, ref num6, ref user_data);
                if (!flag)
                {
                    return(flag);
                }
                if (num6 == 0.0)
                {
                    return(false);
                }
                double num3 = x0 - ((1.000001 * y) / num6);
                if (num3 == x0)
                {
                    data.root = x0;
                    return(true);
                }
                double num4 = Math.Abs((double)(num3 - x0)) / (Math.Abs(x0) + Math.Abs(num3));
                x0 = num3;
                if (num4 < num2)
                {
                    data.root = x0;
                    return(true);
                }
            }
            return(false);
        }
Exemple #2
0
 public static void AddRateLimit(long UID)
 {
     if (IsRateDataTracking(UID))
     {
         int DataID = GetRateDataIDByID(UID);
         Vars.RateLimits[DataID].MessageCount += 1;
     }
     else
     {
         RateData Data = new RateData
         {
             UID          = UID,
             MessageCount = 1
         };
         Vars.RateLimits.Add(Data);
     }
 }
Exemple #3
0
 public static void AddRateLimit(long uid)
 {
     if (IsRateDataTracking(uid))
     {
         var dataId = GetRateDataIndexByID(uid);
         Vars.RateLimits[dataId].MessageCount += 1;
     }
     else
     {
         var data = new RateData
         {
             UID          = uid,
             MessageCount = 1
         };
         Vars.RateLimits.Add(data);
     }
 }
        public bool SubmitNewRateUsage(UUID ID)
        {
            if (RateLimiter.ContainsKey(ID))
            {
                RateData RD = RateLimiter[ID];
                if (RD.SubmitCount < HardLimit)
                {
                    RD.SubmitCount++;

                    if (RD.Reset_At < DateTime.Now)
                    {
                        RD.Reset_At    = DateTime.Now.AddDays(7);
                        RD.SubmitCount = 1;
                    }

                    RateLimiter[ID] = RD;
                    Save();
                    return(true);
                }
                else
                {
                    if (RD.Reset_At < DateTime.Now)
                    {
                        RateLimiter.Remove(ID);
                        return(SubmitNewRateUsage(ID));
                    }
                    else
                    {
                        //MHE(MessageHandler.Destinations.DEST_LOCAL, UUID.Zero, "submitcount is greater or equal to hardlimit. reset_at is greater than current date");
                        return(false);
                    }
                }
            }
            else
            {
                RateData RD = new RateData();
                RD.User     = ID;
                RD.Reset_At = DateTime.Now.AddDays(7);
                RD.SubmitCount++;
                RateLimiter.Add(ID, RD);
                Save();
                return(true);
            }
        }
Exemple #5
0
        private void LoadData()
        {
            var xml = new XmlDocument();

            xml.LoadXml(result);

            foreach (XmlElement element in xml.DocumentElement)
            {
                var rate = new RateData();
                Rates.Add(rate);
                rate.Date = DateTime.Parse(element.GetAttribute("date"));
                var childElement = (XmlElement)element.ChildNodes[0];
                rate.Currency = childElement.GetAttribute("curr");
                var unit  = decimal.Parse(childElement.GetAttribute("unit"));
                var value = decimal.Parse(childElement.InnerText);
                if (unit != 0)
                {
                    rate.Value = value / unit;
                }
            }
        }
Exemple #6
0
        private void RefreshData()
        {
            Rates.Clear();

            var mnbService = new MNBArfolyamServiceSoapClient();
            var request    = new GetExchangeRatesRequestBody()
            {
                currencyNames = (comboBox1.SelectedItem).ToString(),
                startDate     = (dateTimePicker1.Value).ToString(),
                endDate       = (dateTimePicker2.Value).ToString()
            };

            var response = mnbService.GetExchangeRates(request);
            var result   = response.GetExchangeRatesResult;

            var xml = new XmlDocument();

            xml.LoadXml(result);

            foreach (XmlElement element in xml.DocumentElement)
            {
                var rate = new RateData();
                Rates.Add(rate);


                rate.Date = DateTime.Parse(element.GetAttribute("date"));

                var childElement = (XmlElement)element.ChildNodes[0];
                rate.Currency = childElement.GetAttribute("curr");

                var unit  = decimal.Parse(childElement.GetAttribute("unit"));
                var value = decimal.Parse(childElement.InnerText);
                if (unit != 0)
                {
                    rate.Value = value / unit;
                }
            }
            //comboBox1.DataSource = Currencies;
            dataGridView1.DataSource = Rates;
        }
Exemple #7
0
        private void ProcessXmlOutput()
        {
            XmlDocument xml = new XmlDocument();

            xml.LoadXml(resultOutput);

            foreach (XmlElement element in xml.DocumentElement)
            {
                RateData r = new RateData();
                RatesOutput.Add(r);

                r.Date = DateTime.Parse(element.GetAttribute("date"));

                var childElement = (XmlElement)element.ChildNodes[0];
                r.Currency = childElement.GetAttribute("curr");

                var unit  = decimal.Parse(childElement.GetAttribute("unit"));
                var value = decimal.Parse(childElement.InnerText);
                if (unit != 0)
                {
                    r.Value = value / unit;
                }
            }
        }
 public void SetRate(string zoneId, double peak, double offPeak)
 {
     rates[zoneId] = new RateData {
         PeakRate = peak, OffPeakRate = offPeak
     };
 }
Exemple #9
0
    public static IEnumerator Rate(RateData rateData)
    {
        var uri     = "/rate/post";
        var request = new UnityWebRequest(CytoidApplication.Host + uri, "POST")
        {
            timeout = 10
        };
        var body = JsonConvert.SerializeObject(rateData);

#if UNITY_EDITOR
        Debug.Log(body);
#endif

        var bodyRaw = Encoding.UTF8.GetBytes(body);
        request.uploadHandler   = new UploadHandlerRaw(bodyRaw);
        request.downloadHandler = new DownloadHandlerBuffer();
        request.SetRequestHeader("Content-Type", "application/json");

        yield return(request.Send());

        if (request.isNetworkError)
        {
            LastRateResult = new RateResult
            {
                status  = -1,
                message = "Please check your network."
            };
        }
        else
        {
            if (request.responseCode == 200)
            {
                try
                {
                    LastRateResult =
                        JsonConvert.DeserializeObject <RateResult>(request.downloadHandler.text);
                    LastRateResult.status = 200;
                }
                catch (Exception e)
                {
                    Log.e(e.Message);
                    LastRateResult = new RateResult
                    {
                        status  = -1,
                        message = "Invalid response."
                    };
                    yield break;
                }
            }
            else
            {
                LastRateResult = new RateResult
                {
                    status  = (int)request.responseCode,
                    message = request.downloadHandler.text
                };
            }
        }

        request.Dispose();
    }
Exemple #10
0
 private static IEnumerable<JsonProperty> ToJsonProperties(RateData rate)
 {
     yield return new JsonProperty("MeanRate", rate.MeanRate);
     yield return new JsonProperty("OneMinuteRate", rate.OneMinuteRate);
     yield return new JsonProperty("FiveMinuteRate", rate.FiveMinuteRate);
     yield return new JsonProperty("FifteenMinuteRate", rate.FifteenMinuteRate);
 }
Exemple #11
0
        internal bool goal_seek_bisection(ref GoalSeekData data, ref RateData user_data)
        {
            int num3 = 0;

            if (data.havexpos && data.havexneg)
            {
                double num2 = Math.Abs((double)(data.xpos - data.xneg)) / (Math.Abs(data.xpos) + Math.Abs(data.xneg));
                for (int i = 0; i < 160; i++)
                {
                    double xneg;
                    double xpos;
                    double yneg;
                    double num11;
                    double y    = 0.0;
                    int    num6 = 0;
                    num6 = ((i % 4) == 0) ? 1 : (((i % 4) == 2) ? 2 : 3);
Label_0068:
                    switch (num6)
                    {
                    case 0:
                        xneg = data.xpos - (data.ypos * ((data.xneg - data.xpos) / (data.yneg - data.ypos)));
                        goto Label_0274;

                    case 1:
                        xneg = (data.xpos + data.xneg) / 2.0;
                        if (!this.rate_f(xneg, ref y, ref user_data))
                        {
                            continue;
                        }
                        if (y != 0.0)
                        {
                            break;
                        }
                        FinancialHelper.update_data(xneg, y, ref data);
                        return(true);

                    case 2:
                        yneg  = 0.0;
                        num11 = 0.0;
                        if (num2 <= 0.1)
                        {
                            goto Label_017F;
                        }
                        num6 = 3;
                        goto Label_0068;

                    case 3:
                        xneg = (data.xpos + data.xneg) / 2.0;
                        goto Label_0274;

                    default:
                        return(false);
                    }
                    double num7 = Math.Sqrt((y * y) - (data.ypos * data.yneg));
                    if (num7 == 0.0)
                    {
                        continue;
                    }
                    xneg += ((xneg - data.xpos) * y) / num7;
                    goto Label_0274;
Label_017F:
                    switch ((num3++ % 4))
                    {
                    case 0:
                        xpos = data.xpos;
                        xpos = data.ypos;
                        break;

                    case 2:
                        xpos = data.xneg;
                        yneg = data.yneg;
                        break;

                    default:
                        xpos = (data.xpos + data.xneg) / 2.0;
                        if (!this.rate_f(xpos, ref yneg, ref user_data))
                        {
                            continue;
                        }
                        break;
                    }
                    double xstep = Math.Abs((double)(data.xpos - data.xneg)) / 1000000.0;
                    if (!this.fake_df(xpos, ref num11, xstep, ref data, ref user_data) || (num11 == 0.0))
                    {
                        continue;
                    }
                    xneg = xpos - ((1.01 * yneg) / num11);
                    if (((xneg < data.xpos) && (xneg < data.xneg)) || ((xneg > data.xpos) && (xneg > data.xneg)))
                    {
                        continue;
                    }
Label_0274:
                    if (this.rate_f(xneg, ref y, ref user_data))
                    {
                        if (FinancialHelper.update_data(xneg, y, ref data))
                        {
                            return(true);
                        }
                        num2 = Math.Abs((double)(data.xpos - data.xneg)) / (Math.Abs(data.xpos) + Math.Abs(data.xneg));
                        if (num2 < data.precision)
                        {
                            if (data.yneg < y)
                            {
                                y = data.yneg;
                            }
                            xneg = data.xneg;
                            if (data.ypos < y)
                            {
                                y = data.ypos;
                            }
                            xneg      = data.xpos;
                            data.root = xneg;
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }
Exemple #12
0
        internal bool fake_df(double x, ref double dfx, double xstep, ref GoalSeekData data, ref RateData user_data)
        {
            double y    = 0.0;
            double num4 = 0.0;
            double rate = x - xstep;

            if (rate < data.xmin)
            {
                rate = x;
            }
            double num2 = x + xstep;

            if (num2 > data.xmax)
            {
                num2 = x;
            }
            if (rate == num2)
            {
                return(false);
            }
            bool flag = this.rate_f(rate, ref y, ref user_data);

            if (!flag)
            {
                return(flag);
            }
            flag = this.rate_f(num2, ref num4, ref user_data);
            if (!flag)
            {
                return(flag);
            }
            dfx = (num4 - y) / (num2 - rate);
            return(true);
        }
Exemple #13
0
 public ItemCollection(RateData owner, IBarsData bars, ValueType valueType)
 {
     _owner     = owner;
     _bars      = bars;
     _valueType = valueType;
 }
Exemple #14
0
 public bool AddRates(RateData rate)
 {
     db.RateDatas.Add(rate);
     return(db.SaveChanges() > 0);
 }