在For循环中使用request.security函数的替代方法



我写了一些代码来确定富时指数相对于DAX和CAC的相对强弱。

//Define the lookback period
lookback=10
//Determine if there is strength in the FTSE relative to the DAX and the CAC over the specified lookback period
relativestrengthindicator=0
relativeweaknessindicator=0
float FTSEreturn=0
float DAXreturn=0
float CACreturn=0
float relativereturntoDAX=0
float relativereturntoCAC=0

for i=0 to (lookback-1)
FTSElastclose=request.security("UK100","5",close[i+1])
FTSEsecondlastclose=request.security("UK100","5",close[i+2])
FTSEreturn:=((FTSElastclose-FTSEsecondlastclose)/FTSEsecondlastclose)*100

DAXlastclose=request.security("DE40","5",close[i+1])
DAXsecondlastclose=request.security("DE40","5",close[i+2])
DAXreturn:=((DAXlastclose-DAXsecondlastclose)/DAXsecondlastclose)*100
CAClastclose=request.security("FR40","5",close[i+1])
CACsecondlastclose=request.security("FR40","5",close[i+2])
CACreturn:=((CAClastclose-CACsecondlastclose)/CACsecondlastclose)*100

relativereturntoDAX:=FTSEreturn-DAXreturn
relativereturntoCAC:=FTSEreturn-CACreturn

if relativereturntoDAX>0 and relativereturntoCAC>0
relativestrengthindicator:=relativestrengthindicator+1

else if relativereturntoDAX<0 and relativereturntoCAC<0
relativeweaknessindicator:=relativeweaknessindicator+1


plot(relativestrengthindicator)
plot(relativeweaknessindicator)

然而,产生的错误消息是"错误";无法在"if"、"switch"或"for"内调用"request.*(("函数;。

如果我无法在For循环中使用request.security函数,我应该如何提取价格并将其包含在For循环?

谢谢。

如前所述,request.security()函数创建一个与当前图表平行的图表。您可以通过创建这个平行图表来解决问题,然后在for循环中调用它。代码将如下所示:

//@version=5
strategy("My strategy", overlay=true, margin_long=100, margin_short=100)
lookback=10
//Determine if there is strength in the FTSE relative to the DAX and the CAC over the specified lookback period
relativestrengthindicator=0
relativeweaknessindicator=0
float FTSEreturn=0
float DAXreturn=0
float CACreturn=0
float relativereturntoDAX=0
float relativereturntoCAC=0
FTSEclose = request.security("UK100","5",close)
DAXclose = request.security("DE40","5",close)
CACclose = request.security("FR40","5",close)
for i=0 to (lookback-1)
FTSElastclose = FTSEclose[i+1]
FTSEsecondlastclose = FTSEclose[i+2]
FTSEreturn:=((FTSElastclose-FTSEsecondlastclose)/FTSEsecondlastclose)*100

DAXlastclose = DAXclose[i+1]
DAXsecondlastclose = DAXclose[i+2]
DAXreturn:=((DAXlastclose-DAXsecondlastclose)/DAXsecondlastclose)*100
CAClastclose = CACclose[i+1]
CACsecondlastclose = CACclose[i+2]
CACreturn:=((CAClastclose-CACsecondlastclose)/CACsecondlastclose)*100

relativereturntoDAX:=FTSEreturn-DAXreturn
relativereturntoCAC:=FTSEreturn-CACreturn

if relativereturntoDAX>0 and relativereturntoCAC>0
relativestrengthindicator:=relativestrengthindicator+1

else if relativereturntoDAX<0 and relativereturntoCAC<0
relativeweaknessindicator:=relativeweaknessindicator+1


plot(relativestrengthindicator)
plot(relativeweaknessindicator)

您不能这样做,因为安全性需要是恒定的,并且在运行时是已知的,因为它会创建一个与当前图表平行的图表。

最新更新