系統抓出的程式碼放在程式中,修改參數,但數值卻不同

  •   36 
  • 最後發表   灰熊  4 週前
灰熊 發文於   2025/04/14

教授您好:

由系統抓出程式碼,放進程式中,但出現的的MTM是對的,但MTM_MA卻不一樣,不知那有問題,我把參數全改成數值,80也是和指標數值不同,不知那有問題,再麻煩教授看一下

//MTM(80)

input: MLength(80);

 

SetInputName(1, "天數");

 

value11 = Momentum(Close, MLength); 

If CurrentBar >= MLength then

Value12 = Average(Value11, MLength)

else

Value12 = Value11;

 

Plot11(value11, "MTM");

Plot12(value12, "MTM-MA");

我要計算MTM(80),和MTM_MA,主要是MTM是和系統指標是正確的,但MTM_MA,就是程式中value12,就是和系統程式值不同

我原先是用value4=MTM(80)-MTM_MA(80);結果值行出來,value4,居然是0,表二數值是一樣的,還是我用錯指令呢

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/04/14

你計算的MTM均值,就是系統計算的MTM均值。執行下列指標腳本看看。

input: MLength(80,"天數");
value11 = Momentum(Close, MLength); 
If CurrentBar >= MLength then
    Value12 = Average(Value11, MLength)
else
    Value12 = Value11;
value13 = MTM_MA(MLength); //系統的MTM均值
Plot11(value11, "MTM");
Plot12(value12, "自訂MTM_MA");
Plot13(value13, "系統MTM_MA");
plot14(MTM(80)-MTM_MA(80),"MTM乖離");

 

灰熊 發文於   2025/04/14

教授,算出來的數值MTM還是等同MTM_MA,二者想同

虎科大許教授 發文於   2025/04/14

問題出在你使用60分鐘頻率,系統準備的資料筆數不足80筆,所以MTM及其均值都相同。若改用其他分鐘頻率,例如5分鐘,就可正常顯示。

灰熊 發文於   2025/04/14

我都用60分在交易,有辦法讓系統60分鐘可以抓超過100筆嗎

虎科大許教授 發文於   2025/04/14

在程式第一行加入 setBackBar(100);

灰熊 發文於   2025/04/14

可以了,謝謝教授

灰熊 發文於   2025/04/14

再請教一下,我回測結果,跟其他軟體不一樣,發現系統雖設100根,但實際有值只有最近的16根而己,這有辦法解決嗎

虎科大許教授 發文於   2025/04/14

我使用下列警示腳本,以日頻率測試過去5年的資料,結果是OK的,從2020年開始就有交易訊號。

setBackBar(80);
input: MLength(80,"天數");
value11 = Momentum(Close, MLength); 
If CurrentBar >= MLength then
    Value12 = Average(Value11, MLength)
else
    Value12 = Value11;
if value11 cross over value12 then ret=1;

灰熊 發文於   2025/04/14

60分K以目前來看20250414,20:20往前抓,到20250411(週五)的19:00,資料是正確的,但再往前一樣會有訊號,,訊號就不準了如下,第一點是還有資料,但再往前又回到二線會一的狀態了

再往前訊號就不準了,有時對有時不對

 

灰熊 發文於   2025/04/14

補上原程式和XQ程式,對照的訊號圖

就最近的訊號OK,超過1天的指標就不太對了,所以我才去測系統值

顯示更多回應 發表回覆
Close