Inheritance: IBaseSignal
        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 });
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #5
0
 public override void destroy()
 {
     srStopLoss         = null;
     fixedPipTakeProfit = null;
     percentRiskProfile = null;
     breakEvenStopLoss  = null;
     timeOfDayFilter    = null;
     maCross            = null;
 }
Beispiel #6
0
 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);
        }
Beispiel #8
0
        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();
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
    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);
    }
Beispiel #12
0
 public SignalDialogButtonData(string caption, BaseSignal signal) : base(caption)
 {
     this.signal = signal;
 }
 public BaseSignalListener(BaseSignal listeningOn)
 {
     this.listeningOn = listeningOn;
 }
Beispiel #14
0
 public SignalDialogButtonData(string caption, BaseSignal signal, object[] args) : base(caption)
 {
     this.signal = signal;
     this.args   = args;
 }
Beispiel #15
0
 public CommandBinder(IInjectionBinder binder, BaseSignal signal)
 {
     this.binder = binder;
     this.signal = signal;
     signal.AddListener(ExecuteCommands);
 }
Beispiel #16
0
 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)
        {
        }