Exemplo n.º 1
0
        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");
        }
Exemplo n.º 2
0
 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>();
 }
Exemplo n.º 3
0
 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);
        }
Exemplo n.º 5
0
 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>();
 }
Exemplo n.º 6
0
        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];
        }
Exemplo n.º 7
0
Arquivo: Force.cs Projeto: dox0/uTrade
 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>();
 }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
Arquivo: OsMA.cs Projeto: dox0/uTrade
 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));
 }
Exemplo n.º 10
0
Arquivo: AO.cs Projeto: dox0/uTrade
 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;
 }
Exemplo n.º 11
0
    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);
    }
Exemplo n.º 12
0
Arquivo: AC.cs Projeto: dox0/uTrade
 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;
 }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
 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>();
 }
Exemplo n.º 16
0
Arquivo: ADX.cs Projeto: dox0/uTrade
 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>();
 }
Exemplo n.º 17
0
Arquivo: MACD.cs Projeto: dox0/uTrade
 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>();
 }
Exemplo n.º 18
0
        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);
        }
Exemplo n.º 19
0
Arquivo: Bands.cs Projeto: dox0/uTrade
 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>();
 }
Exemplo n.º 20
0
        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);
            }
        }
Exemplo n.º 21
0
        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);
                }
            }
        }
Exemplo n.º 22
0
 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();
    }
Exemplo n.º 24
0
 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>();
 }
Exemplo n.º 25
0
        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);
        }
Exemplo n.º 26
0
        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);
        }