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); }
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()); }
public ValueTask <AggregateSignalResult> InvokeAsync( SignalContext <ReverseStringAsExtraState> context, StartProcessing signal, CancellationToken cancellationToken = default) { return(context.Self.SignalAsync(new ReportResult { Result = ReverseGraphemeClusters(context.Self.Input) }, cancellationToken)); }
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; }
/// <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()); }
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()))); } }
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); }
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()); }
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}."); } }
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)); } }
/// <summary> /// Initializes a new instance of the <see cref="SignalFactory"/> class. /// </summary> public SignalFactory() { _context = new SignalContext(); }
public ThreadDatabase(SignalContext context) { this.context = context; }
public void test_IsPendingOrderSet_Negative() { ISignalContext context = new SignalContext(); Assert.AreEqual(false, context.isPendingOrderSet()); }
public ThreadDatabase(SignalContext context) { this.context = context; }