namespace QuantConnect.Algorithm.CSharp
{
public class QuantumHorizontalChamber : QCAlgorithm
{
private RelativeStrengthIndex _rsi;
private decimal LastPrice;
private string sym;
public override void Initialize()
{
SetStartDate(2020, 3, 26); //Set Start Date
SetCash(5000); //Set Strategy Cash
sym = "SPY";
var spy = AddEquity(sym, Resolution.Minute);
// spy.SetDataNormalizationMode(DataNormalizationMode.Raw);
_rsi = RSI(sym, 14, MovingAverageType.Wilders, Resolution.Minute);
SetWarmUp(TimeSpan.FromDays(4));
}
/// OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
/// Slice object keyed by symbol containing the stock data
public override void OnData(Slice data)
{
if (!_rsi.IsReady) return;
if (_rsi < 30)
Debug(data.Time.ToString() + ", RSI: " + _rsi);
if (!Portfolio.Invested)
{
if(_rsi <= 25)
MarketOrder(sym, 10);
LastPrice = Securities[sym].Price;
}
else {
if(_rsi >=40 && Portfolio[sym].UnrealizedProfit > 25) {
Liquidate();
}
else if(Portfolio[sym].UnrealizedProfit < -50){
Liquidate();
}
}
}
}
}