我想在 quantstrat/blotter 中对交易退出进行回测,我在其中引用了最新的记录器进入交易的价格(在循环内)。我想添加一条规则,如果最新交易自开始以来下跌了例如 5%,则退出交易作为一种止损。
if( !is.na(X) )#if the indicator X has begun (it is NA at start of time series)
{
if(Posn == 0) {#No position test to go long
if(X < 20){
#enter long position
addTxn(a.strategy,Symbol='T',TxnDate=CurrentDate,
TxnPrice=ClosePrice,TxnQty=UnitSize,TxnFees=0)}
}else {#Have a position so check exit
这是我要引用 TxnPrice 的地方:
if ( (X > 35) || (ClosePrice < (0.95 * TxnPrice)){
#exit position
addTxn(a.strategy,Symbol='T',TxnDate=CurrentDate,
TxnPrice = ClosePrice,TxnQty = -Posn,TxnFees=0)}
}
}
ClosePrice 在哪里
ClosePrice <- as.numeric(Cl(T[i,]))
问题是 TxnPrice 在全局环境中不作为对象存在。我确定我错过了一些非常简单的引用它。非常感谢任何帮助。