請教For循環語句的問題 [博易POBO]
咨詢內容:
?
MSR:=(REF(C,1)-C);
KM:=1;
FOR II:=2 TO 4 DO
BEGIN
SR:=(REF(C,II)-C)/II;
MSR:=IF(SR>MSR,SR,MSR);
KM:=IF(SR>MSR,II,KM);
END {用循環語句比較斜率SR,得到斜率最大值MSR,同時記錄最大斜率的周期數KM}
DRAWNUMBER(1,0,KM,0);
SR1:(REF(C,1)-C)/1;
SR2:(REF(C,2)-C)/2;
SR3:(REF(C,3)-C)/3;
SR4:(REF(C,4)-C)/4;
{用暴力直接計算這四個斜率,直接畫圖。如圖所示,顯然循環方法得到的KM是不對的,請教這是哪里出了問題}

? <!-- 咨詢內容:
因為是想在指標中必須用到循環的方法,發現結果總是不對,才發現是for語句執行的問題。然后就特地寫以上代碼來做明顯的對比,好說明問題。請認真比較!! 來源 程序化久久網
請教For循環語句的問題
用for語句,想求出五周期內,到最后一個周期斜率最大的那個周期KM?
MSR:=(REF(C,1)-C);
KM:=1;
FOR II:=2 TO 4 DO
BEGIN
SR:=(REF(C,II)-C)/II;
MSR:=IF(SR>MSR,SR,MSR);
KM:=IF(SR>MSR,II,KM);
END {用循環語句比較斜率SR,得到斜率最大值MSR,同時記錄最大斜率的周期數KM}
DRAWNUMBER(1,0,KM,0);
SR1:(REF(C,1)-C)/1;
SR2:(REF(C,2)-C)/2;
SR3:(REF(C,3)-C)/3;
SR4:(REF(C,4)-C)/4;
{用暴力直接計算這四個斜率,直接畫圖。如圖所示,顯然循環方法得到的KM是不對的,請教這是哪里出了問題}

? <!-- 咨詢內容:
附件 :
-->?
?來源:程序化99網( www.weiqiv.net.cn )
博易技術人員: 運行是沒有問題的,但可能跟你預想的不一樣。 就是運行有問題,但程序算法沒有問題的。為了比較直觀看到是循環語句的問題,我特意寫了上下兩段程序,上段是用循環方法,下段是直接計算法,求同一結果。程序如下,運行后結果如下圖:MSR:=(REF(C,1)-C);
KM:=1;
FORII:=2TO4DO
BEGIN
SR:=(REF(C,II)-C)/II;[b]{分別計算過去第II周期到當前周期的斜率}[/b]
MSR:=IF(SR>MSR,SR,MSR);
KM:=IF(SR>MSR,II,KM);
END
[b]{以上用循環語句的方法比較斜率SR,得到五周棋內斜率最大值MSR,同時記錄最大斜率所在周期KM}
{以下用直接法求最大斜率所在周期}[/b]
SR1:(REF(C,1)-C)/1;
SR2:(REF(C,2)-C)/2;
SR3:(REF(C,3)-C)/3;
SR4:(REF(C,4)-C)/4;
MSR2:=MAX(SR1,SR2,SR3,SR4);
KM2:=IF(MSR2=SR1,1,IF(MSR2=SR2,2,IF(MSR2=SR3,3,4)));
[b]{兩種方法的算法是等價的,比較兩種方法的結果,顯然,循環語句計算結果有問題,但程序算法沒問題的}
[/b]DRAWNUMBER(1,12,KM,0);[b]
{結果顯示全是1}[/b]
DRAWNUMBER(1,9,KM2,0);
[b][attach]5642[/attach][/b]
因為是想在指標中必須用到循環的方法,發現結果總是不對,才發現是for語句執行的問題。然后就特地寫以上代碼來做明顯的對比,好說明問題。請認真比較!! 來源 程序化久久網
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容