Thanks Mike. That's helpful to know. I will set that.
--- In [email protected], "Mike" <[EMAIL PROTECTED]> wrote: > > One thing to note is that (by default?) AmiBroker does price bounds > checking such that it will not let you specify a price outside the > range of the actual price action (e.g. cannot set buy price below > actual low). > > If the offset that you apply to the price will take you outside of > those bounds, then you will need to disable price bounds checking as > follows: > > SetOption("PriceBoundChecking", false); > > http://www.amibroker.com/guide/afl/afl_view.php?id=201 > > Mike > > --- In [email protected], "ozzyapeman" <zoopfree@> wrote: > > > > Thanks Steve. I will try that. For some reason I was under the > > impression that SellPrice, CoverPrice etc could only be set to one > of > > four *conditions* (Open, High, Low, Close), and that we could not > add > > or subtract actual numbers from "SellPrice" in real time in the AFL. > > > > In real life, I would exit the trade immediately on the same bar, > if I > > could. In the backtester, I set a one-bar trade delay, as I thought > > that would be more realistic to the way signals are handled in live > > trading. But maybe that assumption is incorrect. > > > > Over the next month, I plan to play around with a live virtual > account > > at a broker to get a better understanding of this. > > > > > > > > --- In [email protected], "_sdavis" <_sdavis@> wrote: > > > > > > I think you can do this: > > > > > > SetTradeDelays(1,1,1,1); > > > slippage = ... > > > SellPrice = Open - slippage; > > > CoverPrice = Open + slippage; > > > > > > However, this may not reflect the way you will actually trade. The > > > backtested system has a 1 bar trade delay. How are you planning to > > > trade this in real life? If the profit target or stop level is > > > detected in real-time will you exit the trade immediately or wait > > > until the next bar? > > > > > > -Steve > > > > > > --- In [email protected], "ozzyapeman" <zoopfree@> wrote: > > > > > > > > Hi. I am hoping anyone out there can check this code and perhaps > > give me > > > > some pointers on how to do the actual scaling up and down of > the exit > > > > prices? > > > > > > > > To mimic a more realistic backtesting model for trading Forex, I > > want to > > > > scale the backtester's exit prices down 2 pips if a Sell and up > 2 pips > > > > if a Cover. My actual trade system has a 1-bar trade delay so > not sure > > > > how that affects the below code. I added a generic trade system > > to the > > > > below code for the sake of simplicity. > > > > > > > > Is this the correct approach? Or do I need to add some custom > metrics? > > > > I'm not too sure if this approach is the right way. And I'm > still > > > > missing the meat and potatoes - in the two "ADD CODE HERE" > sections: > > > > > > > > // Custom Backtester Code to add Slippage to Forex trades > > > > // > > > > // We Sell and Cover on Open. > > > > // But we want actual Sell prices to be slipped down by 2 pips > and > > > > // actual Cover prices to be slipped up by 2 pips. > > > > > > > > // First we need to enable custom backtest procedure AND > > > > // tell AmiBroker to use current formula > > > > > > > > SetCustomBacktestProc(""); > > > > > > > > // Now custom-backtest procedure follows > > > > > > > > if( Status("action") == actionPortfolio ) > > > > { > > > > bo = GetBacktesterObject(); > > > > > > > > bo.Backtest(1); // run default backtest procedure > > > > > > > > // iterate through closed trades first > > > > > > > > for( trade = bo.GetFirstTrade(); trade; trade = > > bo.GetNextTrade() ) > > > > { > > > > if( sig.IsLong() AND sig.IsExit() ) //check if the > > signal is > > > > a Sell of a Long position > > > > { > > > > // ADD CODE HERE: NEED TO REDUCE THE SELL EXIT > PRICE BY > > > > 0.0002 > > > > } > > > > > > > > if( NOT sig.IsLong() AND sig.IsExit() ) //check if the > > > signal is > > > > a Cover of a Short position > > > > { > > > > // ADD CODE HERE: NEED TO INCREASE THE COVER EXIT > > PRICE BY > > > > 0.0002 > > > > } > > > > } > > > > } > > > > > > > > // your trading system here > > > > > > > > fast = Optimize( "fast", 12, 5, 20, 1 ); > > > > slow = Optimize( "slow", 26, 10, 25, 1 ); > > > > Buy=Cross( MACD( fast,slow ),Signal( fast,slow ) ); > > > > Sell=Cross( Signal( fast,slow ),MACD( fast,slow ) ); > > > > BuyPrice = SellPrice = ShortPrice = CoverPrice = Open; > > > > > > > > > >
