| Overall Statistics |
|
Total Trades 2 Average Win 0% Average Loss -1.09% Compounding Annual Return -38.346% Drawdown 1.200% Expectancy -1 Net Profit -0.954% Sharpe Ratio -3.923 Loss Rate 100% Win Rate 0% Profit-Loss Ratio 0 Alpha -0.334 Beta -0.204 Annual Standard Deviation 0.068 Annual Variance 0.005 Information Ratio 0.79 Tracking Error 0.086 Treynor Ratio 1.303 Total Fees $0.00 |
namespace QuantConnect
{
public class TimeBasedAlgo : QCAlgorithm
{
public override void Initialize()
{
SetStartDate(2017, 1, 1);
SetEndDate(2018, 1, 1);
SetCash(5000);
SetBenchmark("SPY");
SetBrokerageModel(BrokerageName.OandaBrokerage);
AddSecurity(SecurityType.Forex, "EURUSD", Resolution.Tick);
SetWarmUp(TimeSpan.FromDays(7));
}
public override void OnData(Slice data)
{
var holdings = Portfolio["EURUSD"].Quantity;
var sma = SMA("EURUSD", 24, Resolution.Hour);
var currentPrice = Securities["EURUSD"].BidPrice;
var dayCount = TimeSpan.FromDays(10);
var tradeTime = 0;
var totalTime = 0;
bool tradeInPlace = false;
if(holdings <= 0)
{
tradeInPlace = false;
}
if(holdings > 0)
{
tradeInPlace = true;
}
if(holdings <= 0 & currentPrice > sma & tradeInPlace == false)
{
MarketOrder("EURUSD", 100000);
LimitOrder("EURUSD", -100000, 20);
SetHoldings("EURUSD", 1);
Log("Purchased EURUSD on " + Time.ToShortDateString());
}
if(holdings <= 0 & currentPrice < sma & tradeInPlace == false)
{
MarketOrder("EURUSD", -100000);
LimitOrder("EURUSD", 100000, 20);
SetHoldings("EURUSD", 1);
Log("Sold EURUSD on " + Time.ToShortDateString());
}
if (Portfolio["EURUSD"].IsLong && totalTime > 10 )
{
MarketOrder("EURUSD", -100000);
List<OrderTicket> cancelledOrders = Transactions.CancelOpenOrders("EURUSD");
totalTime = 0;
SetHoldings("EURUSD", 0);
Log("Cancelled All Orders & Closed Long Trade " + Time.ToShortDateString());
}
if (Portfolio["EURUSD"].IsShort && totalTime > 10 )
{
MarketOrder("EURUSD", 100000);
List<OrderTicket> cancelledOrders = Transactions.CancelOpenOrders("EURUSD");
totalTime = 0;
SetHoldings("EURUSD", 0);
Log("Cancelled All Orders & Closed Short Trade " + Time.ToShortDateString());
}
}
}
}