我正在考慮使用R和quantstrat來回溯測試某些策略。我查看了一些文檔和YouTube視頻,以瞭解是否可以做我想做的事。我對R完全陌生,我願意深入研究必要的文檔,但如果我想要甚至可能,我想獲得一個提示。爲quantstrat使用外部提供的指標數據
我已經通過一些實例工作與quantstrat回測,什麼是共同的所有他們的是,他們使用的是由R的功能基礎上,價格數據
但是我需要使用一個計算指標幾個已經被外部計算的指標,以及我作爲真實/虛假信息以及價格數據。因此,我在CSV中包含許多其他列,其中包含OHLC數據,這些列的值大部分時間都是假的,但在某些行上卻是如此。我想生成信號,例如使用其中的兩列,並且說:「如果兩者都是真實的,則在最後一天的高點設置止損買盤,在最後一天的低點止損並計算倉位大小,以便最高損失是基於高低差異的固定金額
還有更多規則可以應用於何時關閉利潤的位置,何時調整止損或何時取消不觸發停止買入訂單,並且我還要處理接下來的日子已經高於停止買入價格的情況,但那又是另外一個故事了。另外,我必須考慮如何對具有僅結束日期數據的日終策略進行回溯測試(接下來的日子蠟燭可能會高停止買入和停止賣出,並且會比它發生的情況要糟糕)
首先我想知道它是否可能包含量化策略來源等外部指標數據
如果您說「是」或「否」並且可能指向適用的文檔,它將對我有所幫助。謝謝你的建議!
編輯:
我實際上是由現在的CSV OHLC列文件,只是添加了1和0這樣非常簡單的例子另一列:
Date,Open,High,Low,Close,SRot
2016-02-01,28,31,20,20,0
2016-01-29,34,35,30,31,1
2016-01-28,22,30,21,28,0
2016-01-27,18,23,17,20,0
2016-01-26,30,32,20,25,0
2016-01-25,30,35,25,32,1
我得到這個爲XTS對象並做了設置量化策略,我設法發出停止限制短期訂單後的最後一列是1.
add.rule(strategy.st,name = "ruleSignal",
arguments=list(sigcol="srotxsignal",
sigval=TRUE,
ordertype="stoplimit",
orderside="short",
replace=FALSE,
prefer="Low",
orderqty=10,
tradeSize=tradeSize),
type="enter",path.dep=TRUE,label="normalEntryShort")
有第一個信號已經在1月25日的第一支蠟燭上出現,最低爲25,我預計系統會以25的價位發出止損限價單。這也是訂單簿顯示的內容。然而,該系統實際上在第二天以30的價格出售,即開盤價。對於第二天的第二個信號,訂單被解僱,但從未執行。這可能是正確的,因爲開盤價已經低於止損限價水平,但價格在最後一天上漲至31,所以訂單應該已經觸發。
我想,對於第二信號,我需要有更多的邏輯編程,但對於第一次我不知道爲什麼以便在30
out<-applyStrategy(strategy=strategy.st,portfolios=portfolio.st)
[1] "2016-01-26 00:00:00 adidas 10 @ 30"
getOrderBook(portfolio.st)
$dshort
$dshort$adidas
Order.Qty Order.Price Order.Type Order.Side Order.Threshold Order.Status Order.StatusTime Prefer
2016-01-25 "10" "25" "stoplimit" "short" NA "closed" "2016-01-26 00:00:00" "Low"
2016-01-29 "10" "30" "stoplimit" "short" NA "open" NA "Low"
單行建議應在評論中。 – Rumit
@Rumit:好的。 SE – user8912739
新增功能,就是這樣。:-) – Rumit