mrsic8
 ( 8.10% )
- ago
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
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]); } }
0
387
Solved
2 Replies

Reply

Bookmark

Sort
- ago
#1
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
0
Best Answer
mrsic8
 ( 8.10% )
- ago
#2
Thanks a lot Eugene.
1

Reply

Bookmark

Sort