Hello,
can anyone check this exit part for me if is correct in from WL6 to WL7 please. For CoverAtLimit i have use PlaceTrader.
WL6
WL7
can anyone check this exit part for me if is correct in from WL6 to WL7 please. For CoverAtLimit i have use PlaceTrader.
WL6
CODE:
for(int bar = GetTradingLoopStartBar(startbar); bar < Bars.Count; bar++) // for(int bar = Bars.Count - 1; bar < Bars.Count; bar++) // Signalschleife { if (IsLastPositionActive) { Position p = LastPosition; if (p.PositionType == PositionType.Short) { if (bar - p.EntryBar >= slider16.ValueInt) { CoverAtMarket(bar + 1, p); } CoverAtLimit(bar + 1, p, Close[bar] - ATR.Value(bar, Bars, slider14.ValueInt) * slider15.Value); // Hiermit fixieren wir den ATR auf die Signalbar // CoverAtLimit(bar + 1, p, Close[p.EntryBar-1] - ATR.Value(p.EntryBar-1, Bars, slider14.ValueInt) * slider15.Value); } else { if (bar - p.EntryBar >= slider8.ValueInt) { SellAtMarket(bar + 1, p); } SellAtLimit(bar + 1, p, Close[bar] + ATR.Value(bar, Bars, slider6.ValueInt) * slider7.Value); // Hiermit fixieren wir den ATR auf die Signalbar // SellAtLimit(bar + 1, p, Close[p.EntryBar-1] + ATR.Value(p.EntryBar-1, Bars, slider6.ValueInt) * slider7.Value); } }
WL7
CODE:
_stochDShort = StochD.Series(bars, Parameters[10].AsInt, Parameters[11].AsInt); PlotIndicator(_stochDShort, Color.Black, PlotStyles.DashedLine, true); DrawHorzLine(levelShort, Color.Red, 3, LineStyles.Dotted, _stochDShort.PaneTag); //No Lines. Check it!! //Calc ATR for long and short _tgtAtrLong = ATR.Series(bars, Parameters[5].AsInt); PlotTimeSeries(atrCalcPlus, "AtrCalcPlus", "AtrCalcPlus", Color.Aqua); _tgtAtrShort = ATR.Series(bars, Parameters[13].AsInt); PlotTimeSeries(atrCalcMinus, "AtrCalcMinus", "AtrCalcMinus", Color.Coral); StartIndex = 3 * Math.Max(Parameters[5].AsInt, Parameters[13].AsInt); } //execute the strategy rules here, this is executed once for each bar in the backtest history public override void Execute(BarHistory bars, int idx) { if (!HasOpenPosition(bars, PositionType.Long)) { //indicator = new UpDown() //code your buy conditions here //if (UpDown.Value(idx, )) } else { //code your sell conditions here if (!HasOpenPosition(bars, PositionType.Short)) { Position p = LastPosition; if (idx - p.EntryBar >= Parameters[15].AsInt) ClosePosition(p, OrderType.Market); PlaceTrade(bars, TransactionType.Cover, OrderType.Market, _tgtAtrShort[idx]); } else { Position p = LastPosition; if (idx - p.EntryBar >= Parameters[7].AsInt) { ClosePosition(p, OrderType.Market); PlaceTrade(bars, TransactionType.Cover, OrderType.Market, _tgtAtrLong[idx]); } }
Rename
CODE:
public override void Execute(BarHistory bars, int idx) { var IsLastPositionActive = HasOpenPosition(bars, PositionType.Long) || HasOpenPosition(bars, PositionType.Short); if (IsLastPositionActive) { Position p = LastPosition; if (p.PositionType == PositionType.Short) { if (idx - p.EntryBar >= Parameters[15].AsInt) ClosePosition(p, OrderType.Market); else ClosePosition(p, OrderType.Limit, _tgtAtrShort[idx]); } else { if (idx - p.EntryBar >= Parameters[7].AsInt) ClosePosition(p, OrderType.Market); else ClosePosition(p, OrderType.Limit, _tgtAtrLong[idx]); } } else { //entry
Thanks a lot Eugene.
Your Response
Post
Edit Post
Login is required