Example #1
0
        private void SetOpenPrice()
        {
            if (BarsArray[BarsInProgress].IsFirstBarOfSession)
            {
//				CoVarHiLoSpreadMax = double.MinValue;
//				CoVarHiLoSpreadMin = double.MaxValue;
                if (BarsInProgress == BipIWM)
                {
                    this.listRocHiLoMaxMin.Add(CoVarHiLoSpdMaxMin);
                    CoVarHiLoSpdMaxMin = new DailyMaxMin();
                }
                switch (BarsInProgress)
                {
                case BipSpy:
//						OpenSpy = Opens[BarsInProgress][0];
                    break;

                case BipQQQ:
//						OpenQQQ = Opens[BarsInProgress][0];
                    break;

                case BipIWM:
//						OpenIWM = Opens[BarsInProgress][0];
                    break;

                case BipSpyLn:
//						OpenLnSpy = Opens[BarsInProgress][0];
                    break;

                case BipSpySt:
//						OpenStSpy = Opens[BarsInProgress][0];
                    break;

                case BipQQQLn:
//						OpenLnQQQ = Opens[BarsInProgress][0];
                    break;

                case BipQQQSt:
//						OpenStQQQ = Opens[BarsInProgress][0];
                    break;

                case BipIWMLn:
//						OpenLnIWM = Opens[BarsInProgress][0];
                    break;

                case BipIWMSt:
//						OpenStIWM = Opens[BarsInProgress][0];
                    break;

                default:
                    break;
                }
            }
        }
Example #2
0
        private void SetBasePrice()
        {
            if (BarsArray[BarsInProgress].IsFirstBarOfSession)
            {
//				RocHiLoSpreadMax = double.MinValue;
//				RocHiLoSpreadMin = double.MaxValue;
                if (BarsInProgress == BipIWM)
                {
                    this.listRocHiLoMaxMin.Add(RocHiLoSpdMaxMin);
                    RocHiLoSpdMaxMin = new DailyMaxMin();
                }
                switch (BarsInProgress)
                {
                case BipSpy:
                    BaseSpy = BasePriceType == 1? Opens[BarsInProgress][0] : SmaSpy[0];
                    break;

                case BipQQQ:
                    BaseQQQ = BasePriceType == 1? Opens[BarsInProgress][0] : SmaQQQ[0];
                    break;

                case BipIWM:
                    BaseIWM = BasePriceType == 1? Opens[BarsInProgress][0] : SmaIWM[0];
                    break;

                case BipSpyLn:                         //Can only use open for quantity calculation, so en=ex for quantity;
                    BaseLnSpy = Opens[BarsInProgress][0];
                    break;

                case BipSpySt:
                    BaseStSpy = Opens[BarsInProgress][0];
                    break;

                case BipQQQLn:
                    BaseLnQQQ = Opens[BarsInProgress][0];
                    break;

                case BipQQQSt:
                    BaseStQQQ = Opens[BarsInProgress][0];
                    break;

                case BipIWMLn:
                    BaseLnIWM = Opens[BarsInProgress][0];
                    break;

                case BipIWMSt:
                    BaseStIWM = Opens[BarsInProgress][0];
                    break;

                default:
                    break;
                }
            }
        }
Example #3
0
        protected override void OnStateChange()
        {
            if (State == State.SetDefaults)
            {
                Description             = @"SPY, QQQ and IWM Pair scalper using CV as price";
                Name                    = "GISQRCVSpd";
                Calculate               = Calculate.OnPriceChange;
                IsOverlay               = false;
                DisplayInDataBox        = true;
                DrawOnPricePanel        = false;
                DrawHorizontalGridLines = true;
                DrawVerticalGridLines   = false;
                PaintPriceMarkers       = true;
                ScaleJustification      = NinjaTrader.Gui.Chart.ScaleJustification.Right;
                //Disable this property if your indicator requires custom values that cumulate with each new market data event.
                //See Help Guide for additional information.
                IsSuspendedWhileInactive = true;
                CoVarPeriod = 5;
                CoVarScale  = 10000;
//				CoVarHighBip									= -1;
//				CoVarMidBip									= -1;
//				CoVarLowBip									= -1;
                NumStdDevUp      = 1.6;
                NumStdDevDown    = 2.6;
                NumStdDevUpMin   = 0.5;
                NumStdDevDownMin = 0.5;
                ChartMinutes     = 4;
                TM_OpenStartH    = 11;
                TM_OpenStartM    = 15;
                TM_OpenEndH      = 12;
                TM_OpenEndM      = 45;
                TM_ClosingH      = 13;
                TM_ClosingM      = 15;
                //PctChgMaxBip								= -1;
                //PctChgMinBip								= -1;
                BarsRequiredToPlot  = 128;
                MaximumBarsLookBack = MaximumBarsLookBack.Infinite;

                QQQSymbol        = "QQQ";
                IWMSymbol        = "IWM";
                SpyLnSymbol      = "SPXL";
                SpyStSymbol      = "SH";
                QQQLnSymbol      = "QLD";
                QQQStSymbol      = "SQQQ";
                IWMLnSymbol      = "TNA";
                IWMStSymbol      = "TZA";
                SpyLnSymbolRatio = 3;                                                                       //"SPXL";
                SpyStSymbolRatio = 1;                                                                       //"SH";
                QQQLnSymbolRatio = 2;                                                                       //"QLD";
                QQQStSymbolRatio = 3;                                                                       //"SQQQ";
                IWMLnSymbolRatio = 3;                                                                       //"TNA";
                IWMStSymbolRatio = 3;                                                                       //"TZA";

                AddPlot(new Stroke(Brushes.Black), PlotStyle.Dot, "SPY");
                AddPlot(new Stroke(Brushes.Orange), PlotStyle.Dot, "QQQ");
                AddPlot(new Stroke(Brushes.LightSkyBlue), PlotStyle.Dot, "IWM");
                AddPlot(new Stroke(Brushes.Magenta), PlotStyle.Dot, "MxMiSpread");

                AddPlot(Brushes.Gray, "Mean");
                AddPlot(Brushes.Red, "UpperBB");
                AddPlot(Brushes.Green, "LowerBB");
                //AddLine(Brushes.Blue, 0, "IWM");
            }
            else if (State == State.Configure)
            {
                //AddDataSeries("NQ 06-20", Data.BarsPeriodType.Minute, 13, Data.MarketDataType.Last);
                //AddDataSeries("RTY 06-20", Data.BarsPeriodType.Minute, 13, Data.MarketDataType.Last);
                //AddDataSeries("NRGU", Data.BarsPeriodType.Minute, 1, Data.MarketDataType.Last);
                AddDataSeries(QQQSymbol, Data.BarsPeriodType.Minute, ChartMinutes, Data.MarketDataType.Last);
                AddDataSeries(IWMSymbol, Data.BarsPeriodType.Minute, ChartMinutes, Data.MarketDataType.Last);

                AddDataSeries(SpyLnSymbol, Data.BarsPeriodType.Minute, ChartMinutes, Data.MarketDataType.Last);
                AddDataSeries(SpyStSymbol, Data.BarsPeriodType.Minute, ChartMinutes, Data.MarketDataType.Last);

                AddDataSeries(QQQLnSymbol, Data.BarsPeriodType.Minute, ChartMinutes, Data.MarketDataType.Last);
                AddDataSeries(QQQStSymbol, Data.BarsPeriodType.Minute, ChartMinutes, Data.MarketDataType.Last);

                AddDataSeries(IWMLnSymbol, Data.BarsPeriodType.Minute, ChartMinutes, Data.MarketDataType.Last);
                AddDataSeries(IWMStSymbol, Data.BarsPeriodType.Minute, ChartMinutes, Data.MarketDataType.Last);

                CoVarHighBip = new Series <int>(this);
                CoVarMidBip  = new Series <int>(this);
                CoVarLowBip  = new Series <int>(this);
                //bol		= Bollinger(CoVarHiLoSpread, 1.6, CoVarPeriod);
            }
            else if (State == State.DataLoaded)
            {
//				RocChg = new Series<double>(this);
                Print(String.Format("{0}: DataLoaded...BarsArray.Length={1}",
                                    this.GetType().Name, BarsArray.Length));
                SmaSpy    = SMA(BarsArray[BipSpy], CoVarPeriod);
                StdDevSpy = StdDev(BarsArray[BipSpy], CoVarPeriod);
                //CoVarSpy = StdDevSpy/SmaSpy;
                SmaQQQ    = SMA(BarsArray[BipQQQ], CoVarPeriod);
                StdDevQQQ = StdDev(BarsArray[BipQQQ], CoVarPeriod);
                SmaIWM    = SMA(BarsArray[BipIWM], CoVarPeriod);
                StdDevIWM = StdDev(BarsArray[BipIWM], CoVarPeriod);

                sma    = SMA(CoVarHiLoSpread, CoVarPeriod);
                stdDev = StdDev(CoVarHiLoSpread, CoVarPeriod);

                CoVarHiLoSpdMaxMin     = new DailyMaxMin();
                listRocHiLoMaxMin      = new List <DailyMaxMin>();
                DailyCoVarHiLoMidCross = new DailyCross <int>();
//				CoVarHiLoSpreadMax = double.MinValue;
//				CoVarHiLoSpreadMin = double.MaxValue;
//				smaClose1 = SMA(Closes[0], 5);
//				smaClose2 = SMA(Closes[1], 5);
//				smaPctChgRatio = SMA(RocChg, 50);
                //stdDev = StdDev(PlotPctSpd, 7);
                //AddChartIndicator(stdDev);
            }
        }