Ejemplo n.º 1
0
        private void ScheduleEventCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            if (e.Action == NotifyCollectionChangedAction.Add)
            {
                ScheduledEventParams scheduledEventParams = (ScheduledEventParams)e.NewItems[0];
                PlaceSheduledEvent(scheduledEventParams);
            }
            if (e.Action == NotifyCollectionChangedAction.Remove)
            {
                ScheduledEventParams scheduledEventParams = (ScheduledEventParams)e.OldItems[0];
                ScheduledEvent       scheduledEvent       = GetScheduledEventByName(scheduledEventParams.Tag);
                if (scheduledEvent != null)
                {
                    Algorithm.Schedule.Remove(scheduledEvent);
                }
            }

            if (Algorithm.LiveMode)
            {
                using (var stream = File.Open(json_path, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
                {
                    JsonWriter writer = new JsonTextWriter(new StreamWriter(stream));
                    serializedIEnumerableScheduledEventJsonConverter.WriteJson(writer, _scheduledEventParams, serializer);
                    writer.Flush();
                    writer.DisposeSafely();
                }
            }
        }
 /// <summary>
 /// Creates a new SerializedScheduledEventParams instance based on the provided ScheduledEventParams
 /// </summary>
 /// <param name="scheduledEventParams"></param>
 public SerializedScheduledEventParams(ScheduledEventParams scheduledEventParams)
 {
     Name        = scheduledEventParams.Name;
     ExpiryTime  = Time.DateTimeToUnixTimeStamp(scheduledEventParams.ExpiryTime);
     Tag         = scheduledEventParams.Tag;
     Quantity    = scheduledEventParams.Quantity;
     OrderReason = scheduledEventParams.OrderReason;
     Symbol      = scheduledEventParams.Symbol.ID.ToString();
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Remove scheduledEventParams which is converted to ScheduledEvent and removed from SheduleManager
        /// </summary>
        /// <param name="scheduledEventTag"></param>
        public void Remove(string scheduledEventTag)
        {
            ScheduledEventParams scheduledEventParams = GetScheduledEventParams(scheduledEventTag);

            if (scheduledEventParams != null)
            {
                _scheduledEventParams.Remove(scheduledEventParams);
                OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, scheduledEventParams));
            }
        }
Ejemplo n.º 4
0
 private void PlaceSheduledEvent(ScheduledEventParams scheduledEventParams)
 {
     Algorithm.Schedule.On(scheduledEventParams.Tag,
                           Algorithm.Schedule.DateRules.On(scheduledEventParams.ExpiryTime.Date),
                           Algorithm.Schedule.TimeRules.At(scheduledEventParams.ExpiryTime.TimeOfDay, TimeZones.Utc),
                           () =>
     {
         Algorithm.MarketOrderWrapper(scheduledEventParams.Symbol,
                                      scheduledEventParams.Quantity,
                                      orderReason: scheduledEventParams.OrderReason,
                                      tag: scheduledEventParams.Tag);
     });
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Add scheduledEventParams which is converted to ScheduledEvent and placed in SheduleManager
 /// </summary>
 /// <param name="scheduledEventParams"></param>
 public void Add(ScheduledEventParams scheduledEventParams)
 {
     _scheduledEventParams.Add(scheduledEventParams);
     OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, scheduledEventParams));
 }