Esempio n. 1
0
 protected override void OnBar()
 {
     if (c.EntryParameters.EntryMode == EntryMode.BollingerBandsDistance && !RunInfo.Active)
     {
         if (bb.Result.Reverse().Skip(1).Take(c.EntryParameters.BBDistance.BBDistancePeriods).All(x => x <= c.EntryParameters.BBDistance.BBDistanceThreshold))
         {
             RunInfo.InitializeGrids();
             Print("Grids: {0}", String.Join("-", RunInfo.Grids.Select(x => x.EstimatedPricing.ToString()).ToArray()));
             Print("OriginalAsk: {0}", RunInfo.OriginalAsk.ToString());
             Print("UpperGroundStartingPoint: {0}", RunInfo.UpperGroundStartingPoint.ToString());
             Print("OriginalBid: {0}", RunInfo.OriginalBid.ToString());
             Print("UnderGroundStartingPoint: {0}", RunInfo.UnderGroundStartingPoint.ToString());
             RunInfo.PlaceGridOrders();
         }
     }
 }
Esempio n. 2
0
        protected override void OnBar()
        {
            List <int> BBDistances = new List <int>();

            if (c.EntryParameters.EntryMode == EntryMode.BollingerBandsDistance && !RunInfo.Active)
            {
                for (int i = 0; i < c.EntryParameters.BBDistance.BBDistancePeriods; i++)
                {
                    BBDistances.Add(this.DistanceInPips(bb.Top.Last(i + 1), bb.Bottom.Last(i + 1)));
                }

                if (BBDistances.All(x => x <= c.EntryParameters.BBDistance.BBDistanceThreshold))
                {
                    RunInfo.InitializeGrids();
                    Print("Grids: {0}", String.Join("-", RunInfo.Grids.Select(x => x.EstimatedPricing.ToString()).ToArray()));
                    Print("OriginalAsk: {0}", RunInfo.OriginalAsk.ToString());
                    Print("UpperGroundStartingPoint: {0}", RunInfo.UpperGroundStartingPoint.ToString());
                    Print("OriginalBid: {0}", RunInfo.OriginalBid.ToString());
                    Print("UnderGroundStartingPoint: {0}", RunInfo.UnderGroundStartingPoint.ToString());
                    RunInfo.PlaceGridOrders();
                }
            }
        }
Esempio n. 3
0
 protected override void OnTick()
 {
     if (RunInfo.Active)
     {
         RunInfo.EnsureAllClosed();
     }
     //Put your core logic here
     if (c.EntryParameters.EntryMode == EntryMode.Continuous)
     {
     }
     else if (c.EntryParameters.EntryMode == EntryMode.Volume)
     {
         if (!RunInfo.Active && LastTempValue != Bars.TickVolumes.Last(1))
         {
             LastTempValue = Bars.TickVolumes.Last(1);
             Print("TickVolume.Last(1): {0} - VolumeThreshold.Max: {1}", LastTempValue.ToString(), c.EntryParameters.TickVolumeThreshold.Max.ToString());
         }
         if (!RunInfo.Active && Bars.TickVolumes.Maximum(3) <= c.EntryParameters.TickVolumeThreshold.Max.FallbackIfZero(TickVolumeThresholdMax))
         {
             RunInfo.InitializeGrids();
             Print("Grids: {0}", String.Join("-", RunInfo.Grids.Select(x => x.EstimatedPricing.ToString()).ToArray()));
             Print("OriginalAsk: {0}", RunInfo.OriginalAsk.ToString());
             Print("UpperGroundStartingPoint: {0}", RunInfo.UpperGroundStartingPoint.ToString());
             Print("OriginalBid: {0}", RunInfo.OriginalBid.ToString());
             Print("UnderGroundStartingPoint: {0}", RunInfo.UnderGroundStartingPoint.ToString());
             RunInfo.PlaceGridOrders();
         }
         else if (RunInfo.Active)
         {
             if (TextTotalNetProfit == null)
             {
                 TextTotalNetProfit = Chart.DrawText("TotalNetProfit", "Total Net Profit: " + RunInfo.TotalNetProfit.ToString("#0.00"), Bars.OpenTimes.LastValue, Bars.HighPrices.LastValue, Color.White);
             }
             else
             {
                 TextTotalNetProfit.Text = "Total Net Profit: " + RunInfo.TotalNetProfit.ToString("#0.00");
             }
             RunInfo.AnalyzeConditionalClosure();
         }
     }
     else if (c.EntryParameters.EntryMode == EntryMode.BollingerBandsDistance && RunInfo.Active)
     {
         if (TextTotalNetProfit == null)
         {
             TextTotalNetProfit = Chart.DrawText("TotalNetProfit", "Total Net Profit: " + RunInfo.TotalNetProfit.ToString("#0.00"), Bars.OpenTimes.LastValue, Bars.HighPrices.LastValue, Color.White);
         }
         else
         {
             TextTotalNetProfit.Text = "Total Net Profit: " + RunInfo.TotalNetProfit.ToString("#0.00");
         }
         RunInfo.AnalyzeConditionalClosure();
     }
     else if (c.EntryParameters.EntryMode == EntryMode.TimeRangeOfTheDay)
     {
         var CurrentTime = c.EntryParameters.TimeOfTheDay.TimeMode == DateTimeMode.Local ? Time.ToLocalTime() : Time;
         var IsCycleOkay = c.EntryParameters.TimeOfTheDay.MaximumCycle <= 0 || RunInfo.RunningCycle < c.EntryParameters.TimeOfTheDay.MaximumCycle;
         if (!RunInfo.Active)
         {
             if (CurrentTime > CurrentTime.Date.Add(c.EntryParameters.TimeOfTheDay.StartTimeSpan) && CurrentTime < CurrentTime.Date.Add(c.EntryParameters.TimeOfTheDay.EndTimeSpan))
             {
                 RunInfo.InitializeCycle();
                 RunInfo.InitializeGrids();
                 Print("Grids: {0}", String.Join("-", RunInfo.Grids.Select(x => x.EstimatedPricing.ToString()).ToArray()));
                 Print("OriginalAsk: {0}", RunInfo.OriginalAsk.ToString());
                 Print("UpperGroundStartingPoint: {0}", RunInfo.UpperGroundStartingPoint.ToString());
                 Print("OriginalBid: {0}", RunInfo.OriginalBid.ToString());
                 Print("UnderGroundStartingPoint: {0}", RunInfo.UnderGroundStartingPoint.ToString());
                 RunInfo.PlaceGridOrders();
             }
         }
         else
         {
             if (TextTotalNetProfit == null)
             {
                 TextTotalNetProfit = Chart.DrawText("TotalNetProfit", "Total Net Profit: " + RunInfo.TotalNetProfit.ToString("#0.00"), Bars.OpenTimes.LastValue, Bars.HighPrices.LastValue, Color.White);
             }
             else
             {
                 TextTotalNetProfit.Text = "Total Net Profit: " + RunInfo.TotalNetProfit.ToString("#0.00");
             }
             RunInfo.AnalyzeConditionalClosure();
         }
     }
 }