Overall Statistics |
Total Trades 1 Average Win 0% Average Loss -4.02% Compounding Annual Return -1.979% Drawdown 4.00% Expectancy -1 Net Profit -4.016% Sharpe Ratio -1.237 Loss Rate 100% Win Rate 0% Profit-Loss Ratio 0 Alpha -0.016 Beta 0 Annual Standard Deviation 0.013 Annual Variance 0 Information Ratio -1.342 Tracking Error 0.102 Treynor Ratio -93.76 Total Fees $0.00 |
namespace QuantConnect { /* * QuantConnect University: Overriding Transaction Models * * Create your own fee models to better model your brokerage or market conditions. * With QuantConnect you can configure Slippage, Transaction Fees and Fill Models. */ public class OverrideTransactionModelsAlgorithm : QCAlgorithm { string _symbol = "EURUSD"; bool _boughtToday = false; /// <summary> /// Initialize your algorithm configuration (cash, dates, securities) /// </summary> public override void Initialize() { //Set the start and end dates for backtest: SetStartDate(2013, 06, 01); SetEndDate(DateTime.Now.Date.AddDays(-1)); //Set algorithm cash: SetCash(200000); //Add all the securities you'd like: AddSecurity(SecurityType.Forex, _symbol, Resolution.Minute); Securities[_symbol].TransactionModel = new FXCMTransactionModel(); } /// <summary> /// TradeBars Data Event Handler - all IBM data passed into the data object: data["IBM"].Close /// </summary> public void OnData(TradeBars data) { //Meaningless algorithm which buys on the 15th day of the month: // Using this we can test our $5,000 order fee :) if (Time.Day % 15 == 0 && _boughtToday == false) { Order(_symbol, 5); Debug("Sent order for " + _symbol + " on " + Time.ToShortDateString()); _boughtToday = true; } else if (Time.Day % 15 != 0) { _boughtToday = false; } } } }
namespace QuantConnect.Securities { public class FXCMTransactionModel : SecurityTransactionModel { public FXCMTransactionModel() { } public override decimal GetSlippageApproximation(Security security, Order order) { return 20m; //$ 20 units of currency slippage } /// <summary> /// Default implementation returns 0 for fees. /// </summary> /// <param name="security">The security matching the order</param> /// <param name="order">The order to compute fees for</param> /// <returns>The cost of the order in units of the account currency</returns> public override decimal GetOrderFee(Security security, Order order) { return 0m; } } } // End QC Namespace