3.09新版指標錯誤

  •   119 
  • 最後發表   pure4321  2022 九月 01
pure4321 發文於   2022/08/25

3.09新版指標錯誤,如程式碼,1分K頻率,3017奇鋐20220825為例

setbarBack(68,"D");

plot8(RateOfChange(GetField("Close","D"),1), "漲跌比(%)");

Plot9((GetField("Close","D")/GetField("High","D") - 1) * 100, "上影比(%)");

Plot10((GetField("Close","D")/GetField("Low","D") - 1) * 100, "下影比(%)");

plot11(Average(AbsValue(RateOfChange(GetField("Close","D"),1)),61),"絕對平均漲跌[3月](%)");

 

另外,回測資料【單量】錯誤,日頻率逐筆洗價,3163.TW, 波若威20220606為例

variable: intrabarpersist PS_Sum(0), intrabarpersist NS_Sum(0), intrabarpersist PSum(0), intrabarpersist NSum(0); 

variable: intrabarpersist PS_Flag(0), intrabarpersist NS_Flag(0), intrabarpersist PFlag(0), intrabarpersist NFlag(0); 

variable: intrabarpersist PS_SumRate(0), intrabarpersist NS_SumRate(0), intrabarpersist PSumRate(0), intrabarpersist NSumRate(0);

variable: intrabarpersist PS_FlagRate(0), intrabarpersist NS_FlagRate(0), intrabarpersist PFlagRate(0), intrabarpersist NFlagRate(0);

if getfieldDate("Date","1") <> getfielddate("Date","1")[1] then PS_Sum = 0;

if getfieldDate("Date","1") <> getfielddate("Date","1")[1] then NS_Sum = 0;

if getfieldDate("Date","1") <> getfielddate("Date","1")[1] then PSum = 0;

if getfieldDate("Date","1") <> getfielddate("Date","1")[1] then NSum = 0;

PS_Sum += GetField("買進中單量","1") + GetField("買進小單量","1"); // ;+=僅限回測

NS_Sum += GetField("賣出中單量","1") + GetField("賣出小單量","1"); // ;+=僅限回測

PSum += GetField("買進特大單量","1") + GetField("買進大單量","1"); // ;+=僅限回測

NSum += GetField("賣出特大單量","1") + GetField("賣出大單量","1"); // ;+=僅限回測

 

PS_SumRate = PS_Sum / (Volume + 1) * 100;

NS_SumRate = NS_Sum / (Volume + 1) * 100;

PSumRate = PSum / (Volume + 1) * 100;

NSumRate = NSum / (Volume + 1) * 100;

 

Print(File("D:\Excel\XQ\回測.csv"), 

"多方_B,",NumToStr(Date,0),",",NumToStr(CTime,0),",",Symbol,",",SymbolName, 

",P大",NumToStr(PSumRate,2), ",N大",NumToStr(NSumRate,2), ",P小",NumToStr(PS_SumRate,2), ",N小",NumToStr(NS_SumRate,2));

 

XQ小幫手 發文於   2022/09/01

Hello pure4321,

 

麻煩您說一下錯誤在哪裡,不然小幫手不知道要從哪裡開始檢查。

3017奇鋐20220825 的部分,如果您是指

plot11(Average(AbsValue(RateOfChange(GetField("Close","D"),1)),61),"絕對平均漲跌[3月](%)");

和日頻率運算不同的話,那是因為您執行頻率為1分鐘時,計算的會是近61分鐘 AbsValue(RateOfChange(GetField("Close","D"),1)) 的數值,不是近61天 AbsValue(RateOfChange(GetField("Close","D"),1)) 的數值。

如果您要計算日頻率的平均的話,可以使用 xf_GetValue 拉出近61天的數值來計算。

需注意這樣的話會需要至少計算61天以上的歷史資料,最新的一筆才會是正確的。

 

單量錯誤的部分,小幫手來指標1分鐘頻率和雷達日頻率逐筆的資訊相對作比較,兩者是相同的。(參考附圖)

不知道您是覺得哪裡有誤。

附加文件

發表回覆
Close