protected override void OnStateChange() { if (State == State.SetDefaults) { Description = @"Enter the description for your new custom Strategy here."; Name = "HeikenAshiPullbacks"; 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; ProfitTicks = 3; StopLossTicks = 8; TrendStrength = 5; InitialQuantity = 2; LetItRideQuantity = 1; TrailingBarsStop = 3; // Disable this property for performance gains in Strategy Analyzer optimizations // See the Help Guide for additional information IsInstantiatedOnEachOptimizationIteration = true; } else if (State == State.Configure) { AddDataSeries(Data.BarsPeriodType.Second, 1); autoTrend = AutoTrendHNT8(false, this.TrendStrength, true, false, 60, Brushes.DarkRed, Brushes.Chartreuse, Brushes.DarkRed, Brushes.Chartreuse); AddChartIndicator(autoTrend); swing = Swing(this.TrendStrength); AddChartIndicator(swing); momentum = Momentum(14); AddChartIndicator(momentum); stochasticsFast_14_3 = EnhancedStochasticsFast(3, 14, Brushes.Chartreuse, Brushes.Transparent, true, 1); AddChartIndicator(stochasticsFast_14_3); greenBarStick = GuerillaStickSimple(Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.GreenBar, 0, 0); AddChartIndicator(greenBarStick); redBarStick = GuerillaStickSimple(Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.RedBar, 0, 0); AddChartIndicator(redBarStick); List <DisasbleTimeRange> disableTimeRanges = new List <DisasbleTimeRange>(); disableTimeRanges.Add(new DisasbleTimeRange() { Day = DayOfWeek.Monday, StartHour = 6, StartMinute = 0, EndHour = 18, EndMinute = 00 }); foreach (DisasbleTimeRange d in disableTimeRanges) { disableManager.AddRange(DayOfWeek.Sunday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Monday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Tuesday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Wednesday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Thursday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Friday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); } } }
protected override void OnStateChange() { if (State == State.SetDefaults) { Description = @"Enter the description for your new custom Strategy here."; Name = "Research2"; 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 = 2; // Disable this property for performance gains in Strategy Analyzer optimizations // See the Help Guide for additional information IsInstantiatedOnEachOptimizationIteration = true; StartTradingHour = 7; StartTradingMinute = 45; StopTradingHour = 12; StopTradingMinute = 45; ProfitTicks = 5; HoldPeriods = 1; } else if (State == State.Configure) { //SetProfitTarget(CalculationMode.Ticks, 50); SetStopLoss(CalculationMode.Ticks, 40); AddDataSeries(Data.BarsPeriodType.Second, (int)(shortTimePeriod * 60)); AddDataSeries(Data.BarsPeriodType.Second, 5); guerillaTickProfile = GuerillaTickProfile(BarsArray[0], Brushes.MediumVioletRed, Brushes.LightGray, 28, 200); AddChartIndicator(guerillaTickProfile); greenBarStick = GuerillaStickSimple(BarsArray[0], Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.GreenBar, 0, 0); AddChartIndicator(greenBarStick); redBarStick = GuerillaStickSimple(BarsArray[0], Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.RedBar, 0, 0); AddChartIndicator(redBarStick); fiftyHammerStick = GuerillaStickSimple(BarsArray[0], Brushes.Chartreuse, Brushes.Firebrick, GuerillaChartPattern.FiftyHammer, 0, 0); AddChartIndicator(fiftyHammerStick); fiftyManStick = GuerillaStickSimple(BarsArray[0], Brushes.Chartreuse, Brushes.Firebrick, GuerillaChartPattern.FiftyMan, 0, 0); AddChartIndicator(fiftyManStick); fiftyBarStick = GuerillaStickSimple(BarsArray[0], Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.FiftyBar, 0, 0); AddChartIndicator(fiftyBarStick); bigBarStick = GuerillaStickSimple(BarsArray[0], Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.BigBar, 0, 0); AddChartIndicator(bigBarStick); } }
protected override void OnStateChange() { if (State == State.SetDefaults) { Description = @"Enter the description for your new custom Strategy here."; Name = "ScalpTheCrowd"; 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 = 1; ProfitTicks = 5; StopLossTicks = 4; // Disable this property for performance gains in Strategy Analyzer optimizations // See the Help Guide for additional information IsInstantiatedOnEachOptimizationIteration = true; } else if (State == State.Configure) { AddDataSeries(Data.BarsPeriodType.Second, (int)(shortTimePeriod * 60)); AddDataSeries(Data.BarsPeriodType.Tick, 1); guerillaTickProfile = GuerillaTickProfile(BarsArray[0], Brushes.MediumVioletRed, Brushes.LightGray, 13, 2000); AddChartIndicator(guerillaTickProfile); #region Primary Sticks primaryGreenBarStick = GuerillaStickSimple(BarsArray[0], Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.GreenBar, 0, 0); AddChartIndicator(primaryGreenBarStick); primaryRedBarStick = GuerillaStickSimple(BarsArray[0], Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.RedBar, 0, 0); AddChartIndicator(primaryRedBarStick); primaryFiftyHammerStick = GuerillaStickSimple(BarsArray[0], Brushes.HotPink, Brushes.HotPink, GuerillaChartPattern.FiftyHammer, 0, 0); AddChartIndicator(primaryFiftyHammerStick); primaryFiftyManStick = GuerillaStickSimple(BarsArray[0], Brushes.HotPink, Brushes.HotPink, GuerillaChartPattern.FiftyMan, 0, 0); AddChartIndicator(primaryFiftyManStick); primaryFiftyBarStick = GuerillaStickSimple(BarsArray[0], Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.FiftyBar, 0, 0); AddChartIndicator(primaryFiftyBarStick); primaryBigBarStick = GuerillaStickSimple(BarsArray[0], Brushes.Blue, Brushes.Blue, GuerillaChartPattern.BigBar, 0, 0); AddChartIndicator(primaryBigBarStick); #endregion #region Secondary Sticks secondaryGreenBarStick = GuerillaStickSimple(BarsArray[1], Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.GreenBar, 0, 0); AddChartIndicator(secondaryGreenBarStick); secondaryRedBarStick = GuerillaStickSimple(BarsArray[1], Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.RedBar, 0, 0); AddChartIndicator(secondaryRedBarStick); secondaryFiftyHammerStick = GuerillaStickSimple(BarsArray[1], Brushes.HotPink, Brushes.HotPink, GuerillaChartPattern.FiftyHammer, 0, 0); AddChartIndicator(secondaryFiftyHammerStick); secondaryFiftyManStick = GuerillaStickSimple(BarsArray[1], Brushes.HotPink, Brushes.HotPink, GuerillaChartPattern.FiftyMan, 0, 0); AddChartIndicator(secondaryFiftyManStick); secondaryFiftyBarStick = GuerillaStickSimple(BarsArray[1], Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.FiftyBar, 0, 0); AddChartIndicator(secondaryFiftyBarStick); secondaryBigBarStick = GuerillaStickSimple(BarsArray[1], Brushes.Blue, Brushes.Blue, GuerillaChartPattern.BigBar, 0, 0); AddChartIndicator(secondaryBigBarStick); #endregion List <DisasbleTimeRange> disableTimeRanges = new List <DisasbleTimeRange>(); disableTimeRanges.Add(new DisasbleTimeRange() { Day = DayOfWeek.Monday, StartHour = 5, StartMinute = 30, EndHour = 7, EndMinute = 44 }); disableTimeRanges.Add(new DisasbleTimeRange() { Day = DayOfWeek.Monday, StartHour = 12, StartMinute = 46, EndHour = 16, EndMinute = 29 }); foreach (DisasbleTimeRange d in disableTimeRanges) { disableManager.AddRange(DayOfWeek.Sunday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Monday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Tuesday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Wednesday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Thursday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Friday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); } } }
protected override void OnStateChange() { if (State == State.SetDefaults) { Description = @"Enter the description for your new custom Strategy here."; Name = "ScalpTick"; 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 = 2; ProfitTicks = 4; StopLossTicks = 15; TradeSecondTrade = true; TradeTails = true; TradeBigBars = true; Trade0Period = true; Trade1Period = true; TradeOpen = true; TickProfileMinThreshold = 12; BreakevenThreshold = .5; // Disable this property for performance gains in Strategy Analyzer optimizations // See the Help Guide for additional information IsInstantiatedOnEachOptimizationIteration = true; } else if (State == State.Configure) { //SetProfitTarget(CalculationMode.Ticks, 4); //SetStopLoss(CalculationMode.Ticks, 25); AddHeikenAshi("NQ 12-18", BarsPeriodType.Tick, 400, MarketDataType.Last); AddDataSeries(Data.BarsPeriodType.Second, 5); guerillaTickProfile = GuerillaTickProfile(BarsArray[0], Brushes.MediumVioletRed, Brushes.LightGray, this.TickProfileMinThreshold, 2000); AddChartIndicator(guerillaTickProfile); greenBarStick = GuerillaStickSimple(BarsArray[0], Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.GreenBar, 0, 0); AddChartIndicator(greenBarStick); redBarStick = GuerillaStickSimple(BarsArray[0], Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.RedBar, 0, 0); AddChartIndicator(redBarStick); fiftyHammerStick = GuerillaStickSimple(BarsArray[0], Brushes.HotPink, Brushes.HotPink, GuerillaChartPattern.FiftyHammer, 0, 0); AddChartIndicator(fiftyHammerStick); fiftyManStick = GuerillaStickSimple(BarsArray[0], Brushes.HotPink, Brushes.HotPink, GuerillaChartPattern.FiftyMan, 0, 0); AddChartIndicator(fiftyManStick); fiftyBarStick = GuerillaStickSimple(BarsArray[0], Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.FiftyBar, 0, 0); AddChartIndicator(fiftyBarStick); bigBarStick = GuerillaStickSimple(BarsArray[0], Brushes.Blue, Brushes.Blue, GuerillaChartPattern.BigBar, 0, 0); AddChartIndicator(bigBarStick); List <DisasbleTimeRange> disableTimeRanges = new List <DisasbleTimeRange>(); //disableTimeRanges.Add(new DisasbleTimeRange() { Day = DayOfWeek.Monday, StartHour = 5, StartMinute = 30, EndHour = 6, EndMinute = 29 }); //disableTimeRanges.Add(new DisasbleTimeRange() { Day = DayOfWeek.Monday, StartHour = 7, StartMinute = 0, EndHour = 7, EndMinute = 29 }); //disableTimeRanges.Add(new DisasbleTimeRange() { Day = DayOfWeek.Monday, StartHour = 9, StartMinute = 0, EndHour = 11, EndMinute = 29 }); //disableTimeRanges.Add(new DisasbleTimeRange() { Day = DayOfWeek.Monday, StartHour = 9, StartMinute = 0, EndHour = 9, EndMinute = 29 }); //disableTimeRanges.Add(new DisasbleTimeRange() { Day = DayOfWeek.Monday, StartHour = 10, StartMinute = 0, EndHour = 10, EndMinute = 29 }); //disableTimeRanges.Add(new DisasbleTimeRange() { Day = DayOfWeek.Monday, StartHour = 9, StartMinute = 0, EndHour = 10, EndMinute = 59 }); disableTimeRanges.Add(new DisasbleTimeRange() { Day = DayOfWeek.Monday, StartHour = 12, StartMinute = 46, EndHour = 16, EndMinute = 29 }); //disableTimeRanges.Add(new DisasbleTimeRange() { Day = DayOfWeek.Monday, StartHour = 20, StartMinute = 0, EndHour = 20, EndMinute = 59 }); //disableTimeRanges.Add(new DisasbleTimeRange() { Day = DayOfWeek.Monday, StartHour = 17, StartMinute = 30, EndHour = 18, EndMinute = 29 }); //disableTimeRanges.Add(new DisasbleTimeRange() { Day = DayOfWeek.Monday, StartHour = 19, StartMinute = 30, EndHour = 20, EndMinute = 59 }); foreach (DisasbleTimeRange d in disableTimeRanges) { disableManager.AddRange(DayOfWeek.Sunday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Monday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Tuesday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Wednesday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Thursday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Friday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); } trailingStopManager.AddItem((int)(this.ProfitTicks * this.BreakevenThreshold), (int)(this.ProfitTicks * this.BreakevenThreshold)); } }
protected override void OnStateChange() { if (State == State.SetDefaults) { Description = @"Enter the description for your new custom Strategy here."; Name = "DayTradingRockStar"; 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; ProfitTicks = 3; StopLossTicks = 5; // Disable this property for performance gains in Strategy Analyzer optimizations // See the Help Guide for additional information IsInstantiatedOnEachOptimizationIteration = true; } else if (State == State.Configure) { AddDataSeries(Data.BarsPeriodType.Second, 5); //AddDataSeries(Data.BarsPeriodType.Minute, 5); autoTrend = AutoTrendHNT8(false, 5, true, false, 60, Brushes.DarkRed, Brushes.Chartreuse, Brushes.DarkRed, Brushes.Chartreuse); AddChartIndicator(autoTrend); stochasticsFast_14_3 = EnhancedStochasticsFast(3, 14, Brushes.Chartreuse, Brushes.Transparent, true, 1); AddChartIndicator(stochasticsFast_14_3); //stochasticsFast_14_3_5min = StochasticsFast(BarsArray[2], 3, 14); //AddChartIndicator(stochasticsFast_14_3_5min); stochastics_60_10_1 = EnhancedStochastics(1, 60, 10, Brushes.Transparent, Brushes.DodgerBlue); AddChartIndicator(stochastics_60_10_1); stochasticsFast_40_4 = EnhancedStochasticsFast(4, 40, Brushes.Violet, Brushes.Transparent, false, 1); AddChartIndicator(stochasticsFast_40_4); stochasticsFast_9_3 = EnhancedStochasticsFast(3, 9, Brushes.DarkRed, Brushes.Transparent, false, 1); AddChartIndicator(stochasticsFast_9_3); ema20 = EMA(20); ema20.Plots[0].Brush = Brushes.Green; AddChartIndicator(ema20); ema50 = EMA(50); ema50.Plots[0].Brush = Brushes.DodgerBlue; AddChartIndicator(ema50); ema200 = EMA(200); ema200.Plots[0].Brush = Brushes.Red; AddChartIndicator(ema200); greenBarStick = GuerillaStickSimple(Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.GreenBar, 0, 0); AddChartIndicator(greenBarStick); redBarStick = GuerillaStickSimple(Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.RedBar, 0, 0); AddChartIndicator(redBarStick); fiftyHammerStick = GuerillaStickSimple(Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.FiftyHammer, 0, 0); AddChartIndicator(fiftyHammerStick); fiftyManStick = GuerillaStickSimple(Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.FiftyMan, 0, 0); AddChartIndicator(fiftyManStick); bigBarStick = GuerillaStickSimple(Brushes.Transparent, Brushes.Transparent, GuerillaChartPattern.BigBar, 0, 0); AddChartIndicator(bigBarStick); List <DisasbleTimeRange> disableTimeRanges = new List <DisasbleTimeRange>(); disableTimeRanges.Add(new DisasbleTimeRange() { Day = DayOfWeek.Monday, StartHour = 0, StartMinute = 0, EndHour = 9, EndMinute = 59 }); disableTimeRanges.Add(new DisasbleTimeRange() { Day = DayOfWeek.Monday, StartHour = 12, StartMinute = 30, EndHour = 24, EndMinute = 59 }); foreach (DisasbleTimeRange d in disableTimeRanges) { disableManager.AddRange(DayOfWeek.Sunday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Monday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Tuesday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Wednesday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Thursday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); disableManager.AddRange(DayOfWeek.Friday, d.StartHour, d.StartMinute, d.EndHour, d.EndMinute); } } }