R中的外汇编码,而for循环中的循环问题

时间:2017-11-22 15:29:05

标签: r for-loop while-loop forex

我有一些代码

dates <- as.POSIXct(subset(Ident, coredata.Ident. == "Bull.Engulfing")$Date, format="%Y.%m.%d %H:%M")
for(i in seq_along(dates)){

EnterPrice<-as.vector(Sept17$Open[(dates)])
StopLoss<-as.vector(EnterPrice-0.0050)
TakeProfit<-as.vector(EnterPrice+0.0100)
MinDate<-as.vector(Sept17$Low[(dates)])
MaxDate<-as.vector(Sept17$High[(dates)])
n<-0
m<-0
while (MinDate > StopLoss) {
  n<-n+1
  MinDate<-Sept17$Low[Sept17[dates,which.i=TRUE]+n]
}
while (MaxDate < TakeProfit) {
  m<-m+1
  MaxDate<-Sept17$High[Sept17[dates,which.i=TRUE]+m]
}
if (m<n) {
  F$Outcome=print("Win")
  F$Hours=m
} else {
  F$Outcome=print("Lose")
  F$Hours=n
}
}

这会返回错误

Error in `[.xts`(Sept17$High, Sept17[dates, which.i = TRUE] + m) : 
  subscript out of bounds
In addition: There were 50 or more warnings (use warnings() to see the first 50)

它的作用基本上是需要一些名为Ident的数据,并计算Ident数据显示Bull.Engulfing的日期和时间。然后,它会计算每个计算日期的EnterPrice, StopLoss, TakeProfit, MinDateMaxDate

对于每个日期/小时,我希望它通过while循环,计算出在while循环中不满足其中一个条件需要多少小时(n)。如果不满足Loss条件,我希望显示StopLoss的向量;如果Profit条件不满足,我希望显示TakeProfit的向量,我想显示达到不满意条件所需的小时数(n)。

我已经尝试过,但不知道从哪里去。

例如,假设dates的一个组件是2017-01-01 10:00

EnterPrice可能为1.3100,因此StopLoss1.3050TakeProfit1.3200

然后,它将使用Sept17数据检查每个小时后,如果当天和小时的分钟数小于StopLoss,它会在矢量中显示Lose,如果一天和一小时的最大值超过TakeProfit它会说Win,它会告诉我到达那里所需的小时数(n)。

然后,它会在Bull.Engulfing发生的每个其他日期循环播放。

TIA

0 个答案:

没有答案