出現"計算出現執行錯誤,錯誤代碼0010"

  •   437 
  • 最後發表   kevin0300068  2020 四月 06
kevin0300068 發文於   2019/12/17

XQ小幫手您好,

剛從版本2.46.06升到2.48.05,

但是自訂指標卻常常出現"計算出現執行錯誤,錯誤代碼0010",

而且是有時候出現,有時候不出現;

不然就是出現錯誤,但是隔一陣子重刷頁面又好了,

有時候又會有計算結果,但其結果的數值會是錯誤的,

2.46.06版本不會出現此問題,2.48.05本來也不會,

但把該策略的XS碼在2.48.05版本編譯之後,就發生了此問題,

請問該如何解決呢? XS程式碼如下,謝謝。

XS程式碼

variable: Pa(0);

input: OPBar(120,"OPBar");
if currentbar<gettotalbar-OPBar then return; //顯示出最後OPBar筆

KP(open,high,low,close,volume,60,20,Pa);

plot1(Pa,"Pa");

 

KP函數

input: open0(numeric);
input: high0(numeric);
input: low0(numeric);
input: close0(numeric);
input: volume0(numeric);
input: KBar(numeric);
input: KHBar(numeric);

input: Pa(numericref);

var: Gain(0);
variable: i(0);
variable: Part(0);

Gain=1;

array: Team[](0);
variable: arrT_size(0);
variable: sky(0),base(0);

sky=ceiling(highest(high0, kbar)/Gain)*Gain + Gain;
base=floor(lowest(low0, kbar)/Gain)*Gain - Gain;

Part = (sky - base) / Gain;
array_setmaxindex(Team, Part+1);
arrT_size=Array_GetMaxIndex(Team);

variable: B(0);
variable: H1(0);

for i = 0 to arrT_size-1
 for B = 0 to KBar-1
        begin
            if  close0[B] >= base + Gain * (i - 1) and close0[B] <= base + Gain * (i + 1) then   
                Team[i + 1] = Team[i + 1] + 1;
        end;

nthextremesarray(Team, arrT_size, 1, 1, H1, i);
Pa= base + Gain * (i - 1);
Array_SetValRange(Team, 1, arrT_size, 0);

排序方式: 標準 | 最新
XQ小幫手 發文於   2019/12/18

Hi kevin0300068

您好,小幫手這邊已經收到您的問題,我們會緊急聯繫相關人員確認問題

待確認問題後會緊急告知您

謝謝您的反饋,造成您的困擾深感抱歉。

XQ小幫手 發文於   2019/12/25

Hi kevin0300068

您好,因為問題仍在確認中,請您協助我們將此段語法放在您的語法最前面

確認是否有改善您的問題,再麻煩您嘗試後告訴小幫手,造成您的不便請見諒。

settotalbar(OPBar);

 

kevin0300068 發文於   2019/12/25

XQ小幫手您好,

加入語法"settotalbar(OPBar)"後,發生了另一些問題。

1. 程式計算的筆數會比沒加"settotalbar(OPBar)"這行時少幾筆。

2. OPBar輸入筆數太小時,例如當OPBar輸入為20時,會發生"最大引用筆數不足,錯誤代碼0011",如下圖。

 

另外,原程式有沒有可能是2.48.05版編譯器的問題?

因為在2.46.06版編譯好的程式與KP函式,放在2.48.05和2.46.06都沒問題;

但是在2.48.05版編譯好的程式與KP函式,放在2.48.05和2.46.06都有問題。

 

以上再麻煩小幫手了,謝謝。

 

XQ小幫手 發文於   2019/12/26

Hi kevin0300068

您好,如您所述,settotalbar是利用語法去規定他的資料設定筆數,請參考settotalbar

因此當OPBar設定過少時,確實會出現"資料筆數設定不足"的問題。

不過想請教一個問題,您中間的這段語法

if currentbar<gettotalbar-OPBar then return//顯示出最後OPBar筆

這段語法的用意為何,是為了讓指標只顯示在一定筆數內嗎。

其實您可以直接在設定裡面設定XS的筆數,或者直接設定settotalbar,就可以達到效果。

小幫手剛剛檢查後結果是相同的,您可以先把這一段註解試試看。

我們會再查詢可能的原因,謝謝您的等待。

kevin0300068 發文於   2019/12/26

XQ小幫手您好,

這段語法的用意的確是只顯示一定筆數,而且可以分階段。

例如:

//第一階段語法全部運算

。。。。。。

if currentbar<gettotalbar-OPBar then return;

//第二階段語法運算OPBar筆

。。。。。。。

if currentbar<> gettotalbar then return;

//第三階段語法只需要運算最後一筆

。。。。。。。

 

目的是整頁程式有些指標只需要算最後幾筆,並不需要全部的部分都算相同多筆,而settotalbar好像無法做到相同的目的。

 

而且使用settotalbar讀取資料時,有時會發生讀取資料和顯示資料筆數不同的狀況,所以習慣這樣寫。

感謝小幫手的回覆,希望問題能快點被解決。

kevin0300068 發文於   2020/02/26

小幫手您好,

今天編譯後,指標又出現"計算出現執行錯誤,錯誤代碼0010",

版本2.48.06,請問該問題已經被解決了嗎? 謝謝。

kevin0300068 發文於   2020/03/04

Hello~

請問該功能有在改善嗎? 怎麼後來都沒有回應了呢.........

剛剛試過還是會有問題,有時候很嚴重一直發生錯誤;有時候不嚴重,實在很困擾。

XQ小幫手 發文於   2020/03/05

Hi kevin0300068

不好意思,小幫手已經有請相關人員確認,目前仍在確認中

造成您的困擾實屬抱歉。

因為近期也會更新到最新版本,屆時也請您更新到最新版本,確認相同的問題

我們將依據最新版本的狀況,再重新確認問題,謝謝。

 

kevin0300068 發文於   2020/03/11

版本3.00.02,目前問題有被解決了,謝謝小幫手。

XQ小幫手 發文於   2020/03/13

Hi kevin0300068

謝謝您的使用^^

顯示更多回應 發表回覆
Close