Hi,

But... is it "dangerous" to set it off?  You say in the old days it was, but
what is different today?  Can I safely turn that off and expect that it will
work well?

Thanks,

Louis

2008/7/3 Tomasz Janeczko <[EMAIL PROTECTED]>:

>    Hello,
>
> As for 1. PriceBoundChecking is ON by default to prevent from unrealistic
> entry/exit prices that you could get
> if you made mistake in your coding. In the old days, we got lots of support
> issues because people were getting
> fills outside H-L range due to their sloppy coding. Now by default AB won't
> allow fills outside H-L range.
>
> Best regards,
> Tomasz Janeczko
> amibroker.com
>
> ----- Original Message -----
> *From:* Louis Préfontaine <[EMAIL PROTECTED]>
> *To:* [email protected]
> *Sent:* Thursday, July 03, 2008 5:27 AM
> *Subject:* Re: [amibroker] Re: Buyprice and sellprice...
>
> Hi all,
>
> Wow what a nice thread!  I feel like I finally asked omething that's
> intelligent enough to be worthy! ;-)
>
> Some thoughts:
>
> 1)Graham and Tomasz: I really like the simplicity of the SetOption(
> "PriceBoundChecking", 0 );    Kind of funny.  I was scratching my head all
> over and that was all there, so easy...   Thanks!   I was wondering, is
> there any hidden danger of setting priceboundchecking to "off"?  I mean:
> what is the utility of this anyway?
>
> 2) Howard, thank you a lot for your loop.   What I am wondering, is what
> can be the advantage of such a loop over a more simple IIF command?  I'd
> like to use loops in my codes, but so far I found nothing that needed a loop
> badly, or maybe I am missing something?  What I am trying to do is to change
> that % adjustment depending on situations.  I'd like to set like 5-10
> different conditions of my own; would that be easier to do with a loop or
> with IIF?   Also, does it take longer for a loop?  If I scan thousands of
> tickers in 1-minute bars, can it be a problem?  Thanks!
>
> 3) Barry: I understand your point.  Why I badly need such slippage
> adjustment is because I want to trade in less liquid markets and I want the
> results to be more accurate.  When there is a 1-2% difference between bid
> and ask, well that's the difference between buying a new home or dinning at
> the YMCA in the long run...
>
> Thank you all,
>
> Louis
>
>
>
>
> 2008/7/2 Howard B <[EMAIL PROTECTED]>:
>
>>   Hi Ed --
>>
>> The question I received wanted the solution to be programmed using a loop.
>>
>> Thanks,
>> Howard
>>
>>
>>
>> On Wed, Jul 2, 2008 at 10:26 AM, Edward Pottasch <[EMAIL PROTECTED]>
>> wrote:
>>
>>>    hi Howard,
>>>
>>> why use a loop, why not use IIF?
>>>
>>> BuyPrice = IIF(Buy,BuyPrice * 1.01, BuyPrice);
>>>
>>> rgds, Ed
>>>
>>>
>>>
>>>
>>>  ----- Original Message -----
>>> *From:* Howard B <[EMAIL PROTECTED]>
>>> *To:* [email protected]
>>>   *Sent:* Wednesday, July 02, 2008 7:11 PM
>>> *Subject:* Re: [amibroker] Re: Buyprice and sellprice...
>>>
>>>  Greetings all --
>>>
>>> I received a private email asking for more clarification about the code
>>> segment I posted.  Since the technique may be of general interest, I've
>>> posted it to the forum.
>>>
>>> Here is a complete trading system that adjusts the BuyPrice and
>>> SellPrice,
>>> under the control of a Param.
>>>
>>> Replace the simple moving average crossover for the Buy with a more
>>> intelligent one of your own.  And the Sell as well.
>>>
>>> Run this with AdjustBuyPrice set to 0, and again with it set to 1.
>>>
>>> For each run, open the Report, then look at Trades and compare the price
>>> of entry and exit.
>>>
>>> /////////////////////////////////////////////////////
>>>
>>> //    adjustBuyPrice.afl
>>>
>>> //    In response to a question on the Yahoo AmiBroker Forum,
>>> //    this code shows one way to adjust the Buyprice and Sell Price,
>>> //    perhaps to model slippage.
>>>
>>> //    Howard Bandy
>>> //    July 2, 2008
>>>
>>>
>>> SetTradeDelays(0,0,0,0);
>>> BuyPrice = C;
>>> SellPrice = C;
>>>
>>> //    When AdjustBuyPrice is 0, no changes are made
>>> //    When AdjustBuyPrice is 1, BuyPrice and Sell Price are adjusted
>>>
>>> AdjustBuyPrice = Param("adjBuyPrice",0,0,1,1);
>>>
>>> MA1 = 10;
>>> MA2 = 5;
>>> Buy = Cross(MA(C,MA1),MA(C,MA2));
>>>
>>> if (AdjustBuyPrice)
>>> {
>>>     for (i=0; i<BarCount; i++)
>>>     {
>>>           // test to see if there was a Buy on this bar
>>>           // and if there was, adjust BuyPrice
>>>           if (Buy[i] == 1)
>>>           {
>>>             BuyPrice[i] = 1.01*BuyPrice[i];
>>>           }
>>>     }
>>> }
>>>
>>> Sell = BarsSince(Buy)>=3;
>>>
>>>
>>> if (AdjustBuyPrice)
>>> {
>>>     for (i=0; i<BarCount; i++)
>>>     {
>>>           // test to see if there was a Sell on this bar
>>>           // and if there was, adjust SellPrice
>>>           if (Sell[i] == 1)
>>>           {
>>>             SellPrice[i] = 0.99*BuyPrice[i];
>>>           }
>>>     }
>>> }
>>>
>>>
>>>
>>>
>>>
>>> //////////////////////////////////////////////////////
>>>
>>> Thanks,
>>> Howard
>>> www.quantitativetradingsystems.com
>>>
>>> On Wed, Jul 2, 2008 at 9:08 AM, Dennis Brown <[EMAIL PROTECTED]> wrote:
>>>
>>>>   Barry,
>>>>
>>>> About the only comment I can make is that I have produced systems the
>>>> generate in real life what they backtest to. If you understand all
>>>> the issues, you can make it match. Another point is that when I trade
>>>> against my system --deciding the best second to send the order after
>>>> it says to send it, I generally get a better result. This is trading
>>>> one minute bars. It all just depends on the details of the system and
>>>> the trader --and the delays from the data feed.
>>>>
>>>> Other than that, I generally agree with your assessment.
>>>>
>>>> BR,
>>>> Dennis
>>>>
>>>>
>>>> On Jul 2, 2008, at 11:40 AM, Barry Scarborough wrote:
>>>>
>>>> > I guess I will start a debate that I don't intend to participate in
>>>> > but state it for consideration. It seems many are trying to tweak
>>>> > their back tester to find the absolute best performance but include
>>>> > intangibles like slippage. Back testing, in my opinion, should only
>>>> > be used to compare systems to find which out performs another. That
>>>> > is all you need to do because the market will change and the system
>>>> > will not work as you expect. So it is a waste of time to try to eek
>>>> > our more gain or try to factor in slippage or all such nonsense.
>>>> >
>>>> > Why do I say this? I have a system that consistently will back test
>>>> > 200% to 1000% A DAY using 1 Russell emini contract ER2 and a 1 minute
>>>> > chart. In longer periods the gain is less and I use various time
>>>> > periods and data samples. In the real world it does not make a profit
>>>> > on a 1 minute chart. But that system works much better than one that
>>>> > back tests with less gain and the system does not even start to make
>>>> > a consistent gain with a period under 15 minutes. Using hour charts
>>>> > it is much better but no where near 200% a day the back tester shows.
>>>> >
>>>> > The problem is when you enter the real world, especially with auto
>>>> > trading, whipsaw during sideways periods and during trend changes
>>>> > will eat your lunch. Auto trading will come close to getting the
>>>> > value of the close at the time the signal was generated by your
>>>> > system. But there is slippage and that can be significant depending
>>>> > on the buy/ask spread and the volatility of the market. You can't
>>>> > predict what it will be. Don't even try! Even if you use a simple
>>>> > button pushing auto trading system, where you hit the buy or sell
>>>> > button when you see your signal, you can't hit the button fast enough
>>>> > to simulate the price you get on the static chart. So your results
>>>> > will not come close to your back test results. I REPEAT NOT EVEN
>>>> > CLOSE!!! So it is a waste of time to do more than use back testing to
>>>> > compare systems. Trying to predict what it will do in the real world
>>>> > is deceitful, sheer folly, don't do it.
>>>> >
>>>> > Well that's my two cents worth. I am going back to sleep now.
>>>> >
>>>> > Cheers,
>>>> > Barry
>>>> >
>>>> > --- In [email protected] <amibroker%40yahoogroups.com>,
>>>> "Howard B" <[EMAIL PROTECTED]> wrote:
>>>> >>
>>>> >> Hi Louis --
>>>> >>
>>>> >> Perhaps write a simple loop?
>>>> >>
>>>> >> for (i=0; i<BarCount; i++)
>>>> >> {
>>>> >> // test to see if there was a Buy on this bar
>>>> >> // and if there was, adjust BuyPrice
>>>> >> if (Buy[i] == 1)
>>>> >> {
>>>> >> BuyPrice[i] = 1.01*BuyPrice[i];
>>>> >> }
>>>> >> }
>>>> >>
>>>> >> Or am I missing something?
>>>> >>
>>>> >> Thanks,
>>>> >> Howard
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >> On Tue, Jul 1, 2008 at 9:27 PM, tayamaan <[EMAIL PROTECTED]> wrote:
>>>> >>
>>>> >>> Louis, you now assume your slippage to be 1%, which is a guess
>>>> >>> anyways. It differs per situation what your system considers to be
>>>> >>> the Buy/Sell Price and what you actually pay or get at the market.
>>>> >>> These are still two different things. I wouln't know how to
>>>> > calculate
>>>> >>> the real slippage, all you can do is comparing the difference
>>>> > over a
>>>> >>> period of time and take some kind of average.
>>>> >>>
>>>> >>> Adrian
>>>> >>>
>>>> >>> --- In [email protected] 
>>>> >>> <amibroker%40yahoogroups.com><amibroker%
>>>> 40yahoogroups.com>,
>>>> > Graham
>>>> >>> <kavemanperth@> wrote:
>>>> >>>>
>>>> >>>> turn off the option of PriceBoundChecking in the Analyser
>>>> > settings
>>>> >>> of in the AFL
>>>> >>>>
>>>> >>>> SetOption( "PriceBoundChecking", 0 );
>>>> >>>>
>>>> >>>> --
>>>> >>>> Cheers
>>>> >>>> Graham Kav
>>>> >>>> AFL Writing Service
>>>> >>>> http://www.aflwriting.com
>>>> >>>>
>>>> >>>>
>>>> >>>> 2008/7/2 Louis Préfontaine <rockprog80@>:
>>>> >>>>> Hi,
>>>> >>>>>
>>>> >>>>> But is it possible to set the backtester to consider that the
>>>> >>> buyprice was
>>>> >>>>> let's say 1% higher than the Close on the bar the trade was
>>>> > made?
>>>> >>>>>
>>>> >>>>> That's what I tried to do. If it's complicated, I can live
>>>> > with
>>>> >>> this (well,
>>>> >>>>> I can at least try, since I believe I am still a beginner in
>>>> >>> understanding
>>>> >>>>> AFL), but I'd need to know if it is possible, and if yes, what
>>>> >>> can be a good
>>>> >>>>> start...
>>>> >>>>>
>>>> >>>>> Was I on the right track with
>>>> >>>>>
>>>> >>>>> SetTradeDelays( 1, 1, 1, 1 );
>>>> >>>>> BuyPrice = c*1.01;
>>>> >>>>> SellPrice = c*0.99;
>>>> >>>>>
>>>> >>>>> Cause it does not work at all...
>>>> >>>>>
>>>> >>>>> Thanks again,
>>>> >>>>>
>>>> >>>>> Louis
>>>> >>>>>
>>>> >>>>> 2008/7/1 Graham <kavemanperth@>:
>>>> >>>>>>
>>>> >>>>>> Then you need to set out exactly what you need to do and
>>>> > write
>>>> >>> the afl to
>>>> >>>>>> match
>>>> >>>>>> It is all logical steps
>>>> >>>>>> I do it by writing down all the restrictions and
>>>> > possibilities
>>>> >>> and
>>>> >>>>>> what I need at the end and how I think is best way to achieve
>>>> >>> this
>>>> >>>>>> ......... in detail. There are no short cuts and can be very
>>>> >>> tedious.
>>>> >>>>>> I also more often than not write out a flow chart to map all
>>>> >>>>>> decisions, inputs, outputs, calculations etc.
>>>> >>>>>>
>>>> >>>>>> --
>>>> >>>>>>
>>>> >>>>>> Cheers
>>>> >>>>>> Graham Kav
>>>> >>>>>> AFL Writing Service
>>>> >>>>>> http://www.aflwriting.com
>>>> >>>>>>
>>>> >>>>>> 2008/7/2 Louis Préfontaine <rockprog80@>:
>>>> >>>>>>> Hi Adrian,
>>>> >>>>>>>
>>>> >>>>>>> Thanks for your suggestion. But still... How can I do
>>>> > this? I
>>>> >>> mean: I
>>>> >>>>>>> want to be precise. With the kind of markets I am in and
>>>> > what
>>>> >>> I am
>>>> >>>>>>> trying
>>>> >>>>>>> to do, precision is very important... I need to be able to
>>>> > set
>>>> >>> a
>>>> >>>>>>> particular % adjustment for particular situations...
>>>> >>>>>>>
>>>> >>>>>>> Louis
>>>> >>>>>>>
>>>> >>>>>>> 2008/7/1 tayamaan <tayamaan@>:
>>>> >>>
>>>> >>>>>>>>
>>>> >>>>>>>> Hi, if you would really like to try to compensate for
>>>> >>> slippage,
>>>> >>>>>>>> adding this to your commissions as part of your
>>>> > transaction
>>>> >>> costs is
>>>> >>>>>>>> perhaps an idea.
>>>> >>>>>>>>
>>>> >>>>>>>> Adrian
>>>> >>>>>>>>
>>>> >>>>>>>>> Hi Graham,
>>>> >>>>>>>>>
>>>> >>>>>>>>> How can I put more information so that my buy price is
>>>> > 1%
>>>> >>> higher
>>>> >>>>>>>> than C and
>>>> >>>>>>>>> sell price 1% lower than C?
>>>> >>>>>>>>>
>>>> >>>>>>>>> Thanks,
>>>> >>>>>>>>>
>>>> >>>>>>>>> Louis
>>>> >>>>>>>>>
>>>> >>>>>>>>> 2008/7/1 Graham <kavemanperth@>:
>>>> >>>>>>>>>
>>>> >>>>>>>>>> Without more information on what you are trying to
>>>> > achieve
>>>> >>>>>>>>>> The price will be for the bar of actual entry C*1.01
>>>> > or
>>>> >>> C*0.99
>>>> >>>>>>>>>>
>>>> >>>>>>>>>> Also the prices may be outside than the bar range in
>>>> >>> which case
>>>> >>>>>>>> the
>>>> >>>>>>>>>> closer of high or low is used if you have the
>>>> >>> PriceBoundChecking
>>>> >>>>>>>> on
>>>> >>>>>>>>>>
>>>> >>>>>>>>>> --
>>>> >>>>>>>>>> Cheers
>>>> >>>>>>>>>> Graham Kav
>>>> >>>>>>>>>> AFL Writing Service
>>>> >>>>>>>>>> http://www.aflwriting.com
>>>> >>>>>>>>>>
>>>> >>>>>>>>>> 2008/7/1 Louis Préfontaine <rockprog80@ <rockprog80%
>>>> >>>>>>>> 40gmail.com>
>>>> >>>>>>>>>>> :
>>>> >>>>>>>>>>
>>>> >>>>>>>>>>> Hi,
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>> I have been trying to set a formula for slippage:
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>> SetTradeDelays( 1, 1, 1, 1 );
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>> BuyPrice = C*1.01;
>>>> >>>>>>>>>>> SellPrice = C*0.99;
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>> It doesn't work at all. I tried to write C*50 just
>>>> > for
>>>> >>> fun, but
>>>> >>>>>>>> it didn't
>>>> >>>>>>>>>>> change the buyprice at all. What can possibly be
>>>> > wrong?
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>> Thanks,
>>>> >>>>>>>>>>>
>>>> >>>>>>>>>>> Louis
>>>> >>>>
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>
>>>> >
>>>> >
>>>> >
>>>> > ------------------------------------
>>>> >
>>>> > Please note that this group is for discussion between users only.
>>>> >
>>>> > To get support from AmiBroker please send an e-mail directly to
>>>> > SUPPORT {at} amibroker.com
>>>> >
>>>> > For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
>>>> > http://www.amibroker.com/devlog/
>>>> >
>>>> > For other support material please check also:
>>>> > http://www.amibroker.com/support.html
>>>> > Yahoo! Groups Links
>>>> >
>>>> >
>>>> >
>>>>
>>>>
>>>
>>
>  
>

Reply via email to