2017-02-15 6 views
1

の月/四半期/年以上のポートフォリオを持ち、私はここ(信号にもかかわらず、複数の銘柄の期間の間でポートフォリオの更新を防ぐquantstratパッケージを使用して、保持期間を実装する方法を知っていただきたいと思います交差閾値)。前の質問のバリエーションとしてquantstrat

私は両方が失敗した、2つの方法が試みられてきた:

  • は、名前=「ruleSignal」とadd.ruleと共に使用する1四半期/学期/年を表す在庫データの列を追加し、

  • type = "rebalance"の引数と relabance_on = "quarter"のadd.ruleが使用されています。注

    ## Signal 1: rank inferior to N 
        stratjt=add.signal(strategy=stratjt, name="sigThreshold", 
              arguments=list(threshold=N, column="Rank", 
                 relationship="lte",cross=FALSE), 
              label="Lower.dcl.thres") 
        ## Signal 2: rank superior to N 
        stratjt <- add.signal(strategy=stratjt, name="sigThreshold", 
              arguments=list(threshold=N, column="Rank", 
                 relationship="gt", cross=FALSE), 
              label="Higher.dcl.thres") 
    
        # Rule 1: First attempt to add rebalance rule based on extra signal column 
        #stratjt <- add.rule(strategy=stratjt, name='ruleSignal', 
        #     arguments = list(sigcol="Rebalance_on", sigval=TRUE, 
        #         orderqty=1, ordertype='market', 
        #         orderside='long', pricemethod='market', 
        #         replace=FALSE, osFUN=osMaxPos), 
        #     type='enter', path.dep=TRUE) 
    
        # Rule 1: Second attempt to add rebalance rule using the "rebalance" rule type 
        stratjt <- add.rule(strategy=stratjt, name='ruleSignal', 
             arguments = list(rebalance_on="quarters"), 
             type='rebalance', path.dep=TRUE) 
    
        # Rule 2: Enter rule when below threshold 
        stratjt <- add.rule(strategy=stratjt, name='ruleSignal', 
             arguments = list(sigcol="Lower.dcl.thres", sigval=TRUE, 
                 orderqty=max.size, ordertype='market', 
                 orderside='long', pricemethod='market', 
                 replace=FALSE, osFUN=osMaxPos), 
             type='enter', path.dep=TRUE) 
    
        # Rule 3: add exit rule when above threshold 
        stratjt <- add.rule(strategy = stratjt, name='ruleSignal', 
             arguments = list(sigcol="Higher.dcl.thres", sigval=TRUE, 
                 orderqty='all', ordertype='market', 
                 orderside='long', pricemethod='market', 
                 replace=FALSE), 
             type='exit', path.dep=TRUE) 
    

    として

    ASDA:

はここquantstratのコードだ私はapplyStrategy.rebalance機能をも使用しました。

ここでは出力の一部です:

[1] "2000-04-30 00:00:00 Vivendi -1 @ 99.2256" 
[1] "2002-11-30 00:00:00 Vivendi 1 @ 16.2966" 
[1] "2003-02-28 00:00:00 Vivendi -1 @ 14.0564" 
[1] "2003-11-30 00:00:00 Vivendi 1 @ 22.9647" 
[1] "2004-01-31 00:00:00 Vivendi -1 @ 26.3656" 
[1] "2004-02-29 00:00:00 Vivendi 1 @ 28.7848" 
[1] "2004-03-31 00:00:00 Vivendi -1 @ 26.2421" 
[1] "2006-05-31 00:00:00 Vivendi 1 @ 35.8552" 

あなたが見ることができるように、取引は私だけなど、新たな宿舎や学期、で取引を実施したいのに対し、四半期間の場所を取るし続ける... どれでも助けに感謝します。

乾杯、あなたの退出ルールの信号を変更する必要が マイク

答えて

0

。現時点では、「Higher.dcl.thres」ではない時間帯に応じて取引を終了するように設定されています。

時間のご指定期間の後TRUE読書をおお返しします別の指標を作成します。あなたがエントリー信号を受け取ったときにあなたの期間を開始してください。ご退出ルールのための信号を言っ

は別の出口信号と使用を作成するには、この指標を使用してください。私はこれが理にかなってほしい。

関連する問題