| 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 |
import numpy as np
import decimal as d
from datetime import timedelta
### <summary>
### Strategy for short and long based on IchiMoku Senkou Span A and Span B.
### </summary>
class DCAlgorithm(QCAlgorithm):
def Initialize(self):
'''Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.'''
# ==== Date and Equity Settings ====
self.SetStartDate(2018,10, 10) #Set Start Date
self.SetEndDate(2018,10,25) #Set End Date
self.SetCash(100000) #Set Strategy Cash
# ==== System Inputs ====
self.dtl = d.Decimal(0.001)
self.dts = d.Decimal(-0.001)
self.symbol = "USDCAD"
self.LongPos = 1.0
self.ShortPos = -1.0
self.SetBenchmark(self.symbol)
# ==== Equities Data Structure ====
# Find more symbols here: http://quantconnect.com/data
#self.AddEquity(self.symbol, Resolution.Hour)
#self.Debug("numpy test >>> print numpy.pi: " + str(np.pi))
# ==== Forex data structure ====
#self.AddForex(self.symbol, Resolution.Hour, Market.Oanda)
self.AddForex(self.symbol, Resolution.Hour, Market.Oanda)
#self.forex.SetDataNormalizationMode(DataNormalizationMode.SplitAdjusted)
#self.SetBrokerageModel(BrokerageName.OandaBrokerage)
consolidator = QuoteBarConsolidator(timedelta(1))
consolidator.DataConsolidated += self.OnDailyData
self.SubscriptionManager.AddConsolidator(self.symbol, consolidator)
# ==== Set Up Rolling Window ====
self.window = RollingWindow[QuoteBar](2)
# Add daily bar to daily rolling window
def OnDailyData(self, sender, quote):
self.window.Add(quote)
def OnData(self, data):
'''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
Arguments:
data: Slice object keyed by symbol containing the stock data
'''
#self.window.Add(data[self.symbol])
if not (self.window.IsReady): return
currBar = self.window[0] # Current bar had index zero.
pastBar = self.window[1] # Past bar has index one.
self.Log("Price: {0} -> {1} ... {2} -> {3}".format(pastBar.Time, pastBar.Close, currBar.Time, currBar.Close))
difference = currBar.Close - pastBar.Close
self.dc = difference/currBar.Close
self.Log(self.dc)
self.Plot("dailycandle", "dc", self.dc)