Crashed OnBar
Created at 14 Oct 2014, 21:36
JA
Crashed OnBar
14 Oct 2014, 21:36
Ok I'm sorry to spam the forum but I really need help with this. I was told to contact partners but I refuse to pay for coding help for such a simple language. Can someone please tell me whats wrong with this code?? It crashes OnBar for some reason and i dno why. I've tried debugging it but can't figure out whats wrong with it.
using System; using System.Linq; using cAlgo.API; using cAlgo.API.Indicators; using cAlgo.API.Internals; using cAlgo.Indicators; namespace cAlgo { [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)] public class stochasticbollinger : Robot { [Parameter("EMA_period", DefaultValue = 5)] public int EMA_Period { get; set; } [Parameter("BollingerPeriod", DefaultValue = 100)] public int Bol_Period { get; set; } [Parameter("BollingerDeviation", DefaultValue = 1)] public double Bol_Deviation { get; set; } [Parameter("StochasticPeriod", DefaultValue = 25)] public int Stoch_Period { get; set; } [Parameter("StochasticSlowing", DefaultValue = 50)] public int Stoch_Slowing { get; set; } [Parameter("BollingerStochDev", DefaultValue = 25)] public double BolStoch_Deviation { get; set; } [Parameter("BollingerStochPeriod", DefaultValue = 1)] public int BolStoch_Period { get; set; } [Parameter("ATRperiod", DefaultValue = 14)] public int ATR_PERIOD { get; set; } [Parameter("ATRmultiplestop", DefaultValue = 2)] public int ATR_STOPLOSS { get; set; } [Parameter("ATRmultipletakeprofit", DefaultValue = 2)] public int ATR_TAKEPROFIT { get; set; } [Parameter("Slippage", DefaultValue = 4)] public int Slippage { get; set; } [Parameter("Margin", DefaultValue = 1.0)] public int _Margin { get; set; } [Parameter("CandlePeriod", DefaultValue = 0.0)] public int CandlePeriod { get; set; } private int p_volume; private string BuyLabel = "Buy Position"; private string SellLabel = "Sell Position"; private BollingerBands Boll_Bands; private BollingerBands BollStoch_Bands; private StochasticOscillator Stoch_; private AverageTrueRange ATR_; private ExponentialMovingAverage MAone_; protected override void OnStart() { p_volume = _Margin * 10000; Boll_Bands = Indicators.BollingerBands(MarketSeries.Close, Bol_Period, Bol_Deviation, MovingAverageType.Simple); Stoch_ = Indicators.StochasticOscillator(Stoch_Period, Stoch_Slowing, 1, MovingAverageType.Simple); BollStoch_Bands = Indicators.BollingerBands(Stoch_.PercentK, BolStoch_Period, BolStoch_Deviation, MovingAverageType.Simple); ATR_ = Indicators.AverageTrueRange(ATR_PERIOD, MovingAverageType.Simple); MAone_ = Indicators.ExponentialMovingAverage(MarketSeries.Close, EMA_Period); } protected override void OnBar() { var SellPositions = Positions.Find(SellLabel, Symbol, TradeType.Sell); var BuyPositions = Positions.Find(BuyLabel, Symbol, TradeType.Buy); var ATRTP = ATR_TAKEPROFIT * ATR_.Result.LastValue * 10000; var ATRSL = ATR_STOPLOSS * ATR_.Result.LastValue * 10000; if ((Positions.Count == 0) && (MAone_.Result.HasCrossedAbove(Boll_Bands.Bottom.LastValue, CandlePeriod)) && (Stoch_.PercentK.LastValue > BollStoch_Bands.Bottom.LastValue)) { ClosePosition(SellPositions); ExecuteMarketOrder(TradeType.Buy, Symbol, p_volume, BuyLabel, ATRSL, ATRTP, Slippage); } else if ((Positions.Count == 0) && (MAone_.Result.HasCrossedBelow(Boll_Bands.Top.LastValue, CandlePeriod)) && (Stoch_.PercentK.LastValue < BollStoch_Bands.Top.LastValue)) { ClosePosition(BuyPositions); ExecuteMarketOrder(TradeType.Sell, Symbol, p_volume, SellLabel, ATRSL, ATRTP, Slippage); } else if (Positions.Count == 1) { if (Positions.Find(BuyLabel) != null) { ModifyPosition(BuyPositions, ATRSL, ATRTP); } else if (Positions.Find(SellLabel) != null) { ModifyPosition(SellPositions, ATRSL, ATRTP); } } } protected override void OnStop() { // Put your deinitialization logic here } } }
emeeder
14 Oct 2014, 22:29
I copy and pasted your robot into Calgo.
It doesnt crash and it finishes backtesting with no problems.
But i cant get it to trade at all. 1m, 5 m, 1h, 4h
What time frame are you running it on? and are the default settings set at tradeable levels?