public void test_IsPositionOnSignalEmpty_Positive()
        {
            ISignalContext context = new SignalContext();

            context.CurrentMarketPosition = 1;
            Assert.AreEqual(true, context.isPositionOnSignalEmpty());
        }
        public void test_IsSignalBidirection_Negative()
        {
            ISignalContext context = new SignalContext();

            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_1Complete(), "Buy Order");
            Assert.AreEqual(false, context.isSignalBidirection());
        }
        public void test_IsPositionEmptySignalOnOpen_Negative()
        {
            ISignalContext context = new SignalContext();

            context.CurrentMarketPosition = 1;
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_0Complete(), "Buy Order");
            Assert.AreEqual(false, context.isPositionEmptySignalOnOpen());

            context = new SignalContext();
            context.CurrentMarketPosition = 0;
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_1Complete(), "Buy Order");
            context.setPendingSignal2(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_0Complete(), "Sell Order");
            Assert.AreEqual(false, context.isPositionEmptySignalOnOpen());

            context = new SignalContext();
            context.CurrentMarketPosition = 0;
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_0Complete(), "Buy Order");
            context.setPendingSignal2(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_1Complete(), "Sell Order");
            Assert.AreEqual(false, context.isPositionEmptySignalOnOpen());

            context = new SignalContext();
            context.CurrentMarketPosition = 0;
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_10Contract_10Complete(), "Buy Order");
            Assert.AreEqual(false, context.isPositionEmptySignalOnOpen());

            context = new SignalContext();
            context.CurrentMarketPosition = 0;
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_0Complete(), "Buy Order");
            context.setPendingSignal2(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell10Contract_10Complete(), "Sell Order");
            Assert.AreEqual(false, context.isPositionEmptySignalOnOpen());
        }
        public void test_CompletePendingSignal()
        {
            ISignalContext context = new SignalContext();

            context.CurrentMarketPosition = 1;
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_1Complete(), "Buy Order");
            context.completePendingSignal();
            Assert.AreEqual(2, context.CurrentMarketPosition);

            context = new SignalContext();
            context.CurrentMarketPosition = 1;
            context.setPendingSignal1(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_1Complete(), "Sell Order");
            context.completePendingSignal();
            Assert.AreEqual(0, context.CurrentMarketPosition);

            context = new SignalContext();
            context.CurrentMarketPosition = 1;
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_10Contract_10Complete(), "Buy Order");
            context.completePendingSignal();
            Assert.AreEqual(11, context.CurrentMarketPosition);

            context = new SignalContext();
            context.CurrentMarketPosition = -1;
            context.setPendingSignal1(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell10Contract_10Complete(), "Sell Order");
            context.completePendingSignal();
            Assert.AreEqual(-11, context.CurrentMarketPosition);

            context = new SignalContext();
            context.CurrentMarketPosition = 1;
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_0Complete(), "Buy Order");
            context.completePendingSignal();
            Assert.AreEqual(1, context.CurrentMarketPosition);
        }
Example #5
0
 public StrategyHelper(IAppStrategyManager appStgManager, String stgName, int stgIndex, SignalContext execution)
 {
     this.appStgManager   = appStgManager;
     this.appOrderManager = appStgManager.getAppOrderManager();
     this.stgName         = stgName;
     this.stgIndex        = stgIndex;
     this.execution       = execution;
 }
        public void test_IsSignalBidirection_Positive()
        {
            ISignalContext context = new SignalContext();

            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_0Complete(), "Buy Order");
            context.setPendingSignal2(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_0Complete(), "Sell Order");
            Assert.AreEqual(true, context.isSignalBidirection());
        }
Example #7
0
 public ValueTask <AggregateSignalResult> InvokeAsync(
     SignalContext <ReverseStringAsExtraState> context,
     StartProcessing signal,
     CancellationToken cancellationToken = default)
 {
     return(context.Self.SignalAsync(new ReportResult {
         Result = ReverseGraphemeClusters(context.Self.Input)
     }, cancellationToken));
 }
Example #8
0
 public override void init(Object caller, Dictionary <String, String> inputArgs, TickerInfo info)
 {
     stgManager   = (AppStrategyManager)caller;
     execution    = new SignalContext();
     eventManager = stgManager.getAppEventManager();
     MDManager    = stgManager.getAppMDManager();
     stgHelper    = new StrategyHelper(stgManager, stgName, stgIndex, execution);
     WTS          = info.whatToShow;
 }
Example #9
0
            /// <summary>
            /// Test for SARS-CoV-2
            /// </summary>
            /// <param name="sample"></param>
            /// <param name="cancellationToken"></param>
            public ValueTask <AggregateSignalResult> InvokeAsync(SignalContext <SARSCoV2Assay> context, BiologicalSequenceSample sample, CancellationToken cancellationToken = default)
            {
                var result = new Analysis
                {
                    Orf1Gene = sample.Inst.Data.Contains("ORF1"),
                    NGene    = sample.Inst.Data.Contains("N"),
                    EGene    = sample.Inst.Data.Contains("E")
                };

                return(new ValueTask <AggregateSignalResult>(context.Self.Signal(result)));
            }
        public void test_IsPositionSignalBothEmpty_Negative()
        {
            ISignalContext context = new SignalContext();

            context.CurrentMarketPosition = 1;
            Assert.AreEqual(false, context.isPositionSignalBothEmpty());

            context = new SignalContext();
            context.CurrentMarketPosition = 0;
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_0Complete(), "Buy Order");
            Assert.AreEqual(false, context.isPositionSignalBothEmpty());
        }
        public void test_GetIndexClosedAppOrder()
        {
            ISignalContext context = new SignalContext();

            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_1Complete(), "Buy Order");
            context.setPendingSignal2(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_0Complete(), "Sell Order");
            Assert.AreEqual(1, context.getIndexClosedAppOrder());

            context = new SignalContext();
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_0Complete(), "Buy Order");
            context.setPendingSignal2(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_1Complete(), "Sell Order");
            Assert.AreEqual(2, context.getIndexClosedAppOrder());
        }
Example #12
0
 public ValueTask <AggregateSignalResult> InvokeAsync(SignalContext <SARSCoV2Assay> context, Analysis analysis, CancellationToken cancellationToken = default)
 {
     if (analysis.Orf1Gene && analysis.NGene && analysis.EGene)
     {
         return(new ValueTask <AggregateSignalResult>(context.Self.Signal(new PositiveEvaluation())));
     }
     else if (!analysis.Orf1Gene && !analysis.NGene && !analysis.EGene)
     {
         return(new ValueTask <AggregateSignalResult>(context.Self.Signal(new NegativeEvaluation())));
     }
     else
     {
         return(new ValueTask <AggregateSignalResult>(context.Self.Signal(new InconclusiveEvaluation())));
     }
 }
Example #13
0
            public override SequenceDiagramViewModel VisitSignal([NotNull] SignalContext context)
            {
                var actorA = GetActor(context.actor(0));
                var actorB = GetActor(context.actor(1));

                if (actorA == null || actorB == null)
                {
                    m_errorListener.GrammarError("Signals must occur between two actors. e.g. a->b: pew pew");
                    return(SequenceDiagram);
                }

                var signalType = GetSignalType(context.signalType());
                var message    = GetMessage(context.message());

                SequenceDiagram.AddSignal(actorA, signalType.Item1, signalType.Item2, actorB, message);
                return(SequenceDiagram);
            }
Example #14
0
        public override Expression VisitSignal([NotNull] SignalContext context)
        {
            Signal signal = null;

            if (context.channel().single() != null)
            {
                var varIndex = int.Parse(context.channel().single().index().NUMBER().ToString());

                if (context.nature().input() != null)
                {
                    if (context.nature().input().presAction().HYPHEN() == null)
                    {
                        throw new UnsupportedSyntaxException("Present action of signal", context.nature().input().presAction().Start);
                    }

                    signal = new SingleInputSignal {
                        Name = context.nature().input().IDENTIFIER().ToString(), VarIndex = varIndex
                    };
                }
                else if (context.nature().output() != null)
                {
                    if (context.nature().output().outAction().HYPHEN() == null)
                    {
                        throw new UnsupportedSyntaxException("Output action of signal", context.nature().output().outAction().Start);
                    }

                    signal = new SingleOutputSignal {
                        Name = context.nature().output().IDENTIFIER().ToString(), VarIndex = varIndex
                    };
                }
            }
            else
            {
                throw new UnsupportedSyntaxException($"Channel {context.channel()}", context.channel().Start);
            }

            if (context.@bool() != null)
            {
                signal.BoolIndex = int.Parse(context.@bool().index().NUMBER().ToString());
            }

            Oc5Model.Signals.Add(signal);

            return(null);
        }
        public void test_GetCompleteSignalSide_Positive()
        {
            ISignalContext context = new SignalContext();

            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_1Complete(), "Buy Order");
            context.setPendingSignal2(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_0Complete(), "Sell Order");
            Assert.AreEqual(AppConstant.BUY_SIGNAL, context.getCompleteSignalSide());

            context = new SignalContext();
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_0Complete(), "Buy Order");
            context.setPendingSignal2(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_1Complete(), "Sell Order");
            Assert.AreEqual(AppConstant.SELL_SIGNAL, context.getCompleteSignalSide());

            context = new SignalContext();
            context.setPendingSignal1(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_0Complete(), "Buy Order");
            context.setPendingSignal2(AppConstant.BUY_SIGNAL, 20000, createOrder_10Contract_10Complete(), "Sell Order");
            Assert.AreEqual(AppConstant.BUY_SIGNAL, context.getCompleteSignalSide());
        }
Example #16
0
 public override void init(Object caller, Dictionary <String, String> inputArgs, TickerInfo info)
 {
     stgManager     = (AppStrategyManager)caller;
     execution      = new SignalContext();
     stgHelper      = new StrategyHelper(stgManager, stgName, stgIndex, execution);
     eventManager   = stgManager.getAppEventManager();
     MDManager      = stgManager.getAppMDManager();
     WTS            = info.whatToShow;
     this.inputArgs = inputArgs;
     num_short_ma   = Double.Parse(inputArgs["PARA1"]);
     orderSize      = Int32.Parse(inputArgs["PARA2"]);
     cutLoss        = Double.Parse(inputArgs["PARA3"]);
     profitTarget   = Double.Parse(inputArgs["PARA4"]);
     log.Info(stgName + " Started !");
     log.Info("short_ma = " + num_short_ma);
     log.Info("long_ma = " + num_long_ma);
     log.Info("cutLoss = " + cutLoss);
     log.Info("profitTarget = " + profitTarget);
 }
        public void test_GetFilled_Price()
        {
            ISignalContext context = new SignalContext();

            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_1Complete(), "Buy Order");
            context.setPendingSignal2(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_0Complete(), "Sell Order");
            Assert.AreEqual(20010, context.getFilledPrice());

            context = new SignalContext();
            context.setPendingSignal1(AppConstant.BUY_SIGNAL, 20000, createOrder_Buy1Contract_0Complete(), "Buy Order");
            context.setPendingSignal2(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_1Complete(), "Sell Order");
            Assert.AreEqual(22010, context.getFilledPrice());

            context = new SignalContext();
            double filledPrice = (20010.0d * 1 + 20009 * 4 + 20008 * 5) / 10;

            context.setPendingSignal1(AppConstant.SELL_SIGNAL, 22000, createOrder_Sell1Contract_0Complete(), "Sell Order");
            context.setPendingSignal2(AppConstant.BUY_SIGNAL, 20000, createOrder_10Contract_10Complete(), "Buy Order");
            Assert.AreEqual(filledPrice, context.getFilledPrice());
        }
        private static async Task ProcessLine(string name, string line, int lineNumber, TraceWriter log)
        {
            if (string.IsNullOrWhiteSpace(line))
            {
                log.Warning($"{name}: {lineNumber} is empty.");
                return;
            }

            var parts = line.Split(',');

            if (parts.Length != 8)
            {
                log.Error($"{name}: {lineNumber} invalid data: {line}.");
                return;
            }

            var item = new StockSecurity()
            {
                Symbol = parts[0]
            };

            //if ((int.TryParse(parts[1], out int complete) == false) || complete < 0 || complete > 1)
            //{
            //    log.Error($"{name}: {lineNumber} bad complete flag: {parts[1]}.");
            //}

            using (var context = new SignalContext())
            {
                if (context.StockSecurities.Any(todo => todo.Symbol == item.Symbol))
                {
                    log.Error($"{name}: {lineNumber} duplicate Stock Security: \"{item.Symbol}\".");
                    return;
                }
                context.StockSecurities.Add(item);
                await context.SaveChangesAsync();

                log.Info($"{name}: {lineNumber} inserted Stock Security: \"{item.Symbol}\" with id: {item.Id}.");
            }
        }
Example #19
0
        public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req, TraceWriter log)
        {
            try
            {
                log.Info("C# HTTP trigger function processed a request.");

                // parse query parameter
                string name = req.GetQueryNameValuePairs()
                              .FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
                              .Value;

                if (name == null)
                {
                    // Get request body
                    dynamic data = await req.Content.ReadAsAsync <object>();

                    name = data?.name;
                }

                using (var db = new SignalContext())
                {
                    db.Signals.Add(new Signal {
                        Date = DateTime.Now, Symbol = "AAPL", Type = "STOCH307"
                    });
                    await db.SaveChangesAsync();

                    log.Info("Signal Created");
                }

                return(name == null
                    ? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body")
                    : req.CreateResponse(HttpStatusCode.OK, "Hello " + name));
            }
            catch (Exception e)
            {
                return(req.CreateResponse(HttpStatusCode.InternalServerError, e));
            }
        }
Example #20
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SignalFactory"/> class.
 /// </summary>
 public SignalFactory()
 {
     _context = new SignalContext();
 }
Example #21
0
 public ThreadDatabase(SignalContext context)
 {
     this.context = context;
 }
        public void test_IsPendingOrderSet_Negative()
        {
            ISignalContext context = new SignalContext();

            Assert.AreEqual(false, context.isPendingOrderSet());
        }
Example #23
0
 public ThreadDatabase(SignalContext context)
 {
     this.context = context;
 }