[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Re: BUY and SELL signal on same bar cashflow problem


  • Date: Tue, 09 Mar 2010 10:38:28 +0100
  • From: Tomasz Janeczko <groups@xxxxxxxxxxxxx>
  • Subject: Re: [amibroker] Re: BUY and SELL signal on same bar cashflow problem

PureBytes Links

Trading Reference Links

Hello,

Agreed. As I wrote, it is equivalent of using Ref() (non-zero trade 
delay is just applying Ref() to buy/sell/short/cover tables internally). 
If you know what you are doing, then it is fine.

Best regards,
Tomasz Janeczko
amibroker.com

On 2010-03-09 09:56, Mike wrote:
> Tomasz,
>
> I think that NEVER is too strong a warning here. The following seems perfectly valid for current day limit order entries and next day open exits:
>
> SetTradeDelays(0, 1, 0, 0);
>
> Setup = ...;
> Limit = Ref(Close, -1) * 0.95;
> BuyPrice = Min(Open, Limit);
> Buy = Ref(Setup, -1) AND Low<= BuyPrice;
>
> Sell = Cross(Close, ...);
> SellPrice = Open;
>
> I believe that the above will backtest just fine. The advantage is that it can also be run as a nightly exploration for generating a list of next day limit entries and next day open exits, which can then be sent to your broker before the opening bell.
>
> e.g.
>
> Filter = Setup OR Sell;
>
> Your warning about not destroying the sequence is what is important, not whether the values are all the same.
>
> Mike
>
> --- In amibroker@xxxxxxxxxxxxxxx, Tomasz Janeczko<groups@xxx>  wrote:
>    
>> Hello,
>>
>> You got it all wrong
>> 1. You should NEVER use different buy/sell delays in SetTradeDelays. So
>> either use SetTradeDelays( 0, 0, 0, 0 )
>> or use SetTradeDelays( 1, 1, 1, 1 ).
>> What SetTradeDelays does is internally Ref() the buy or sell array.
>> If you are using unequal delays (as you did) and buy delay is greater
>> than sell delay
>> you could move buy signals AFTER sell signals, destroying original
>> sequence of events.
>> 2. trade length includes ENTRY bar, 1st day is ENTRY bar, therefore if
>> you need to exit at 3rd day
>> you should use -2 (not -3) in the ref() function call, because bars are
>> counted: 0, 1, 2.
>> Then you won't have problem with your "exit date".
>> 3. Actually the best way to implement n-bar delay is to use ApplyStop
>>
>> |ApplyStop( *stopTypeNBar*, *stopModeBars*, 3 );|
>>
>> ApplyStop works in ALL BACKTESTER MODES (raw, raw2, rotational) and
>> regardless of trade delays.
>> ExRemSpan is *obsolete* and it works only in regular mode, therefore
>> should be avoided.
>>
>> Best regards,
>> Tomasz Janeczko
>> amibroker.com
>>
>> On 2010-03-09 02:06, Mike wrote:
>>      
>>>        
>>>>> Hi,
>>>>>
>>>>> as a workaround it seems that I can cheat AB by setting:
>>>>> SetTradeDelays(1,1,1,1);
>>>>> This will move the closing trades to the next bar, but it will result
>>>>> in a wrong reporting from the backtester, because now the "Exit Date"
>>>>> for the trade is for instance no longer "day 3" in my example but "day
>>>>> 4". I still hope anybody has a better idea how to solve this issue ...
>>>>>
>>>>> Best regards,
>>>>> Markus
>>>>>
>>>>> --- In amibroker@xxxxxxxxxxxxxxx, "markhoff"<markhoff@>   wrote:
>>>>>
>>>>>            
>>>>>> Hi folks,
>>>>>>
>>>>>> I have a problem with the backtester. I have a trading system which
>>>>>> opens all positions on OPEN price and closes all positions CLOSE
>>>>>> price. Maximum number of positions is set to 1. Now, if I might have
>>>>>> the situation below:
>>>>>>
>>>>>> Day             1          2          3          4          5
>>>>>> Trade #1 (A) BUY@xxxxxxxxxxxxxxxx>SELL@xxxxx
>>>>>> Trade #2 (B)                       BUY@xxxxxxxxxxxxxxxx>SELL@xxxxx
>>>>>>
>>>>>> Trade #1 with symbol (A) has a SELL signal on day 3 and some other
>>>>>> symbol (B) has a BUY signal on the same day, and this causes AmiBroker
>>>>>> to make trade #2 also on day 3.
>>>>>> But, in fact this is not possible because there is no
>>>>>> cash available on day 3 to BUY@xxxx (because first I must SELL trade
>>>>>> #1). Therefore, the correct behaviour would be to start trade #2 on
>>>>>> day 4 after the other position for trade #1 was closed. It seems that
>>>>>> AB always asumes that the cash for closing positions is available at
>>>>>> the same bar to start new trades. Please see also the code below.
>>>>>>
>>>>>> How can I force AB to consider that cash from a SELL@xxxxx is not
>>>>>> available on the same bar?
>>>>>>
>>>>>> Thanks in advance and best regards,
>>>>>> Markus
>>>>>>
>>>>>> //--- cut here ---
>>>>>> Buy = Sell = Short = Cover = False;
>>>>>> BuyPrice = SellPrice = ShortPrice = CoverPrice = 0;
>>>>>> SetOption("MaxOpenPositions", 1);
>>>>>> SetPositionSize(100, spsPercentOfEquity);
>>>>>> SetTradeDelays(1,0,1,0);
>>>>>> TradeDays = 3;
>>>>>> BuyPrice = ShortPrice = Open;
>>>>>> SellPrice = CoverPrice = Close;
>>>>>> Buy = ExRemSpan(True, TradeDays);
>>>>>> Sell = Ref(Buy, -TradeDays);
>>>>>> //--- cut here ---
>>>>>>
>>>>>>
>>>>>>              
>>>>>
>>>>>            
>>>>
>>>>          
>>>
>>>
>>> ------------------------------------
>>>
>>> **** IMPORTANT PLEASE READ ****
>>> This group is for the discussion between users only.
>>> This is *NOT* technical support channel.
>>>
>>> TO GET TECHNICAL SUPPORT send an e-mail directly to
>>> SUPPORT {at} amibroker.com
>>>
>>> TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
>>> http://www.amibroker.com/feedback/
>>> (submissions sent via other channels won't be considered)
>>>
>>> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
>>> http://www.amibroker.com/devlog/
>>>
>>> Yahoo! Groups Links
>>>
>>>
>>>
>>>
>>>
>>>        
>>      
>
>
>
> ------------------------------------
>
> **** IMPORTANT PLEASE READ ****
> This group is for the discussion between users only.
> This is *NOT* technical support channel.
>
> TO GET TECHNICAL SUPPORT send an e-mail directly to
> SUPPORT {at} amibroker.com
>
> TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
> http://www.amibroker.com/feedback/
> (submissions sent via other channels won't be considered)
>
> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> http://www.amibroker.com/devlog/
>
> Yahoo! Groups Links
>
>
>
>
>    


------------------------------------

**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to 
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    amibroker-digest@xxxxxxxxxxxxxxx 
    amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/