private static void MapSignalWithNoParameters( IView view, BaseSignal signal, string baseName) { var type = view.GetType(); var methodName = "On" + baseName; var method = type.GetMethods(BINDING_FLAGS) .Where(x => x.GetParameters().Length == 0) .FirstOrDefault(x => x.Name.Equals(methodName)); if (method != null) { var signalMapping = view.SignalMappings.FirstOrDefault(x => x.Name.Equals(baseName)); if (signalMapping == null) { var mappingType = typeof(SignalMap); signalMapping = (ISignalMapping)Activator.CreateInstance(mappingType, baseName, signal); view.SignalMappings.Add(signalMapping); } var actionType = typeof(Action); var action = (Action)Delegate.CreateDelegate(actionType, view, method); var command = new ActionCommand(action); ReflectionCommon.InvokeMethod(signalMapping, "RegisterCommand", new object[] { command }); } }
private void CmbSignals_SelectedIndexChanged(object sender, EventArgs e) { ComboBox comboBox = sender as ComboBox; if (comboBox == null) { throw new NullReferenceException(nameof(sender)); } switch (comboBox.SelectedIndex) { case 0: signal = new SinSignal(); break; case 1: signal = new ImpulseSignal(); break; case 2: signal = new TriangleSignal(); break; case 3: signal = new SawtoothSignal(); break; } }
private static void MapSignalWithTwoParameters( IView view, BaseSignal signal, string baseName) { var type = view.GetType(); var signalType = GetSignalType(signal); var methodName = "On" + baseName; var method = type.GetMethods(BINDING_FLAGS) .Where(x => x.GetParameters().Length == 2) .Where(x => x.GetParameters()[0].ParameterType == signalType.GetGenericArguments()[0] && x.GetParameters()[1].ParameterType == signalType.GetGenericArguments()[1]) .FirstOrDefault(x => x.Name.Equals(methodName)); if (method != null) { var signalMapping = view.SignalMappings.FirstOrDefault(x => x.Name.Equals(baseName)); if (signalMapping == null) { var mappingType = typeof(SignalMap <,>).MakeGenericType(signalType.GetGenericArguments()); signalMapping = (ISignalMapping)Activator.CreateInstance(mappingType, baseName, signal); view.SignalMappings.Add(signalMapping); } var actionType = typeof(Action <,>).MakeGenericType(signalType.GetGenericArguments()); var action = Delegate.CreateDelegate(actionType, view, method); var commandType = typeof(ActionCommand <,>).MakeGenericType(signalType.GetGenericArguments()); var command = Activator.CreateInstance(commandType, action); ReflectionCommon.InvokeMethod(signalMapping, "RegisterCommand", new[] { command }); } }
public override void DispatchTo(BaseSignal triggeringSignal) { if (!(triggeringSignal is Signal <A>)) { throw new Exception("TODO"); } (triggeringSignal as Signal <A>).Dispatch(First); }
public override void destroy() { srStopLoss = null; fixedPipTakeProfit = null; percentRiskProfile = null; breakEvenStopLoss = null; timeOfDayFilter = null; maCross = null; }
public MaCrossStrategy(Int64 ix) : base(ix) { LOG.Debug("MaCrossStrategy() called"); srStopLoss = new SRStopLoss(this); fixedPipTakeProfit = new FixedPipTakeProfit(this, 10); percentRiskProfile = new PercentRiskProfile(this, 0, 0.02, 5); breakEvenStopLoss = new BreakEvenStopLoss(this, 5, 1); timeOfDayFilter = new TimeOfDayFilter(this, new LocalTime(9, 0), new LocalTime(23, 0)); maCross = new MACross(this); }
private static Type GetSignalType(BaseSignal signal) { var signalType = signal.GetType(); while (signalType.BaseType != typeof(BaseSignal)) { signalType = signalType.BaseType; } return(signalType); }
public void Generate(object sender, RoutedEventArgs e) { BaseSignal s = (BaseSignal)SelectedSignal.Signal.Clone(); s.Params = Params; Signal = s.ToDiscrete(Frequency); OriginalSignal = s.ToDiscrete(Frequency); StatsController.CalculateSignalsStats(Signal, Params); ReplotChartAndHistogram(); }
public void TestBaseOnce() { BaseSignal signal = new BaseSignal(); signal.AddOnce(BaseSignalCallback); signal.Dispatch(new object[] {}); Assert.AreEqual(testValue, baseSignalValue); signal.Dispatch(new object[] { }); Assert.AreEqual(testValue, baseSignalValue); }
public static void OnSignalDispatch(BaseSignal s, int nonbaseListeners, params object[] parametersToStrings) { if (Context.DebuggingOptions == null || !Context.DebuggingOptions.LogSignalDispatches) { return; } Type type = s.GetType(); string className = type.Name; if (type.IsNested) { string[] parts = type.FullName.Split('.'); parts = parts[parts.Length - 1].Split('+'); Assert.IsTrue(parts.Length == 2); className = FilterEndingsAndJoin(CamelCaseToArray(parts[0])) + " -> " + ColourNestedSignal(parts[1]); } else { className = FilterEndingsAndJoin(CamelCaseToArray(className)); } int count = s.BaseSubscriptionCount + nonbaseListeners; string p = ""; if (parametersToStrings.Length > 0) { p = "Parameters: ("; for (int i = 0; i < parametersToStrings.Length; i++) { p += parametersToStrings[i].ToString(); if (i > 0) { p += ", "; } } p += ")"; } Debug.Log(className.Colored(Colors.teal) + " - " + DetermineSignalType(type.Name) + " Dispatched to " + count + " subscriber(s) \n" + p + "\n" + type.FullName + "\n"); }
public static UniRx.IObservable <object> ToObservable(this SignalRequester[] requests, BaseSignal[] returns) { if (returns == null || returns.Length == 0) { throw new ArgumentNullException("returns not valid"); } Subject <object> notYetReturned = new Subject <object>(); List <BaseSignal> returnsLeft = new List <BaseSignal>(returns); for (int i = 0; i < returns.Length; i++) { BaseSignal ret = returns[i]; Action <IBaseSignal, object[]> handler = null; handler = (s, xs) => { if (!returnsLeft.Contains(ret)) { throw new Exception("Something went wrong..."); } Assert.AreEqual(s, ret); ret.RemoveListener(handler); returnsLeft.Remove(ret); notYetReturned.OnNext(ret); if (returnsLeft.Count == 0) { notYetReturned.OnCompleted(); } }; ret.AddListener(handler); } return(notYetReturned); }
public SignalDialogButtonData(string caption, BaseSignal signal) : base(caption) { this.signal = signal; }
public BaseSignalListener(BaseSignal listeningOn) { this.listeningOn = listeningOn; }
public SignalDialogButtonData(string caption, BaseSignal signal, object[] args) : base(caption) { this.signal = signal; this.args = args; }
public CommandBinder(IInjectionBinder binder, BaseSignal signal) { this.binder = binder; this.signal = signal; signal.AddListener(ExecuteCommands); }
internal CommandBinder(IInjector binder, BaseSignal signal) { this.binder = binder; this.signal = signal; signal.AddListener(ExecuteCommands); }
public SignalRequester(BaseSignal Signal) { this.Signal = Signal; }
public abstract void DispatchTo(BaseSignal triggeringSignal);
public SL(BaseSignal listeningOn, EmptyCallback callback) : base(listeningOn) { this.callback = callback; }
//protected IEventDispatcher dispatcher; public DispatcherBaseSignalListener(BaseSignal listeningOn) : base(listeningOn) { }