예제 #1
0
        private void 打印ToolStripButton_Click(object sender, EventArgs e)
        {//打印车位使用信息
            ApplicationClass MyExcel;
            Workbooks        MyWorkBooks;
            Workbook         MyWorkBook;
            Worksheet        MyWorkSheet;
            char             MyColumns;
            Range            MyRange;

            Object[,] MyData = new Object[500, 35];
            int i, j;

            MyExcel         = new ApplicationClass();
            MyExcel.Visible = true;
            if (MyExcel == null)
            {
                MessageBox.Show("Excel程序无法启动!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            MyWorkBooks = MyExcel.Workbooks;
            MyWorkBook  = MyWorkBooks.Add(Missing.Value);
            MyWorkSheet = (Worksheet)MyWorkBook.Worksheets[1];
            MyColumns   = (char)(this.dBCommunityDataSet.车位使用.Columns.Count + 64);
            MyRange     = MyWorkSheet.get_Range("A5", MyColumns.ToString() + "5");
            int Count = 0;

            foreach (DataColumn MyNewColumn in this.dBCommunityDataSet.车位使用.Columns)
            {
                MyData[0, Count] = MyNewColumn.ColumnName;
                Count            = Count + 1;
            }
            j = 1;
            //输出数据库记录
            foreach (DataGridViewRow MyRow in this.车位使用DataGridView.Rows)
            {
                for (i = 0; i < this.dBCommunityDataSet.车位使用.Columns.Count; i++)
                {
                    if (i == 6 | i == 7)
                    {
                        MyData[j, i] = DateTime.Parse(MyRow.Cells[i].Value.ToString()).ToShortDateString();
                    }
                    else
                    {
                        MyData[j, i] = MyRow.Cells[i].Value.ToString();
                    }
                }
                j++;
            }
            MyRange        = MyRange.get_Resize(this.dBCommunityDataSet.车位使用.Rows.Count + 1, this.dBCommunityDataSet.车位使用.Columns.Count);
            MyRange.Value2 = MyData;
            MyRange.EntireColumn.AutoFit();
            MyWorkSheet.Cells[2, 2] = this.MyCommunity + "车位信息表";
            Range MyRange22 = MyWorkSheet.get_Range("B2", "B2");

            MyRange22.Font.Bold     = true;
            MyRange22.Font.Size     = "20";
            MyWorkSheet.Cells[4, 1] = "打印日期:" + DateTime.Now.ToShortDateString();
        }
예제 #2
0
 public void CancelEdit()
 {
     if (null != _savedRange)
     {
         From        = _savedRange.From;
         To          = _savedRange.To;
         _savedRange = null;
     }
 }
예제 #3
0
            public void EndEdit()
            {
                var savedRange = _savedRange;

                _savedRange = null;

                if (null != savedRange && (To != savedRange.To || From != savedRange.From))
                {
                    Parent.NormalizeRanges();
                }
            }
        public override void SetSettings(GrassEntitiesSet aGrass)
        {
            var     tuftHue                   = RandomGrassGenerator.GetHue();
            var     tuftValue                 = RandomGrassGenerator.GetValue();
            var     randomSaturation          = RandomGrassGenerator.GetSaturation(); //todo use it
            MyRange basePlantBendingStiffness = RandomTuftGenerator.GetBasePlantBendingStiffness();
            MyRange basePlantBendingValue     = RandomTuftGenerator.GetBasePlantBendingValue();

            ForeachEntity(aGrass, c => c.AddUniform(GrassShaderUniformName._PlantBendingStiffness, RandomTuftGenerator.GetPlantBendingStiffness(basePlantBendingStiffness)));
            ForeachEntity(aGrass, c => c.AddUniform(GrassShaderUniformName._InitialBendingValue, RandomTuftGenerator.GetPlantBendingValue(basePlantBendingValue)));
            ForeachEntity(aGrass, c => c.AddUniform(GrassShaderUniformName._Color, RandomGrassGenerator.GetGrassColor(tuftHue)));
            ForeachEntity(aGrass, c => c.AddUniform(GrassShaderUniformName._RandSeed, UnityEngine.Random.value));
        }
예제 #5
0
        private float?CalculateExclusionRadius(
            Vector2 point,
            MyRectangle offsetGenerationArea,
            MyRange exclusionRadiusRange,
            IIntensitySamplingProvider intensityProvider)
        {
            var uv     = RectangleUtils.CalculateSubelementUv(offsetGenerationArea, point);
            var sample = intensityProvider.Sample(uv);

            var exclusionRadius = exclusionRadiusRange.Lerp(1 - sample);

            if (sample > 0.01f)
            {
                return(exclusionRadius);
            }
            else
            {
                return(null);
            }
        }
예제 #6
0
            public void Exclude(MyRange excluded, out MyRange rangeLeft, out MyRange rangeRight)
            {
                int leftTo    = Math.Min(To, Math.Max(From - 1, excluded.From - 1));
                int rightFrom = Math.Max(From, Math.Min(To + 1, excluded.To + 1));

                rangeLeft = rangeRight = null;

                if (leftTo >= From)
                {
                    rangeLeft = new MyRange {
                        From = From, To = leftTo
                    }
                }
                ;
                if (rightFrom <= To)
                {
                    rangeRight = new MyRange {
                        From = rightFrom, To = To
                    }
                }
                ;
            }
예제 #7
0
        protected override void OnStateChange()
        {
            if (State == State.SetDefaults)
            {
                Description                  = @"Enter the description for your new custom Strategy here.";
                Name                         = "ThaCrossover";
                Calculate                    = Calculate.OnBarClose;
                EntriesPerDirection          = 1;
                EntryHandling                = EntryHandling.AllEntries;
                IsExitOnSessionCloseStrategy = true;
                ExitOnSessionCloseSeconds    = 30;
                IsFillLimitOnTouch           = false;
                MaximumBarsLookBack          = MaximumBarsLookBack.TwoHundredFiftySix;
                OrderFillResolution          = OrderFillResolution.Standard;
                Slippage                     = 0;
                StartBehavior                = StartBehavior.WaitUntilFlat;
                TimeInForce                  = TimeInForce.Gtc;
                TraceOrders                  = false;
                RealtimeErrorHandling        = RealtimeErrorHandling.StopCancelClose;
                StopTargetHandling           = StopTargetHandling.PerEntryExecution;
                BarsRequiredToTrade          = 20;
                DefaultQuantity              = 1;
                // Disable this property for performance gains in Strategy Analyzer optimizations
                // See the Help Guide for additional information
                IsInstantiatedOnEachOptimizationIteration = false;

                FastMaPeriod     = 10;
                SlowMaPeriod     = 20;
                TickRangePeriod  = 15;
                MinMaDiff        = 0.4;
                MaxMaDiff        = 10;
                MinTickRange     = 0;
                MaxTickRange     = 30;
                GoLong           = true;
                GoShort          = true;
                FireAlerts       = false;
                DiffXX           = 5;
                ProfitTarget     = 5;
                StopLoss         = 12;
                TradingAccountId = 0;
                BailPeriod       = 3;
                GoPeriod         = 3;
                RangePeriod      = 20;
                MinRange         = 8.5;
            }
            else if (State == State.Configure)
            {
                //SetProfitTarget(CalculationMode.Ticks, this.ProfitTarget);
                //SetStopLoss(CalculationMode.Ticks, this.StopLoss);
                SetOrderQuantity = SetOrderQuantity.DefaultQuantity;

                fastMaIndicator = EMA(FastMaPeriod);
                slowMaIndicator = EMA(SlowMaPeriod);
                myRange         = MyRange(RangePeriod, MinRange);

                slowMaIndicator.Plots[0].Brush = Brushes.White;
                slowMaIndicator.Plots[0].Width = 2;

                fastMaIndicator.Plots[0].Width = 2;

                AddChartIndicator(fastMaIndicator);
                AddChartIndicator(slowMaIndicator);
            }
            else if (State == State.DataLoaded)
            {
                diffSeries    = new Series <double>(this);
                highLowSeries = new Series <double>(this);

                //this.guerillaTraderBridge.Reset();
            }
        }
예제 #8
0
 public static int GetTuftCount(MyRange elementsRange)
 {
     return((int)UnityEngine.Random.Range(elementsRange.Min, elementsRange.Max));
 }
예제 #9
0
 public static float GetPlantBendingValue(MyRange basePlantBendingValue)
 {
     return(basePlantBendingValue.Lerp(UnityEngine.Random.value));
 }
예제 #10
0
 public static float GetPlantBendingStiffness(MyRange basePlantBendingStiffness)
 {
     return(basePlantBendingStiffness.Lerp(UnityEngine.Random.value));
 }
 public PoissonDiskSamplerPositionResolver(MyRange exclusionRadiusRange)
 {
     _exclusionRadiusRange = exclusionRadiusRange;
 }
예제 #12
0
        public List <Vector2> Generate(MyRectangle generationArea, float generationCount,
                                       MyRange exclusionRadiusRange,
                                       IIntensitySamplingProvider intensityProvider, int maxTries)

        {
            var random = new UnsafeRandomProvider(); //todo!
            var offsetGenerationArea = new MyRectangle(0, 0, generationArea.Width, generationArea.Height);

            float cellSize = exclusionRadiusRange.Max / Mathf.Sqrt(2);

            var width  = generationArea.Width;
            var height = generationArea.Height;

            var grid = new GenerationMultipointGrid(
                cellSize,
                new IntVector2(Mathf.CeilToInt(width / cellSize), Mathf.CeilToInt(height / cellSize))
                );
            //if (usedCount++ % 2 == 0)
            //{
            //    return new List<Vector2>();
            //}

            var processList    = new GenerationRandomQueue <PointWithExclusionRadius>();
            var acceptedPoints = new List <Vector2>(1000);


            PointWithExclusionRadius firstPoint = null;

            while (firstPoint == null)
            {
                maxTries--;
                if (maxTries < 0)
                {
                    return(acceptedPoints);
                }

                var randX       = random.Next(0, width);
                var randY       = random.Next(0, height);
                var randomPoint = new Vector2(randY, randX);

                var exclusionRadius = CalculateExclusionRadius(randomPoint, offsetGenerationArea, exclusionRadiusRange,
                                                               intensityProvider);
                if (!exclusionRadius.HasValue)
                {
                    continue;
                }
                firstPoint = new PointWithExclusionRadius()
                {
                    ExclusionRadius = exclusionRadius.Value,
                    Point           = randomPoint
                };
            }
            ;
            processList.Add(firstPoint);
            acceptedPoints.Add(firstPoint.Point);

            grid.Set(firstPoint);

            while (!processList.Empty)
            {
                var point = processList.RandomPop();
                for (int i = 0; i < generationCount; i++)
                {
                    Vector2 newPoint = GenerateRandomPointAround(point.Point, point.ExclusionRadius, random);
                    if (offsetGenerationArea.Contains(newPoint))
                    {
                        var calculatedExclusionRadius = CalculateExclusionRadius(newPoint, offsetGenerationArea,
                                                                                 exclusionRadiusRange, intensityProvider);
                        if (!calculatedExclusionRadius.HasValue)
                        {
                            continue;
                        }
                        var newPointWithExclusionRadius = new PointWithExclusionRadius()
                        {
                            Point           = newPoint,
                            ExclusionRadius = calculatedExclusionRadius.Value
                        };

                        if (!grid.Collides(newPointWithExclusionRadius))
                        {
                            processList.Add(newPointWithExclusionRadius);
                            acceptedPoints.Add(newPoint);
                            grid.Set(newPointWithExclusionRadius);
                        }
                    }
                    maxTries--;
                }
                if (maxTries < 0)
                {
                    break;
                }
            }

            return(acceptedPoints.Select(c => c + generationArea.DownLeftPoint).ToList());
        }
예제 #13
0
 public void BeginEdit()
 {
     _savedRange = new MyRange {
         From = From, To = To
     };
 }
예제 #14
0
        protected override void OnStateChange()
        {
            if (State == State.SetDefaults)
            {
                Description                  = @"Enter the description for your new custom Strategy here.";
                Name                         = "ThaAdxOneBar";
                Calculate                    = Calculate.OnBarClose;
                EntriesPerDirection          = 1;
                EntryHandling                = EntryHandling.AllEntries;
                IsExitOnSessionCloseStrategy = true;
                ExitOnSessionCloseSeconds    = 30;
                IsFillLimitOnTouch           = false;
                MaximumBarsLookBack          = MaximumBarsLookBack.TwoHundredFiftySix;
                OrderFillResolution          = OrderFillResolution.Standard;
                Slippage                     = 0;
                StartBehavior                = StartBehavior.WaitUntilFlat;
                TimeInForce                  = TimeInForce.Gtc;
                TraceOrders                  = false;
                RealtimeErrorHandling        = RealtimeErrorHandling.StopCancelClose;
                StopTargetHandling           = StopTargetHandling.PerEntryExecution;
                BarsRequiredToTrade          = 20;
                // Disable this property for performance gains in Strategy Analyzer optimizations
                // See the Help Guide for additional information
                IsInstantiatedOnEachOptimizationIteration = true;

                TradingAccountId       = 0;
                ExitPeriod             = 3;
                AdxPeriod              = 14;
                MinAdx                 = 25;
                ExitSlopeThreshold     = -15;
                UseBoundaryHours       = true;
                StartHour              = 7;
                StartMinute            = 30;
                EndHour                = 12;
                EndMinute              = 30;
                LossExitTicks          = 8;
                EnterPeriod            = 3;
                EnterSlopeThreshold    = 20;
                RecordHistoricalTrades = false;
                EnterBarsLength        = 2;
                ExitBarsLength         = 2;
                EnterViaLimit          = true;
                EnterViaStop           = true;
                ExitStopBuffer         = 2;
                ExitLimitBuffer        = 2;
                Quantity               = 2;
                MinTickRange           = 8;
//                FastMaPeriod = 5;
//                SlowMaPeriod = 10;
//                MinMaDiff = 0.4;
            }
            else if (State == State.Configure)
            {
                //SetOrderQuantity = SetOrderQuantity.DefaultQuantity;

                adxIndicator = EnhancedADX(AdxPeriod, MinAdx);
                AddChartIndicator(adxIndicator);

                if (EnterPeriod > 1)
                {
                    enterAdxSlopeIndicator = AdxSlope(AdxPeriod, EnterPeriod, EnterSlopeThreshold);
                    //AddChartIndicator(enterAdxSlopeIndicator);
                }

                if (ExitPeriod > 1)
                {
                    exitAdxSlopeIndicator = AdxSlope(AdxPeriod, ExitPeriod, ExitSlopeThreshold);
                    //AddChartIndicator(exitAdxSlopeIndicator);
                }

                rangeIndicator = MyRange(EnterBarsLength, MinTickRange);
                //AddChartIndicator(rangeIndicator);

                disableManager.AddRange(DayOfWeek.Sunday, 12, 45, 24, 0);
                disableManager.AddRange(DayOfWeek.Monday, 12, 45, 24, 0);
                disableManager.AddRange(DayOfWeek.Tuesday, 12, 45, 24, 0);
                disableManager.AddRange(DayOfWeek.Wednesday, 12, 45, 24, 0);
                disableManager.AddRange(DayOfWeek.Thursday, 12, 45, 24, 0);
                disableManager.AddRange(DayOfWeek.Friday, 12, 45, 24, 0);


//                disableManager.AddRange(DayOfWeek.Monday, 0, 0, 5, 0);
//                disableManager.AddRange(DayOfWeek.Tuesday, 0, 0, 5, 0);
//                disableManager.AddRange(DayOfWeek.Wednesday, 0, 0, 5, 0);
//                disableManager.AddRange(DayOfWeek.Thursday, 0, 0, 5, 0);
//                disableManager.AddRange(DayOfWeek.Friday, 0, 0, 5, 0);


                //disableManager.AddRange(DayOfWeek.Monday, 6, 30, 6, 45);
                //disableManager.AddRange(DayOfWeek.Tuesday, 6, 30, 6, 45);
                //disableManager.AddRange(DayOfWeek.Wednesday, 6, 30, 6, 45);
                //disableManager.AddRange(DayOfWeek.Thursday, 6, 30, 6, 45);
                //disableManager.AddRange(DayOfWeek.Friday, 6, 30, 6, 45);

                //				fastMaIndicator = EMA(FastMaPeriod);
                //                slowMaIndicator = EMA(SlowMaPeriod);

                //                slowMaIndicator.Plots[0].Brush = Brushes.White;
                //                slowMaIndicator.Plots[0].Width = 2;

                //                fastMaIndicator.Plots[0].Width = 2;

                //                AddChartIndicator(fastMaIndicator);
                //                AddChartIndicator(slowMaIndicator);
            }
            else if (State == State.DataLoaded)
            {
            }
        }
예제 #15
0
        protected override void OnStateChange()
        {
            if (State == State.SetDefaults)
            {
                Description                  = @"ThaAdxFixed";
                Name                         = "ThaAdxFixed";
                Calculate                    = Calculate.OnBarClose;
                EntriesPerDirection          = 1;
                EntryHandling                = EntryHandling.AllEntries;
                IsExitOnSessionCloseStrategy = true;
                ExitOnSessionCloseSeconds    = 30;
                IsFillLimitOnTouch           = false;
                MaximumBarsLookBack          = MaximumBarsLookBack.TwoHundredFiftySix;
                OrderFillResolution          = OrderFillResolution.Standard;
                Slippage                     = 0;
                StartBehavior                = StartBehavior.WaitUntilFlat;
                TimeInForce                  = TimeInForce.Gtc;
                TraceOrders                  = false;
                RealtimeErrorHandling        = RealtimeErrorHandling.StopCancelClose;
                StopTargetHandling           = StopTargetHandling.PerEntryExecution;
                BarsRequiredToTrade          = 20;
                // Disable this property for performance gains in Strategy Analyzer optimizations
                // See the Help Guide for additional information
                IsInstantiatedOnEachOptimizationIteration = true;

                TradingAccountId       = 0;
                AdxPeriod              = 14;
                MinAdx                 = 25;
                UseBoundaryHours       = true;
                StartHour              = 7;
                StartMinute            = 30;
                EndHour                = 12;
                EndMinute              = 30;
                EnterPeriod            = 3;
                EnterSlopeThreshold    = 20;
                RecordHistoricalTrades = false;
                EnterBarsLength        = 2;
                ExitStopBuffer         = 2;
                ExitLimitBuffer        = 2;
                Quantity               = 1;
                UseDynamicQuantity     = false;
                MaxDynamicQuantity     = 5;
                Contrarian             = false;
            }
            else if (State == State.Configure)
            {
                SetProfitTarget(CalculationMode.Ticks, this.ExitLimitBuffer);
                SetStopLoss(CalculationMode.Ticks, this.ExitStopBuffer);
                //SetOrderQuantity = SetOrderQuantity.DefaultQuantity;

                adxIndicator = EnhancedADX(AdxPeriod, MinAdx);
                AddChartIndicator(adxIndicator);

                if (EnterPeriod > 1)
                {
                    enterAdxSlopeIndicator = AdxSlope(AdxPeriod, EnterPeriod, EnterSlopeThreshold);
                    //AddChartIndicator(enterAdxSlopeIndicator);
                }

                rangeIndicator = MyRange(EnterBarsLength, 3);
                //AddChartIndicator(rangeIndicator);

                disableManager.AddRange(DayOfWeek.Sunday, 13, 30, 24, 0);
                disableManager.AddRange(DayOfWeek.Monday, 13, 30, 24, 0);
                disableManager.AddRange(DayOfWeek.Tuesday, 13, 30, 24, 0);
                disableManager.AddRange(DayOfWeek.Wednesday, 13, 30, 24, 0);
                disableManager.AddRange(DayOfWeek.Thursday, 13, 30, 24, 0);
                disableManager.AddRange(DayOfWeek.Friday, 13, 30, 24, 0);


                disableManager.AddRange(DayOfWeek.Monday, 0, 0, 5, 0);
                disableManager.AddRange(DayOfWeek.Tuesday, 0, 0, 5, 0);
                disableManager.AddRange(DayOfWeek.Wednesday, 0, 0, 5, 0);
                disableManager.AddRange(DayOfWeek.Thursday, 0, 0, 5, 0);
                disableManager.AddRange(DayOfWeek.Friday, 0, 0, 5, 0);
            }
            else if (State == State.DataLoaded)
            {
            }
        }
        protected override void OnStateChange()
        {
            if (State == State.SetDefaults)
            {
                Description                  = @"ThaAdxRideTheTrend";
                Name                         = "ThaAdxRideTheTrend";
                Calculate                    = Calculate.OnBarClose;
                EntriesPerDirection          = 1;
                EntryHandling                = EntryHandling.AllEntries;
                IsExitOnSessionCloseStrategy = true;
                ExitOnSessionCloseSeconds    = 30;
                IsFillLimitOnTouch           = false;
                MaximumBarsLookBack          = MaximumBarsLookBack.TwoHundredFiftySix;
                OrderFillResolution          = OrderFillResolution.Standard;
                Slippage                     = 0;
                StartBehavior                = StartBehavior.WaitUntilFlat;
                TimeInForce                  = TimeInForce.Gtc;
                TraceOrders                  = false;
                RealtimeErrorHandling        = RealtimeErrorHandling.StopCancelClose;
                StopTargetHandling           = StopTargetHandling.PerEntryExecution;
                BarsRequiredToTrade          = 20;
                // Disable this property for performance gains in Strategy Analyzer optimizations
                // See the Help Guide for additional information
                IsInstantiatedOnEachOptimizationIteration = true;

                TradingAccountId           = 0;
                ExitPeriod                 = 3;
                AdxPeriod                  = 14;
                MinAdx                     = 25;
                ExitSlopeThreshold         = -15;
                UseBoundaryHours           = true;
                StartHour                  = 7;
                StartMinute                = 30;
                EndHour                    = 12;
                EndMinute                  = 30;
                LossExitTicks              = 8;
                EnterPeriod                = 3;
                EnterSlopeThreshold        = 20;
                RecordHistoricalTrades     = false;
                EnterBarsLength            = 2;
                ExitBarsLength             = 2;
                EnterViaLimit              = true;
                EnterViaStop               = true;
                ExitStopBuffer             = 2;
                ExitLimitBuffer            = 2;
                Quantity                   = 2;
                MinTickRange               = 8;
                FireSns                    = false;
                MinTrendLength             = 1;
                TargetDollars              = 0;
                TrailingStopMinDollars     = 0;
                TrailingStopDivisorDollars = 0;
                TrailingStopCushionDollars = 0;
                OverrideRealTimeOnly       = false;
            }
            else if (State == State.Configure)
            {
                //SetOrderQuantity = SetOrderQuantity.DefaultQuantity;

                trailingStopEnabled = TrailingStopMinDollars > 0;

                if (trailingStopEnabled)
                {
                    AddDataSeries(BarsPeriodType.Tick, 300);
                }

                tickCounter = TickCounter(true, false);
                AddChartIndicator(tickCounter);

                rangeIndicator = MyRange(14, MinTickRange);
                //AddChartIndicator(rangeIndicator);

                adxIndicator = EnhancedADX(AdxPeriod, MinAdx);
                AddChartIndicator(adxIndicator);

                if (EnterPeriod > 1)
                {
                    enterAdxSlopeIndicator = AdxSlope(AdxPeriod, EnterPeriod, EnterSlopeThreshold);
                    AddChartIndicator(enterAdxSlopeIndicator);
                }

                if (ExitPeriod > 1)
                {
                    exitAdxSlopeIndicator = AdxSlope(AdxPeriod, ExitPeriod, ExitSlopeThreshold);
                    //AddChartIndicator(exitAdxSlopeIndicator);
                }

                disableManager.AddRange(DayOfWeek.Monday, 6, 25, 6, 50);
                disableManager.AddRange(DayOfWeek.Tuesday, 6, 25, 6, 50);
                disableManager.AddRange(DayOfWeek.Wednesday, 6, 25, 6, 50);
                disableManager.AddRange(DayOfWeek.Thursday, 6, 25, 6, 50);
                disableManager.AddRange(DayOfWeek.Friday, 6, 25, 6, 50);

                //                disableManager.AddRange(DayOfWeek.Sunday, 15, 45, 24, 0);
                //                disableManager.AddRange(DayOfWeek.Monday, 15, 45, 24, 0);
                //                disableManager.AddRange(DayOfWeek.Tuesday, 15, 45, 24, 0);
                //                disableManager.AddRange(DayOfWeek.Wednesday, 15, 45, 24, 0);
                //                disableManager.AddRange(DayOfWeek.Thursday, 15, 45, 24, 0);
                //                disableManager.AddRange(DayOfWeek.Friday, 15, 45, 24, 0);
            }
            else if (State == State.DataLoaded)
            {
            }
        }
예제 #17
0
 public void SetUp()
 {
     _range = new MyRange(1, 5);
 }