Overall Statistics
Total Trades
410
Average Win
0.53%
Average Loss
-0.36%
Compounding Annual Return
13.685%
Drawdown
5.700%
Expectancy
0.178
Net Profit
13.605%
Sharpe Ratio
1.123
Loss Rate
52%
Win Rate
48%
Profit-Loss Ratio
1.45
Alpha
0.085
Beta
0.104
Annual Standard Deviation
0.083
Annual Variance
0.007
Information Ratio
0.152
Tracking Error
0.128
Treynor Ratio
0.894
Total Fees
$820.00
namespace QuantConnect 
{   
    public class BasicTemplateAlgorithm : QCAlgorithm
    {
        public override void Initialize() 
        {
			
            //Start and End Date range for the backtest:
            SetStartDate(2016, 1, 1);         
            SetEndDate(DateTime.Now.Date.AddDays(-1));
            
            //Cash allocation
            SetCash(100000);
            
            //Add as many securities as you like. All the data will be passed into the event handler:
            AddSecurity(SecurityType.Forex, "EURUSD", Resolution.Hour);
            AddSecurity(SecurityType.Forex, "USDCHF", Resolution.Hour);
            AddSecurity(SecurityType.Forex, "GBPJPY", Resolution.Hour);
            AddSecurity(SecurityType.Forex, "AUDNZD", Resolution.Hour);
        }

        public void OnData(TradeBars data) 
        {   
            if (Time.DayOfWeek == DayOfWeek.Monday && !Portfolio["EURUSD"].Invested) 
            {
                //Order function places trades: enter the string symbol and the quantity you want:
                SetHoldings("EURUSD", .5);
                SetHoldings("USDCHF", .5);
                
                //Debug sends messages to the user console: "Time" is the algorithm time keeper object 
                Debug("Purchased EURUSD and USDCHF on " + Time.ToShortDateString());
            }
            
            if (Time.DayOfWeek == DayOfWeek.Tuesday && !Portfolio["GBPJPY"].Invested)
            {
             	SetHoldings("GBPJPY", -.5);
                SetHoldings("AUDNZD", -.5);
                
                Debug("Sell GBPJPY and AUDNZD on " + Time.ToShortDateString());
            }
            
            if (Time.DayOfWeek == DayOfWeek.Friday)
            {
            	Liquidate();
            	Debug("Liquidate " + Time.ToShortDateString());
            }
            
        }
    }
}