Как реализовать «Купить на следующем баре по цене открытия» в quantstrat?
Вот мой эксперимент с образцом maCross.R.
Добавьте
prefer='Open'
в ruleSignalstratMACROSS <- add.rule(strategy = stratMACROSS, name='ruleSignal', arguments = list(sigcol="ma50.gt.ma200", sigval=TRUE, orderqty=100000, ordertype='market', orderside='long', prefer='Open'), type='enter') stratMACROSS <- add.rule(strategy = stratMACROSS, name='ruleSignal', arguments = list(sigcol="ma50.lt.ma200", sigval=TRUE, orderqty=-100000, ordertype='market', orderside='long', prefer='Open'), type='exit')
Ордер был сгенерирован по текущей цене
Open
, но исполнен на следующем бареClose
.> orders <- getOrderBook(portfolio.st) > head(orders) Order.Qty Order.Price Order.Type Order.Side Order.Threshold Order.Status Order.StatusTime 2011-05-22 00:00:00 "0" NA "init" "long" "0" "closed" "2011-05-22" 2011-05-24 04:30:00 "1e+05" "1.61297" "market" "long" NA "closed" "2011-05-24 05:00:00" 2011-05-25 03:00:00 "-1e+05" "1.61523" "market" "long" NA "closed" "2011-05-25 03:30:00" 2011-05-25 05:00:00 "1e+05" "1.61537" "market" "long" NA "closed" "2011-05-25 05:30:00" 2011-05-30 09:30:00 "-1e+05" "1.64679" "market" "long" NA "closed" "2011-05-30 10:00:00" > txns <- getTxns(Portfolio=portfolio.st, Symbol=fx.st[1]) > head(txns) Txn.Qty Txn.Price Txn.Fees Txn.Value Txn.Avg.Cost Net.Txn.Realized.PL 2011-05-22 00:00:00 0e+00 0.00000 0 0 0.00000 0 2011-05-24 05:00:00 1e+05 1.61227 0 161227 1.61227 0 2011-05-25 03:30:00 -1e+05 1.61437 0 -161437 1.61437 210 2011-05-25 05:30:00 1e+05 1.61929 0 161929 1.61929 0 2011-05-30 10:00:00 -1e+05 1.64584 0 -164584 1.64584 2655 2011-05-30 19:30:00 1e+05 1.65046 0 165046 1.65046 0
Например, заказ был сгенерирован 2011-05-25 03:00:00 с
Open
ценой 1,61523, но транзакция была в 03:30:00 сClose
ценой 1,61437.Рыночные данные показаны ниже.
Date Time Open High Low Close Up Down 5/24/2011 430 1.61297 1.6153 1.61288 1.61421 1804 1700 5/24/2011 500 1.61409 1.61445 1.61224 1.61227 1709 1662 5/25/2011 300 1.61523 1.61628 1.61318 1.6139 1526 1465 5/25/2011 330 1.61393 1.61541 1.61345 1.61437 1713 1583