<br>Hi Jan,<br><br>Thanks for your answer.<br><br>I have been searching all over the quantstrat code for the "switch" where I could change (that daily data would be processed in the same way as monthly, quarterly and yearly) default behaviour as you described it:<br>
"=> for monthly, quarterly and yearly data, quantstrat will use the 
current bar to get the price.
=> for anything with a higher frequency (eg. weekly, daily, intraday),
quantstrat will use the next bar to get the price."<br>The more I looked the more it seems to me there is no such "switch" since it seems to me that the whole logic of quantstrat::applyRules is based on nextIndex. I could not find a way to change quantstrat::applyRules in such a way that would solve my "problem". Any hint on what and how to change highly appreciated.<br>
<br>Next, I still do not get the prefer option. For me it still does not work as I would like to. I have modified the script I attached with my first post (please see attachment) in such a way that I have lagged signals so that I now get transactions occurring on the correct date (on the same bar as true signal occurs). But, then looking at the transactions, they are still done at the close (quntstrat ignoring prefer option). I have used prefer='Open' when using addRule, but it is ignored and transaction happens on Close price.<br>
<br>> print(getOrderBook(p))<br>$qs.test<br>$qs.test$VXX<br>           Order.Qty Order.Price Order.Type Order.Side Order.Threshold Order.Status Order.StatusTime      Prefer  Order.Set Txn.Fees Rule            <br>2011-02-01 "0"       NA          "init"     "long"     "0"             "closed"     "2011-02-01"          ""      ""        "0"      ""              <br>
2011-02-08 "-1"      "28.42"     "market"   "short"    NA              "closed"     "2011-02-09 00:00:00" "Close" NA        "-1.9"   "EnterSHORT"    <br>
2011-02-10 "all"     "29.14"     "market"   "short"    NA              "closed"     "2011-02-11 00:00:00" "Open"  NA        "-1.9"   "ExitShort2CASH"<br>
<br><br>attr(,"class")<br>[1] "order_book"<br>> <br>> txns <- getTxns(p, "VXX")<br>> txns<br>           Txn.Qty Txn.Price Txn.Fees Txn.Value Txn.Avg.Cost <a href="http://Net.Txn.Realized.PL">Net.Txn.Realized.PL</a><br>
2011-02-01       0      0.00      0.0      0.00         0.00                0.00<br>2011-02-09      -1     28.51     -1.9    -28.51        28.51               -1.90<br>2011-02-11       1     28.02     -1.9     28.02        28.02               -1.41<br>
> <br>> mktdata["2011-02-08/2011-02-11"]<br>           VXX.Open VXX.High VXX.Low VXX.Close VXX.Volume VXX.Adjusted PreviousC NextO signal.enter signal.exit cash short<br>2011-02-08    28.62    29.19   28.25     28.42   13997600        28.42     28.77 28.69           -1           0    0     1<br>
2011-02-09    28.69    29.11   28.35     28.51   18603000        28.51     28.42 29.14            0          -1    0     0<br>2011-02-10    29.14    29.25   28.30     28.51   17734000        28.51     28.51 28.75            0           0    1     0<br>
2011-02-11    28.75    28.80   27.93     28.02   14826100        28.02     28.51 28.00            0           0    0     0<br><br>I would appreciate any help to sort this prefer option thing. Thnx.<br><br>Best regards,<br>
Samo<br><br><br>__________________________________________________<br><pre>Hi Samo,

Currently, the following is hard-coded in the quantstrat software:
=> for monthly, quarterly and yearly data, quantstrat will use the 
current bar to get the price.
=> for anything with a higher frequency (eg. weekly, daily, intraday),
quantstrat will use the next bar to get the price.

The idea is that you once a bar is complete, there is no more trading 
possible within that bar, so you can only trade within the next bar.

I suggest that you use prefer='Open' to use the opening rate of the next 
bar instead. Be aware that your results will be unrealistic though, 
because in practice you will usually not get the opening price of the 
next bar.

Another option is to adjust your strategy a bit, and use higher 
frequency data, for example 15min rates, and decide on the on-but-last 
bar of the day, then trade on the last one.

HTH,

Jan.



Quantstrat

On 19-07-12 21:48, Samo Pahor wrote:
> Hi,
>
> I am trying to "persuade" quantstrat, working with daily data, to 
> execute orders at the close on the day that signal is telling "short" 
> and exit(cover short) a day after "move to cash" signal is generated. 
> Unfortunately, quantstrat does is not easily presuaded to do this...
>
> I have searched all possible lists and e-mails but it seems to me that
> either quantstrat was not designed for delaying order execution on 
> daily data with prefer option column or there is a bug in quantstrat
> or my understanding is limited(again)... I tried to play with all 
> possible combinations of delay (-1, 0, 1) and prefer (Open, 
> PreviousOpen) arguments but without success (following discussion here
> <a href="https://stat.ethz.ch/pipermail/r-sig-finance/2011q3/008356.html">https://stat.ethz.ch/pipermail/r-sig-finance/2011q3/008356.html</a> and 
> here <a href="https://stat.ethz.ch/pipermail/r-sig-finance/2012q2/010224.html">https://stat.ethz.ch/pipermail/r-sig-finance/2012q2/010224.html</a>). 
> <<a href="https://stat.ethz.ch/pipermail/r-sig-finance/2012q2/010224.html%29">https://stat.ethz.ch/pipermail/r-sig-finance/2012q2/010224.html%29</a>.>.. Am 
> I missing something here or I do not understand something about 
> quantstrat?
>
> I have prepared a reproducible example (based on Jan Humme excellent
> demos). It also contains expected result and actual result from 
> quantstrat. Please see attached R script file. Looking at OrderBook,
> txns and maktdata it just does not make sense to me...
>
> > print(getOrderBook(p))
> $qs.test
> $qs.test$VXX
>            Order.Qty Order.Price Order.Type Order.Side Order.Threshold
> Order.Status Order.StatusTime      Prefer Order.Set Txn.Fees Rule
> 2009-01-30 "0"       NA          "init"     "long" "0"             
> "closed"     "2009-01-30"          "" ""        "0"      ""
> 2009-02-10 "-1"      "418.4"     "market"   "short" NA              
> "closed"     "2009-02-11 00:00:00" "Close" NA        "-1.9"   
> "EnterSHORT"
> 2009-02-12 "all"     "421"       "market"   "short" NA              
> "closed"     "2009-02-12 00:00:00" "NextO" NA        "-1.9"   
> "ExitShort2CASH"
>
>
> attr(,"class")
> [1] "order_book"
> >
> > txns <- getTxns(p, "VXX")
> > txns
>            Txn.Qty Txn.Price Txn.Fees Txn.Value Txn.Avg.Cost 
> <a href="http://Net.Txn.Realized.PL">Net.Txn.Realized.PL</a> <<a href="http://Net.Txn.Realized.PL">http://Net.Txn.Realized.PL</a>>
> 2009-01-30       0      0.00      0.0      0.00 0.00                0.00
> 2009-02-11      -1    412.28     -1.9   -412.28 412.28               -1.90
> 2009-02-12       1    411.04     -1.9    411.04 411.04               -0.66
> >
> > mktdata["2009-02-10/2009-02-12"]
>            VXX.Open VXX.High VXX.Low VXX.Close VXX.Volume VXX.Adjusted
> PreviousC  NextO signal cash long short
> 2009-02-10    404.0   422.64  395.12    418.40      64200 418.40    
> 397.32 416.20     -1    0    0     1
> 2009-02-11    416.2   419.32  408.40    412.28      21500 412.28    
> 418.40 421.00      0    1    0     0
> 2009-02-12    421.0   432.00  411.04    411.04      25500 411.04    
> 412.28 412.96      0    0    0     0
>
>
> I would appreciate any hints on how to accomplish what I want.
>
> Best,
> Samo
>
>
> _______________________________________________
> <a href="mailto:R-SIG-Finance@r-project.org">R-SIG-Finance@r-project.org</a> mailing list
> <a href="https://stat.ethz.ch/mailman/listinfo/r-sig-finance">https://stat.ethz.ch/mailman/listinfo/r-sig-finance</a>
> -- Subscriber-posting only. If you want to post, subscribe first.
> -- Also note that this is not the r-help list where general R questions should go.


-- 
Jan Humme - OpenTrades

WWW:     <a href="http://www.opentrades.nl">http://www.opentrades.nl</a>
Email:   <a href="mailto:jan@opentrades.nl">jan@opentrades.nl</a>
Twitter: @opentrades


        [[alternative HTML version deleted]]

</pre><br>