Overall Statistics |
Total Trades 0 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Net Profit 0% Sharpe Ratio 0 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio 0 Tracking Error 0 Treynor Ratio 0 Total Fees $0.00 |
using System.Drawing; // for Color namespace QuantConnect { public class ExampleStochasticChartingAlgorithm : QCAlgorithm { private RelativeStrengthIndex rsi; private bool _bRSIUpdated; String _symbol = "XIV"; String _plotter = "RSI"; int minVal = 30; public override void Initialize() { SetStartDate(2016, 3, 1); SetEndDate(2016, 12, 31); // Set data resolution var targetSecurity = AddSecurity(SecurityType.Equity, _symbol, Resolution.Second, false, true); targetSecurity.MarginModel = new PatternDayTradingMarginModel(); targetSecurity.FeeModel = new ConstantFeeTransactionModel(1); // Cash allocation SetCash(100000); // Brokerage model and account type: SetBrokerageModel(BrokerageName.Default, AccountType.Margin); // Gather appropriate indicators var symbol = Symbol(_symbol); rsi = RSI(symbol, 5, MovingAverageType.Wilders, Resolution.Daily); rsi.Updated += OnRSIUpdate; _bRSIUpdated = false; //Warmup Time SetWarmUp(TimeSpan.FromDays(1)); Chart plotter = new Chart(_plotter); plotter.AddSeries(new Series("RSI", SeriesType.Line, " ",Color.Blue)); plotter.AddSeries(new Series("Min", SeriesType.Line, " ",Color.Red)); AddChart(plotter); } //Data Event Handler: New data arrives here. "TradeBars" type is a dictionary of strings so you can access it by symbol. public void OnData(TradeBars data) { // If warming up... if (IsWarmingUp) { // Return until algorithm is ready to execute. return; } // Access current tradebar data. TradeBar dataBar = data[_symbol]; // Test RSI if (_bRSIUpdated) { Log("RSI: " + rsi + "[" + dataBar.Time.ToString() + "]"); _bRSIUpdated = false; } } //RSI OnUpdate Function public void OnRSIUpdate(object sender, IndicatorDataPoint data) { // RSI Update Log("OnRSIUpdate()"); _bRSIUpdated = true; // Plot Chart if RSI is ready if (rsi.IsReady) { Plot(_plotter,"RSI", rsi); Plot(_plotter,"Min", minVal); } } public override void OnEndOfDay() { } } }