public FaderClose(QREBridgeBase bridge, Symbol symbol) : base(bridge, symbol) { //Set up raw moving average var maLength = parameter <int>("maLength"); switch (parameter <int>("maType")) { case 1: maRaw = new Average(bars.close, maLength); break; case 2: maRaw = new KAMA(bars.close, 2, 30, maLength); break; default: Bomb.toss("Not valid maType"); break; } //Set up stdDev priceStDev = new StdDeviationOfSample(bars.close, parameter <int>("stDevLength")); //Set up regression regressionBars = parameter <int>("regressionBars"); Bomb.when((parameter <int>("LeadBars") < regressionBars), () => "LeadBars cannot be less than regressionBars." + arguments()); var count = new BarCounter(bars).transform(i => (double)i); projectionSpud = new QRegression(maRaw, count, regressionBars, false); regressionProjBars = parameter <int>("regressionProjectionBars"); levelProjection = projectionSpud.transform(barsRegression => barsRegression.predict(count + regressionProjBars)); //Set up other parameters zEntry = parameter <double>("ZEntry"); zExit = parameter <double>("ZExit"); minPnLMultTC = parameter <double>("minPnLMultTC"); stopMultiple = parameter <double>("stopMultiple"); riskDollars = parameter <double>("RiskDollars"); rSqrScale = parameter <double>("rSqrScale"); Bomb.when((rSqrScale != 0), () => "rSquare parameter not implemented yet."); addToPlot(maRaw, "maRaw", Color.Blue); addToPlot(levelProjection, "Projection", Color.Red); addToPlot(priceStDev, "StDev", Color.Green, "Support"); }
public OrderScreen() { _orderBuilder = new OrderBuilder(); _saladDecorator = new SaladDecorator(); _counter = new BarCounter(); }
void stoppedOut() { Spud <int> barsSinceStopOut = new BarCounter(bars, -1); deactivate(() => isRecovered(barsSinceStopOut, tradeSize()) && cleanup(barsSinceStopOut)); }