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() }); } } } }
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) { } } }
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); } } }
//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)); }
public void OnData(DailyFx calendar) { _uniqueConfirmation.Add(calendar.ToString(), calendar); Console.WriteLine("ONDATA >> {0}: {1}", _eventCount++, calendar); }