Overall Statistics |
Total Trades 50 Average Win 0.12% Average Loss -0.03% Compounding Annual Return 1.207% Drawdown 0.400% Expectancy 0.234 Net Profit 0.204% Sharpe Ratio 0.882 Loss Rate 72% Win Rate 28% Profit-Loss Ratio 3.41 Alpha 0.054 Beta -2.816 Annual Standard Deviation 0.011 Annual Variance 0 Information Ratio -0.578 Tracking Error 0.011 Treynor Ratio -0.003 Total Fees $0.00 |
import pandas as pd from datetime import datetime from collections import deque class QCAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2018, 3, 1) self.SetEndDate(2018, 5, 1) self.SetCash(5000) self.AddForex("EURUSD", Resolution.Hour, Market.Oanda) self.fast = self.EMA("EURUSD", 10) self.slow = self.EMA("EURUSD", 15) self.previous = None self.rsi = self.RSI("EURUSD", 14, MovingAverageType.Simple, Resolution.Hour) self.sto = self.STO("EURUSD", 15, 3, 3, Resolution.Hour) def OnData(self, data): if not (self.fast.IsReady and self.slow.IsReady): return if not (self.rsi.IsReady and self.sto.IsReady): return if not self.Portfolio["EURUSD"].IsLong: if self.fast.Current.Value > self.slow.Current.Value: if self.rsi.Current.Value > 40 and self.rsi.Current.Value < 80: if self.sto.Current.Value > 20 and self.sto.Current.Value < 90: self.MarketOrder("EURUSD", 1000) if self.Portfolio["EURUSD"].IsLong and self.fast.Current.Value < self.slow.Current.Value: #self.Log("SELL >> {0}".format(self.Securities["EURUSD"].Price)) self.MarketOrder("EURUSD", -1000) self.previous = self.Time