0

最新のブロッター エントリー トランザクションが行われた (ループ内の) 価格を参照する 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 がグローバル環境内のオブジェクトとして存在しないことです。私はそれを参照するための非常に単純なものが欠けていると確信しています。どんな助けでも大歓迎です。

4

1 に答える 1