Пример #1
0
        public void OnData(DailyFx calendar)
        {
            if (calendar.Importance != FxDailyImportance.High)
            {
                return;
            }


            long l  = (30 * 24 * 60 * 60);
            long le = (10 * 24 * 60 * 60);

            foreach (var rule in trades)
            {
                var currency = Securities[rule.Symbol].QuoteCurrency.Symbol;
                if (calendar.Currency.ToUpper().Equals(currency))
                {
                    if (rule.setupTime - l < Utils.ToUnixTimestamp(calendar.EventDateTime) && (rule.exitTime + le > Utils.ToUnixTimestamp(calendar.EventDateTime) || rule.expirationTime + le > Utils.ToUnixTimestamp(calendar.EventDateTime)))
                    {
                        rule.Events.Add(new CalendarEvent
                        {
                            date     = Utils.ToUnixTimestamp(calendar.EventDateTime),
                            forecast = calendar.Forecast,
                            actual   = calendar.Actual,
                            title    = calendar.Title,
                            currency = currency,
                            price    = Securities[rule.Symbol].Price,
                            meaning  = calendar.Meaning.ToString()
                        });
                    }
                }
            }
        }
Пример #2
0
        public void OnData(DailyFx calendar)
        {
            if (!Portfolio.Invested || calendar.Importance != FxDailyImportance.High)
            {
                return;
            }

            foreach (var symbol in Symbols)
            {
                if (calendar.Meaning == FxDailyMeaning.Better && Portfolio[symbol].IsShort)
                {
                }
                else if (calendar.Meaning == FxDailyMeaning.Worse && Portfolio[symbol].IsLong)
                {
                }
            }
        }
Пример #3
0
        public void OnData(DailyFx calendar)
        {
            if (!Portfolio.Invested || calendar.Importance != FxDailyImportance.High)
            {
                return;
            }

            foreach (var symbol in Symbols)
            {
                if (calendar.Meaning == FxDailyMeaning.Better && Portfolio[symbol].IsShort)
                {
                    _tradingAssets[symbol].IsTradable = false;
                    _tradingAssets[symbol].Liquidate();
                    Task.Delay(1000 * 60 * 60).ContinueWith(t => _tradingAssets[symbol].IsTradable = true);
                }
                else if (calendar.Meaning == FxDailyMeaning.Worse && Portfolio[symbol].IsLong)
                {
                    _tradingAssets[symbol].IsTradable = false;
                    _tradingAssets[symbol].Liquidate();
                    Task.Delay(1000 * 60 * 60).ContinueWith(t => _tradingAssets[symbol].IsTradable = true);
                }
            }
        }
Пример #4
0
 //we create a DailyFx event handler but insights will be produced in the Alpha Model
 public void OnData(DailyFx data)
 {
 }
 /// <summary>
 /// Trigger an event on a complete calendar event which has an actual value.
 /// </summary>
 public void OnData(DailyFx calendar)
 {
     // Used to validate the data is unique.
     _uniqueConfirmation.Add(calendar.ToString(), calendar);
     Debug(string.Format("ONDATA >> {0}: {1}", _eventCount++, calendar));
 }
Пример #6
0
 public void OnData(DailyFx calendar)
 {
     _uniqueConfirmation.Add(calendar.ToString(), calendar);
     Console.WriteLine("ONDATA >> {0}: {1}", _eventCount++, calendar);
 }