public Stochastic() { base.indicator_buffers = 2; base.indicator_chart_window = false; this.KPeriod = 5; this.DPeriod = 3; this.Slowing = 3; this.PriceType = PriceConstants.PRICE_CLOSE; base.indicator_color1 = CodeBase.LightSeaGreen; base.indicator_color2 = CodeBase.Red; base.Levels.Values.Add(new Alveo.Interfaces.UserCode.Double(70.0)); base.Levels.Values.Add(new Alveo.Interfaces.UserCode.Double(30.0)); string text = string.Concat(new object[] { "Sto(", this.KPeriod, ",", this.DPeriod, ",", this.Slowing, ")" }); base.IndicatorShortName(text); base.SetIndexLabel(0, text); base.SetIndexLabel(1, "Signal"); }
public OBV() { base.indicator_buffers = 1; base.indicator_chart_window = false; base.indicator_color1 = Colors.Red; base.SetIndexLabel(0, "OBV"); base.IndicatorShortName("OBV"); this.PriceType = PriceConstants.PRICE_CLOSE; this._vals = new Array <double>(); }
public BearPower() { base.indicator_buffers = 1; base.indicator_chart_window = false; base.indicator_color1 = Colors.Red; this.IndicatorPeriod = 10; base.SetIndexLabel(0, string.Format("BearPower({0})", this.IndicatorPeriod)); base.IndicatorShortName(string.Format("BearPower({0})", this.IndicatorPeriod)); this.PriceType = PriceConstants.PRICE_CLOSE; }
protected override bool InternalSetParameters(List <ScriptingParameterBase> parameterBases) { Series[0].Color = ((SeriesParam)parameterBases[0]).Color; Series[0].Thickness = ((SeriesParam)parameterBases[0]).Thickness; Period = ((IntParam)parameterBases[1]).Value; Type = ParsePriceConstants((StringParam)parameterBases[2]); DisplayName = String.Format("{0}_{1}_{2}", Name, Period, Type); return(true); }
public LWMA() { base.indicator_buffers = 1; base.indicator_chart_window = true; base.indicator_color1 = Colors.Red; this.IndicatorPeriod = 10; base.SetIndexLabel(0, string.Format("LWMA({0})", this.IndicatorPeriod)); base.IndicatorShortName(string.Format("LWMA({0})", this.IndicatorPeriod)); this.PriceType = PriceConstants.PRICE_CLOSE; this._values = new Array <double>(); }
public override void SetIndicatorParameters(params object[] values) // Set Indicator values from cache { if (values.Length != 4) { throw new ArgumentException("Invalid parameters number"); } Symbol = (string)values[0]; TimeFrame = (int)values[1]; IndicatorPeriod = (int)values[2]; PriceType = (PriceConstants)values[3]; }
public Force() { base.indicator_buffers = 1; base.indicator_chart_window = false; base.indicator_color1 = Colors.Red; this.IndicatorPeriod = 10; base.SetIndexLabel(0, string.Format("Force({0})", this.IndicatorPeriod)); base.IndicatorShortName(string.Format("Force({0})", this.IndicatorPeriod)); this.MAType = MovingAverageType.MODE_SMA; this.PriceType = PriceConstants.PRICE_CLOSE; this._vals = new Array <double>(); }
protected override bool InternalSetParameters(List <ScriptingParameterBase> parameterBases) { Series[0].Color = ((SeriesParam)parameterBases[0]).Color; Series[0].Thickness = ((SeriesParam)parameterBases[0]).Thickness; Period1 = ((IntParam)parameterBases[1]).Value; Period2 = ((IntParam)parameterBases[2]).Value; Smoothing = ParseMovingAverageConstants((StringParam)parameterBases[3]); Type = ParsePriceConstants((StringParam)parameterBases[4]); DisplayName = String.Format("{0}_{1}_{2}_{3}_{4}", Name, Period1, Period2, Smoothing, Type); return(true); }
public OsMA() { base.indicator_buffers = 1; base.indicator_chart_window = false; base.indicator_color1 = Colors.Silver; base.indicator_width1 = 3; this.FastPeriod = 12; this.SlowPeriod = 26; this.SignalPeriod = 9; this.PriceType = PriceConstants.PRICE_CLOSE; base.IndicatorShortName(string.Format("OsMA({0},{1},{2})", this.FastPeriod, this.SlowPeriod, this.SignalPeriod)); base.SetIndexLabel(0, string.Format("OsMA({0},{1},{2})", this.FastPeriod, this.SlowPeriod, this.SignalPeriod)); }
public AO() { base.indicator_buffers = 1; base.indicator_chart_window = false; base.indicator_color1 = Colors.Red; this._vals = new Array <double>(); this.Period1 = AO.DefaultPeriod1; this.Period2 = AO.DefaultPeriod2; base.SetIndexLabel(0, string.Format("AO({0},{1})", this.Period1, this.Period2)); base.IndicatorShortName(string.Format("AO({0},{1})", this.Period1, this.Period2)); this.Smoothing = AO.DefaultSmoothing; this.PriceBase = AO.DefaultPriceConstants; }
void EvaluateOrderWorth(Bubble b) { int worth = 0; foreach (PuppetModificationBase pmb in b.GetPuppet()) { if (pmb != null) { worth += PriceConstants.GetCost(pmb.Category); } } _OrderWorth = Mathf.FloorToInt(worth * 2.25f); }
public AC() { base.indicator_buffers = 1; this.Period1 = 5; this.Period2 = 34; this.Period3 = 5; base.indicator_chart_window = false; base.indicator_color1 = Colors.Red; this._vals = new Array <double>(); base.SetIndexLabel(0, string.Format("AC({0},{1},{2})", this.Period1, this.Period2, this.Period3)); base.IndicatorShortName(string.Format("AC({0},{1},{2})", this.Period1, this.Period2, this.Period3)); this.Smoothing = MovingAverageType.MODE_SMA; this.PriceBase = PriceConstants.PRICE_MEDIAN; }
protected override bool InternalSetParameters(List <ScriptingParameterBase> parameterBases) { Series[0].Color = ((SeriesParam)parameterBases[0]).Color; Series[0].Thickness = ((SeriesParam)parameterBases[0]).Thickness; ExtDepth = ((IntParam)parameterBases[1]).Value; ExtDeviation = ((IntParam)parameterBases[2]).Value; ExtBackstep = ((IntParam)parameterBases[3]).Value; Type = ParsePriceConstants((StringParam)parameterBases[4]); DisplayName = $"{Name}_{ExtDepth}_{ExtDeviation}_{ExtBackstep}_{Type}"; return(true); }
public double[] getPrice(PriceConstants pConstants) { double[] dPrice = new double[this.PriceList.Count]; switch (pConstants) { case PriceConstants.PRICE_CLOSE: for (int i = 0; i < PriceList.Count; i++) { dPrice[i] = PriceList[i].Close; } break; case PriceConstants.PRICE_HIGH: for (int i = 0; i < PriceList.Count; i++) { dPrice[i] = PriceList[i].High; } break; case PriceConstants.PRICE_LOW: for (int i = 0; i < PriceList.Count; i++) { dPrice[i] = PriceList[i].Low; } break; case PriceConstants.PRICE_OPEN: for (int i = 0; i < PriceList.Count; i++) { dPrice[i] = PriceList[i].Open; } break; case PriceConstants.PRICE_VOLUME: for (int i = 0; i < PriceList.Count; i++) { dPrice[i] = PriceList[i].Volume; } break; case PriceConstants.PRICE_AMOUNT: for (int i = 0; i < PriceList.Count; i++) { dPrice[i] = PriceList[i].Amount; } break; } return(dPrice); }
public RSI() { base.indicator_buffers = 1; base.indicator_chart_window = false; base.indicator_color1 = Colors.Red; this.IndicatorPeriod = 10; base.Levels.Values.Add(new Alveo.Interfaces.UserCode.Double(70.0)); base.Levels.Values.Add(new Alveo.Interfaces.UserCode.Double(30.0)); base.SetIndexLabel(0, string.Format("RSI({0})", this.IndicatorPeriod)); base.IndicatorShortName(string.Format("RSI({0})", this.IndicatorPeriod)); this.PriceType = PriceConstants.PRICE_CLOSE; this._vals = new Array <double>(); this._posBuf = new Array <double>(); this._negBuf = new Array <double>(); }
public ADX() { base.indicator_buffers = 3; this.IndicatorPeriod = 10; base.indicator_chart_window = false; base.indicator_color1 = Colors.Blue; base.SetIndexLabel(0, string.Format("ADX({0})", this.IndicatorPeriod)); base.indicator_color2 = Colors.Green; base.SetIndexLabel(1, "Plus_Di"); base.indicator_color3 = Colors.Red; base.SetIndexLabel(2, "Minus_Di"); this.PriceType = PriceConstants.PRICE_CLOSE; this._adx = new Array <double>(); this._plusDi = new Array <double>(); this._minusDi = new Array <double>(); }
public MACD() { base.indicator_buffers = 2; base.indicator_chart_window = false; base.indicator_color1 = Colors.Red; base.indicator_color2 = Colors.Blue; this.FastPeriod = 12; this.SlowPeriod = 26; this.SignalPeriod = 9; base.SetIndexLabel(1, "Signal"); base.SetIndexLabel(0, string.Format("MACD({0},{1},{2})", this.FastPeriod, this.SlowPeriod, this.SignalPeriod)); base.IndicatorShortName(string.Format("MACD({0},{1},{2})", this.FastPeriod, this.SlowPeriod, this.SignalPeriod)); this.PriceType = PriceConstants.PRICE_CLOSE; this.vals = new Array <double>(); this.signalVals = new Array <double>(); }
protected override bool InternalSetParameters(List <ScriptingParameterBase> parameterBases) { Series[0].Color = ((SeriesParam)parameterBases[0]).Color; Series[0].Thickness = ((SeriesParam)parameterBases[0]).Thickness; Series[1].Color = ((SeriesParam)parameterBases[1]).Color; Series[1].Thickness = ((SeriesParam)parameterBases[1]).Thickness; Period = ((IntParam)parameterBases[2]).Value; Deviation = ((DoubleParam)parameterBases[3]).Value; MaType = ParseMovingAverageConstants((StringParam)parameterBases[4]); Type = ParsePriceConstants((StringParam)parameterBases[5]); DisplayName = String.Format("{0}_{1}_{2}_{3}", Name, Period, MaType, Type); return(true); }
public Bands() { base.indicator_buffers = 3; base.indicator_chart_window = true; this.IndicatorPeriod = 10; this.Deviation = 2; base.indicator_color1 = Colors.Blue; base.SetIndexLabel(0, string.Format("Bands({0},{1})", this.IndicatorPeriod, this.Deviation)); base.indicator_color2 = Colors.Green; base.SetIndexLabel(1, "Bands_High"); base.indicator_color3 = Colors.Red; base.SetIndexLabel(2, "Bands_Low"); base.IndicatorShortName(string.Format("Bands({0},{1})", this.IndicatorPeriod, this.Deviation)); this.PriceType = PriceConstants.PRICE_CLOSE; this._vals = new Array <double>(); this._upVals = new Array <double>(); this._lowVals = new Array <double>(); }
public override void SetIndicatorParameters(params object[] values) { if (values.Length != 4) { return; } try { Symbol = (string)values[0]; TimeFrame = (int)values[1]; IndicatorPeriod = (int)values[2]; PriceType = (PriceConstants)values[3]; } catch (Exception ex) { Logger.ErrorException("SetIndicatorParameters", ex); } }
public override void SetIndicatorParameters(params object[] values) { bool flag = values.Length != 4; if (!flag) { try { base.Symbol = (string)values[0]; base.TimeFrame = (int)values[1]; this.IndicatorPeriod = (int)values[2]; this.PriceType = (PriceConstants)values[3]; } catch (Exception exception) { this.Logger.ErrorException("SetIndicatorParameters", exception); } } }
public Gactor() { base.indicator_buffers = 2; base.indicator_chart_window = false; base.indicator_color1 = Colors.Green; base.indicator_color2 = Colors.Red; base.SetIndexLabel(0, "Up"); base.SetIndexLabel(1, "Down"); base.IndicatorShortName("Gactor"); this.JawPeriod = 13; this.JawShift = 8; this.TeethPeriod = 8; this.TeethShift = 5; this.LipsPeriod = 5; this.LipsShift = 3; this.MAType = MovingAverageType.MODE_SMA; this.PriceType = PriceConstants.PRICE_MEDIAN; this._upBuff = new Array <double>(); this._lowBuff = new Array <double>(); }
protected virtual void Start() { amount = 2; int i = 0; foreach (string s in System.Enum.GetNames(typeof(ModificationType))) { if (s != Modification.ToString() && gameObject.name.Replace(" ", "") == s) { Debug.LogWarning($"The PuppetModification {gameObject.name} was modified to fit its Modification enum with its name. Please, make the proper change to the prefab."); Modification = (ModificationType)i; } i++; } cost = PriceConstants.GetCost(Category); GameManager.levelManager.RegisterNewModification(this); CheckIfModificationIsAvailableAndActivateOrDesactivate(); }
public Alligator() { base.indicator_buffers = 3; base.indicator_chart_window = true; this.JawPeriod = 13; this.JawShift = 8; this.TeethPeriod = 8; this.TeethShift = 5; this.LipsPeriod = 5; this.LipsShift = 3; this.MAType = MovingAverageType.MODE_SMA; this.PriceType = PriceConstants.PRICE_MEDIAN; base.SetIndexLabel(0, string.Format("Jaw({0},{1})", this.JawPeriod, this.JawShift)); base.indicator_color1 = Colors.Blue; base.SetIndexLabel(1, string.Format("Teeth({0},{1})", this.TeethPeriod, this.TeethShift)); base.indicator_color2 = Colors.Red; base.SetIndexLabel(2, string.Format("Lips({0},{1})", this.LipsPeriod, this.LipsShift)); base.indicator_color3 = Colors.Lime; base.IndicatorShortName("Alligator"); this._jawBuff = new Array <double>(); this._teethBuff = new Array <double>(); this._lipsBuff = new Array <double>(); }
protected decimal GetPrice(Bar bar, PriceConstants type) { if (PriceType == PriceType.Bid) { switch (type) { case PriceConstants.OPEN: return(bar.OpenBid); case PriceConstants.HIGH: return(bar.HighBid); case PriceConstants.LOW: return(bar.LowBid); case PriceConstants.CLOSE: return(bar.CloseBid); case PriceConstants.MEDIAN: return((bar.HighBid + bar.LowBid) / 2M); case PriceConstants.TYPICAL: return((bar.HighBid + bar.LowBid + bar.CloseBid) / 3M); case PriceConstants.WEIGHTED: return((bar.HighBid + bar.LowBid + bar.CloseBid + bar.OpenBid) / 4M); } } else if (PriceType == PriceType.Ask) { switch (type) { case PriceConstants.OPEN: return(bar.OpenAsk); case PriceConstants.HIGH: return(bar.HighAsk); case PriceConstants.LOW: return(bar.LowAsk); case PriceConstants.CLOSE: return(bar.CloseAsk); case PriceConstants.MEDIAN: return((bar.HighAsk + bar.LowAsk) / 2M); case PriceConstants.TYPICAL: return((bar.HighAsk + bar.LowAsk + bar.CloseAsk) / 3M); case PriceConstants.WEIGHTED: return((bar.HighAsk + bar.LowAsk + bar.CloseAsk + bar.OpenAsk) / 4M); } } else { switch (type) { case PriceConstants.OPEN: return(bar.MeanOpen); case PriceConstants.HIGH: return(bar.MeanHigh); case PriceConstants.LOW: return(bar.MeanLow); case PriceConstants.CLOSE: return(bar.MeanClose); case PriceConstants.MEDIAN: return((bar.MeanHigh + bar.MeanLow) / 2M); case PriceConstants.TYPICAL: return((bar.MeanHigh + bar.MeanLow + bar.MeanClose) / 3M); case PriceConstants.WEIGHTED: return((bar.MeanHigh + bar.MeanLow + bar.MeanClose + bar.MeanOpen) / 4M); } } System.Diagnostics.Trace.TraceError("Unsupported price type: {0} ({1})", type, PriceType); return(0M); }
protected override bool InternalSetParameters(List <CodeParameterBase> parameterBases) { var inputValue = ((StringParam)parameterBases[0]).Value; switch (inputValue) { case "New Bar": _startMethod = StartMethod.NewBar; break; case "New Tick": _startMethod = StartMethod.NewQuote; break; case "Periodical": _startMethod = StartMethod.Periodic; break; default: Exit("Invalid Start Event Parameter."); return(false); } _tradingPeriod = ((IntParam)parameterBases[1]).Value; _tradeSlot = ((IntParam)parameterBases[2]).Value; inputValue = ((StringParam)parameterBases[3]).Value; switch (inputValue) { case "Market": _execTradesParam.OrderType = TradeType.Market; break; case "Limit": _execTradesParam.OrderType = TradeType.Limit; break; case "Stop Market": _execTradesParam.OrderType = TradeType.Stop; break; default: Exit("Invalid Order Type Parameter."); return(false); } inputValue = ((StringParam)parameterBases[4]).Value; switch (inputValue) { case "FOK": _execTradesParam.TIF = TimeInForce.FillOrKill; break; case "GFD": _execTradesParam.TIF = TimeInForce.GoodForDay; break; case "IOC": _execTradesParam.TIF = TimeInForce.ImmediateOrCancel; break; case "GTC": _execTradesParam.TIF = TimeInForce.GoodTilCancelled; break; default: Exit("Invalid TIF Parameter."); return(false); } inputValue = ((StringParam)parameterBases[5]).Value; switch (inputValue) { case "ON": _execTradesParam.HideOrder = true; break; case "OFF": _execTradesParam.HideOrder = false; break; default: Exit("Invalid Hide Limit Order Parameter."); return(false); } inputValue = ((StringParam)parameterBases[6]).Value; switch (inputValue) { case "ON": _internalBacktest = true; break; case "OFF": _internalBacktest = false; break; default: Exit("Invalid BackTest Mode Parameter."); return(false); } inputValue = ((StringParam)parameterBases[7]).Value; switch (inputValue) { case "OPEN": backtestPriceConst = PriceConstants.OPEN; break; case "HIGH": backtestPriceConst = PriceConstants.HIGH; break; case "LOW": backtestPriceConst = PriceConstants.LOW; break; case "CLOSE": backtestPriceConst = PriceConstants.CLOSE; break; case "OHLC": backtestPriceConst = PriceConstants.OHLC; break; case "OLHC": backtestPriceConst = PriceConstants.OLHC; break; default: Exit("Invalid BackTest Price Parameter."); return(false); } inputValue = ((StringParam)parameterBases[8]).Value; switch (inputValue) { case "ON": _execTradesParam.HideSL = true; break; case "OFF": _execTradesParam.HideSL = false; break; default: Exit("Invalid Hide Limit Order Parameter."); return(false); } inputValue = ((StringParam)parameterBases[9]).Value; switch (inputValue) { case "ON": _execTradesParam.HideTP = true; break; case "OFF": _execTradesParam.HideTP = false; break; default: Exit("Invalid Hide Limit Order Parameter."); return(false); } _execTradesParam.OrderQuantity = ((IntParam)parameterBases[10]).Value; _execTradesParam.SellPriceOffset = ((IntParam)parameterBases[11]).Value; _execTradesParam.BuyPriceOffset = ((IntParam)parameterBases[12]).Value; _execTradesParam.SL = (decimal?)((IntParam)parameterBases[13]).Value > 0 ? (decimal?)((IntParam)parameterBases[13]).Value / 100000 : null; _execTradesParam.TP = (decimal?)((IntParam)parameterBases[14]).Value > 0 ? (decimal?)((IntParam)parameterBases[14]).Value / 100000 : null; _backtestBatch = ((IntParam)parameterBases[15]).Value; return(true); }
public static List <TradeSignal> BacktestPriceSegmentProcessor(SignalBase signalBase, Dictionary <Selection, IEnumerable <Bar> > marketData, Auxiliaries.ExecuteTradesParam tradeParams, PriceConstants btBarSegment, Func <Dictionary <Selection, IEnumerable <Bar> >, List <TradeSignal> > detectSignals, Dictionary <Selection, IEnumerable <Bar> > trigInstrData = null, IEnumerable <Tick> queuedTicks = null) { var modMarketData = marketData.ToDictionary(k => k.Key, v => v.Value.Select(b => new Bar(b)).ToList().AsEnumerable()); var origLast = marketData.Last().Value.Last(); var modLast = modMarketData.Last().Value.Last(); List <TradeSignal> trades = null; switch (btBarSegment) { case PriceConstants.OPEN: modLast.HighAsk = origLast.OpenAsk; modLast.HighBid = origLast.OpenBid; modLast.LowAsk = origLast.OpenAsk; modLast.LowBid = origLast.OpenBid; modLast.CloseAsk = origLast.OpenAsk; modLast.CloseBid = origLast.OpenBid; modLast.HighAsk = origLast.OpenAsk; trigInstrData = modMarketData; trades = detectSignals(modMarketData); break; case PriceConstants.HIGH: modLast.LowAsk = origLast.HighAsk; modLast.LowBid = origLast.HighBid; modLast.CloseAsk = origLast.HighAsk; modLast.CloseBid = origLast.HighBid; trigInstrData = modMarketData; trades = detectSignals(modMarketData); break; case PriceConstants.LOW: modLast.CloseAsk = origLast.LowAsk; modLast.CloseBid = origLast.LowBid; trigInstrData = modMarketData; trades = detectSignals(modMarketData); break; case PriceConstants.CLOSE: trigInstrData = modMarketData; trades = detectSignals(modMarketData); break; case PriceConstants.OHLC: signalBase.Alert($"origin openAsk: {origLast.OpenAsk}"); signalBase.Alert($"origin openBid: {origLast.OpenBid}"); signalBase.Alert($"origin mean: {origLast.MeanOpen}"); signalBase.Alert($"origin highAsk: {origLast.HighAsk}"); signalBase.Alert($"origin highBid: {origLast.HighBid}"); signalBase.Alert($"origin mean: {origLast.MeanHigh}"); signalBase.Alert($"origin lowAsk: {origLast.LowAsk}"); signalBase.Alert($"origin lowBid: {origLast.LowBid}"); signalBase.Alert($"origin mean: {origLast.MeanLow}"); signalBase.Alert($"origin closeAsk: {origLast.CloseAsk}"); signalBase.Alert($"origin closeBid: {origLast.CloseBid}"); signalBase.Alert($"origin mean: {origLast.MeanClose}"); modLast.HighAsk = origLast.OpenAsk; modLast.HighBid = origLast.OpenBid; modLast.LowAsk = origLast.OpenAsk; modLast.LowBid = origLast.OpenBid; modLast.CloseAsk = origLast.OpenAsk; modLast.CloseBid = origLast.OpenBid; trigInstrData = modMarketData; signalBase.Alert($"mod openAsk: {modLast.OpenAsk}"); signalBase.Alert($"mod openBid: {modLast.OpenBid}"); signalBase.Alert($"mod mean: {modLast.MeanOpen}"); signalBase.Alert($"mod highAsk: {modLast.HighAsk}"); signalBase.Alert($"mod highBid: {modLast.HighBid}"); signalBase.Alert($"mod mean: {modLast.MeanHigh}"); signalBase.Alert($"mod lowAsk: {modLast.LowAsk}"); signalBase.Alert($"mod lowBid: {modLast.LowBid}"); signalBase.Alert($"mod mean: {modLast.MeanLow}"); signalBase.Alert($"mod closeAsk: {modLast.CloseAsk}"); signalBase.Alert($"mod closeBid: {modLast.CloseBid}"); signalBase.Alert($"mod mean: {modLast.MeanClose}"); var trades1 = detectSignals(modMarketData); trades = trades1; //signalBase.Alert($"origin openAsk: {origLast.OpenAsk}"); //signalBase.Alert($"origin openBid: {origLast.OpenBid}"); //signalBase.Alert($"origin mean: {origLast.MeanOpen}"); //signalBase.Alert($"origin highAsk: {origLast.HighAsk}"); //signalBase.Alert($"origin highBid: {origLast.HighBid}"); //signalBase.Alert($"origin mean: {origLast.MeanHigh}"); //signalBase.Alert($"origin lowAsk: {origLast.LowAsk}"); //signalBase.Alert($"origin lowBid: {origLast.LowBid}"); //signalBase.Alert($"origin mean: {origLast.MeanLow}"); //signalBase.Alert($"origin closeAsk: {origLast.CloseAsk}"); //signalBase.Alert($"origin closeBid: {origLast.CloseBid}"); //signalBase.Alert($"origin mean: {origLast.MeanClose}"); modLast.HighAsk = origLast.HighAsk; modLast.HighBid = origLast.HighBid; modLast.LowAsk = origLast.HighAsk; modLast.LowBid = origLast.HighBid; modLast.CloseAsk = origLast.HighAsk; modLast.CloseBid = origLast.HighBid; trigInstrData = modMarketData; //signalBase.Alert($"mod openAsk: {modLast.OpenAsk}"); //signalBase.Alert($"mod openBid: {modLast.OpenBid}"); //signalBase.Alert($"mod mean: {modLast.MeanOpen}"); //signalBase.Alert($"mod highAsk: {modLast.HighAsk}"); //signalBase.Alert($"mod highBid: {modLast.HighBid}"); //signalBase.Alert($"mod mean: {modLast.MeanHigh}"); //signalBase.Alert($"mod lowAsk: {modLast.LowAsk}"); //signalBase.Alert($"mod lowBid: {modLast.LowBid}"); //signalBase.Alert($"mod mean: {modLast.MeanLow}"); //signalBase.Alert($"mod closeAsk: {modLast.CloseAsk}"); //signalBase.Alert($"mod closeBid: {modLast.CloseBid}"); //signalBase.Alert($"mod mean: {modLast.MeanClose}"); var trades2 = detectSignals(modMarketData); trades.AddRange(trades2); //signalBase.Alert($"origin openAsk: {origLast.OpenAsk}"); //signalBase.Alert($"origin openBid: {origLast.OpenBid}"); //signalBase.Alert($"origin mean: {origLast.MeanOpen}"); //signalBase.Alert($"origin highAsk: {origLast.HighAsk}"); //signalBase.Alert($"origin highBid: {origLast.HighBid}"); //signalBase.Alert($"origin mean: {origLast.MeanHigh}"); //signalBase.Alert($"origin lowAsk: {origLast.LowAsk}"); //signalBase.Alert($"origin lowBid: {origLast.LowBid}"); //signalBase.Alert($"origin mean: {origLast.MeanLow}"); //signalBase.Alert($"origin closeAsk: {origLast.CloseAsk}"); //signalBase.Alert($"origin closeBid: {origLast.CloseBid}"); //signalBase.Alert($"origin mean: {origLast.MeanClose}"); modLast.LowAsk = origLast.LowAsk; modLast.LowBid = origLast.LowBid; modLast.CloseAsk = origLast.LowAsk; modLast.CloseBid = origLast.LowBid; trigInstrData = modMarketData; //signalBase.Alert($"mod openAsk: {modLast.OpenAsk}"); //signalBase.Alert($"mod openBid: {modLast.OpenBid}"); //signalBase.Alert($"mod mean: {modLast.MeanOpen}"); //signalBase.Alert($"mod highAsk: {modLast.HighAsk}"); //signalBase.Alert($"mod highBid: {modLast.HighBid}"); //signalBase.Alert($"mod mean: {modLast.MeanHigh}"); //signalBase.Alert($"mod lowAsk: {modLast.LowAsk}"); //signalBase.Alert($"mod lowBid: {modLast.LowBid}"); //signalBase.Alert($"mod mean: {modLast.MeanLow}"); //signalBase.Alert($"mod closeAsk: {modLast.CloseAsk}"); //signalBase.Alert($"mod closeBid: {modLast.CloseBid}"); //signalBase.Alert($"mod mean: {modLast.MeanClose}"); var trades3 = detectSignals(modMarketData); trades.AddRange(trades3); modLast.CloseAsk = origLast.CloseAsk; modLast.CloseBid = origLast.CloseBid; modMarketData = marketData; trigInstrData = modMarketData; signalBase.Alert($"origin openAsk: {origLast.OpenAsk}"); signalBase.Alert($"origin openBid: {origLast.OpenBid}"); signalBase.Alert($"origin mean: {origLast.MeanOpen}"); signalBase.Alert($"origin highAsk: {origLast.HighAsk}"); signalBase.Alert($"origin highBid: {origLast.HighBid}"); signalBase.Alert($"origin mean: {origLast.MeanHigh}"); signalBase.Alert($"origin lowAsk: {origLast.LowAsk}"); signalBase.Alert($"origin lowBid: {origLast.LowBid}"); signalBase.Alert($"origin mean: {origLast.MeanLow}"); signalBase.Alert($"origin closeAsk: {origLast.CloseAsk}"); signalBase.Alert($"origin closeBid: {origLast.CloseBid}"); signalBase.Alert($"origin mean: {origLast.MeanClose}"); signalBase.Alert($"mod openAsk: {modLast.OpenAsk}"); signalBase.Alert($"mod openBid: {modLast.OpenBid}"); signalBase.Alert($"mod mean: {modLast.MeanOpen}"); signalBase.Alert($"mod highAsk: {modLast.HighAsk}"); signalBase.Alert($"mod highBid: {modLast.HighBid}"); signalBase.Alert($"mod mean: {modLast.MeanHigh}"); signalBase.Alert($"mod lowAsk: {modLast.LowAsk}"); signalBase.Alert($"mod lowBid: {modLast.LowBid}"); signalBase.Alert($"mod mean: {modLast.MeanLow}"); signalBase.Alert($"mod closeAsk: {modLast.CloseAsk}"); signalBase.Alert($"mod closeBid: {modLast.CloseBid}"); signalBase.Alert($"mod mean: {modLast.MeanClose}"); var trades4 = detectSignals(modMarketData); trades.AddRange(trades4); break; case PriceConstants.OLHC: modLast.HighAsk = origLast.OpenAsk; modLast.HighBid = origLast.OpenBid; modLast.LowAsk = origLast.OpenAsk; modLast.LowBid = origLast.OpenBid; modLast.CloseAsk = origLast.OpenAsk; modLast.CloseBid = origLast.OpenBid; trigInstrData = modMarketData; trades1 = detectSignals(modMarketData); trades = trades1; modLast.HighAsk = origLast.LowAsk; modLast.HighBid = origLast.LowBid; modLast.CloseAsk = origLast.LowAsk; modLast.CloseBid = origLast.LowBid; trigInstrData = modMarketData; trades3 = detectSignals(modMarketData); trades.AddRange(trades3); modLast.CloseAsk = origLast.HighAsk; modLast.CloseBid = origLast.HighBid; trigInstrData = modMarketData; trades2 = detectSignals(modMarketData); trades.AddRange(trades2); trigInstrData = modMarketData; trades4 = detectSignals(modMarketData); trades.AddRange(trades4); break; } return(trades); }