| 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 Probabilistic 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 -2.045 Tracking Error 0.143 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset |
namespace QuantConnect {
public class Signal : BaseData
{
public decimal Sig3d = 0;
public decimal Sig1m = 0;
public override string GetSource(SubscriptionDataConfig config, DateTime date, DataFeedEndpoint datafeed){
return "https://www.dropbox.com/sh/q30ws9w6dv1wo09/AABEtpaYQLO-5hjJzOIDkQiba?dl=1";
}
public override BaseData Reader(SubscriptionDataConfig config, string line, DateTime date, DataFeedEndpoint datafeed){
Signal signal = new Signal();
try{
string[] data = line.Split(',');
signal.Time = DateTime.Parse(data[0]);
signal.Sig3d = Convert.ToDecimal(data[1]);
signal.Sig1m = Convert.ToDecimal(data[2]);
}
catch (Exception){
return null;
}
return signal;
}
}
}namespace QuantConnect.Algorithm.CSharp
{
public class IKFbot : QCAlgorithm
{
private Signal tradeSignal;
private const string Symbol = "USO";
private SimpleMovingAverage sma;
private SimpleMovingAverage smanow;
public override void Initialize()
{
SetStartDate(2020, 9, 6); //Set Start Date
SetEndDate(2021, 9, 20);
SetCash(100000); //Set Strategy Cash
AddSecurity(SecurityType.Equity, Symbol, Resolution.Minute, false, 2, false);
AddData<Signal>("SignalStrength", Resolution.Minute);
sma = SMA(Symbol, 5, Resolution.Daily);
smanow = SMA(Symbol, 1, Resolution.Daily);
}
public void OnData(Signal data){
tradeSignal = data;
}
public void OnData(TradeBars data){
if(!sma.IsReady) return;
var holdings = Portfolio[Symbol].Quantity;
if(tradeSignal != null){
if ((tradeSignal.Sig1m > 0 && smanow > sma) || (tradeSignal.Sig1m < 0 && smanow < sma)){
if (tradeSignal.Sig3d > 0 && holdings <=0){
SetHoldings(Symbol, 1.0);
}
if (tradeSignal.Sig3d < 0 && holdings >=0){
SetHoldings(Symbol, -1.0);
}
}
}
}
}
}