| 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 0 Tracking Error 0 Treynor Ratio 0 Total Fees $0.00 |
namespace QuantConnect
{
/*
* Basic Template Algorithm
*
* The underlying QCAlgorithm class has many methods which enable you to use QuantConnect.
* We have explained some of these here, but the full base class can be found at:
* https://github.com/QuantConnect/Lean/tree/master/Algorithm
*/
public class BasicTemplateAlgorithm : QCAlgorithm
{
private Security _eurusd;
private RelativeStrengthIndex _rsi14;
public override void Initialize()
{
SetBrokerageModel(BrokerageName.OandaBrokerage);
// backtest parameters
SetStartDate(2016, 1, 1);
SetEndDate(DateTime.Now);
// cash allocation
SetCash(10000);
// request specific equities
// including forex. Options and futures in beta.
_eurusd = AddCfd("EURUSD", Resolution.Minute, Market.Oanda);
_rsi14 = RSI(_eurusd.Symbol, 14);
}
/*
* New data arrives here.
* The "Slice" data represents a slice of time, it has all the data you need for a moment.
*/
public override void OnData(Slice data)
{
// slice has lots of useful information
TradeBars bars = data.Bars;
Splits splits = data.Splits;
Dividends dividends = data.Dividends;
if (_eurusd.Holdings.HoldStock)
{
ExitLogic();
}
else
{
EntryLogic();
}
}
private void ExitLogic()
{
if (_rsi14 == 50)
{
Liquidate(_eurusd.Symbol);
}
}
private void EntryLogic()
{
if (_rsi14 > 70)
{
SetHoldings(_eurusd.Symbol, 1);
}
if (_rsi14 < 30)
{
SetHoldings(_eurusd.Symbol, -1);
}
}
}
}