![]() |
在這個頁面顯示本主題全部的 14 個文章 |
奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 請問版主 IF 語法錯誤 要如何修正 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=21083)
請問版主 IF 語法錯誤 要如何修正
/TR:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
TR:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
CI:=log((sum(TR,14)/(HHV(high,14)-LLV(Low,14))))/log(14);
CIA:EMA(CI,1);
Partline(CIA<=ref(CIA,1),CIA), color0066cc,linethick4;
Partline(CIA>ref(CIA,1),CIA), colorgray,linethick4;
Partline(1,0.618),colorbrown,linethick1;
Partline(1,0.382),colorbrown,linethick1;
Drawicon(CI>=0.618, 0.618,12);
Drawicon(CI<0.382,0.382,10);
{Relative Strenth Indicator , RSI , 相對強弱指標}
//LC := REF(CLOSE,1);
//RSI:SMA(MAX(CLOSE-LC,0),Q,1)/SMA(ABS(CLOSE-LC),Q,1)*100,colorblue,linethick2;
Partline(1,0.70),colorgray,linethick1;
Partline(1,0.30),colorgray,linethick1;
oo:= (o + ref(c,1)) / 2;
hh:= MAX(h, ref(c,1));
ll:= MIN(l, ref(c,1));
cc := (oo + hh + ll + c) / 4;
L0 := (1 -CI) * cc + CI * ref(L0,1);
L1 := -CI * L0 + ref(L0,1) + CI * ref(L1,1);
L2 := -CI * L1 + ref(L1,1) + CI * ref(L2,1);
L3 := -CI * L2 + ref(L2,1) + CI * ref(L3,1);
if L0 >= L1 then begin
CU1 := L0 - L1;
CD1 := 0;
end else begin
CD1 := L1 - L0;
CU1 := 0;
end;
if L1 >= L2 then begin
CU2 := CU1 + L1 - L2;
CD2 := CD1;
end else begin
CD2 := CD1 + L2 - L1;
CU2 := CU1;
end;
if L2 >= L3 then begin
CU := CU2 + L2 - L3;
CD := CD2;
end else begin
CU := CU2;
CD := CD2 + L3 - L2;
end;
RSI : if CU + CD <> 0 then CU / (CU + CD) else 0;
上面語法錯在 IF then else 部分 要如何修正
謝謝
回覆: 請問版主 IF 語法錯誤 要如何修正
引用:
最初由 eyho 發表
/TR:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
TR:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
CI:=log((sum(TR,14)/(HHV(high,14)-LLV(Low,14))))/log(14);
CIA:EMA(CI,1);
Partline(CIA<=ref(CIA,1),CIA), color0066cc,linethick4;
Partline(CIA>ref(CIA,1),CIA), colorgray,linethick4;
Partline(1,0.618),colorbrown,linethick1;
Partline(1,0.382),colorbrown,linethick1;
Drawicon(CI>=0.618, 0.618,12);
Drawicon(CI<0.382,0.382,10);
{Relative Strenth Indicator , RSI , 相對強弱指標}
//LC := REF(CLOSE,1);
//RSI:SMA(MAX(CLOSE-LC,0),Q,1)/SMA(ABS(CLOSE-LC),Q,1)*100,colorblue,linethick2;
Partline(1,0.70),colorgray,linethick1;
Partline(1,0.30),colorgray,linethick1;
oo:= (o + ref(c,1)) / 2;
hh:= MAX(h, ref(c,1));
ll:= MIN(l, ref(c,1));
cc := (oo + hh + ll + c) / 4;
L0 := (1 -CI) * cc + CI * ref(L0,1);
L1 := -CI * L0 + ref(L0,1) + CI * ref(L1,1);
L2 := -CI * L1 + ref(L1,1) + CI * ref(L2,1);
L3 := -CI * L2 + ref(L2,1) + CI * ref(L3,1);
if L0 >= L1 then begin
CU1 := L0 - L1;
CD1 := 0;
end else begin
CD1 := L1 - L0;
CU1 := 0;
end;
if L1 >= L2 then begin
CU2 := CU1 + L1 - L2;
CD2 := CD1;
end else begin
CD2 := CD1 + L2 - L1;
CU2 := CU1;
end;
if L2 >= L3 then begin
CU := CU2 + L2 - L3;
CD := CD2;
end else begin
CU := CU2;
CD := CD2 + L3 - L2;
end;
RSI : if CU + CD <> 0 then CU / (CU + CD) else 0;
上面語法錯在 IF then else 部分 要如何修正
謝謝
這是LaGuerre Time transform 的方式來計算rsi, 這個計算只是邏輯,希望改成奇狐語法. 再次感謝,望版主協助。
若是板主有興趣 LaGuerre Time Transform請參考下文:
https://en.wikipedia.org/wiki/Laguerre_transform
謝謝
或參考下文
http://systemtradersuccess.com/lagu...vs-classic-rsi/
謝謝
引用:
最初由 eyho 發表
這是LaGuerre Time transform 的方式來計算rsi, 這個計算只是邏輯,希望改成奇狐語法. 再次感謝,望版主協助。
若是板主有興趣 LaGuerre Time Transform請參考下文:
https://en.wikipedia.org/wiki/Laguerre_transform
或參考下文
http://systemtradersuccess.com/lagu...vs-classic-rsi/
謝謝
謝謝版主
現在 IF語法沒問題了 新問題出現
oo:= (o + ref(c,1)) / 2;
hh:= MAX(h, ref(c,1));
ll:= MIN(l, ref(c,1));
cc := (oo + hh + ll + c) / 4;
以上ok 下一行無法計算出數值
L0 := (1 -CI) * cc + CI * ref(L0,1);
這個邏輯是:
L0 是 (1-CI) * cc 加 CI * 之前的 L0值 ....
不知道為何 語法沒錯 但沒有算出值 ????
再次感謝
引用:
最初由 eyho 發表
謝謝版主
現在 IF語法沒問題了 新問題出現
oo:= (o + ref(c,1)) / 2;
hh:= MAX(h, ref(c,1));
ll:= MIN(l, ref(c,1));
cc := (oo + hh + ll + c) / 4;
以上ok 下一行無法計算出數值
L0 := (1 -CI) * cc + CI * ref(L0,1);
這個邏輯是:
L0 是 (1-CI) * cc 加 CI * 之前的 L0值 ....
不知道為何 語法沒錯 但沒有算出值 ????
再次感謝
引用:
最初由 38ORCHID 發表
要取MA(C,50)的數值,第52根起取EMA(C,50)的數值,謝謝!
//按前面說的, 應是第51根起唷
原碼:
XX:=MA(C,50);
StNo:=lbound(XX); 請問這是什麼用意?
YY:XX*0; 請問這是什麼用意?
YY[StNo]:=XX[StNo]; 請問這是什麼用意?
for I=StNo+1 to datacount do begin
YY[I]:=(2*XX[i]+(N-1)*YY[I-1])/(N+1);
end; 請問datacount是?
不好意思 不清楚如何寫?
引用:
最初由 eyho 發表
請問datacount是?
不好意思 不清楚如何寫?
請問版主
L0 := (1 -CI) * cc + CI * ref(L0,1);
是要改成這樣嗎
L0X:=(1-CI)*cc;
StNo:=lbound(L0X);
L0:=L0X*0;
L0[StNo]:=L0x[StNo];
for i=StNo+1 to datacount do begin
L0[i]:=L0X[i]+CI*L0[i-1];
end;
謝謝
引用:
最初由 eyho 發表
請問版主
L0 := (1 -CI) * cc + CI * ref(L0,1);
是要改成這樣嗎
L0X:=(1-CI)*cc;
StNo:=lbound(L0X);
L0:=L0X*0;
L0[StNo]:=L0x[StNo];
for i=StNo+1 to datacount do begin
L0[i]:=L0X[i]+CI*L0[i-1];
end;
謝謝
還是不了解也不懂迴圈語法 所以不懂版主提示
謝謝版主
引用:
最初由 eyho 發表
還是不了解也不懂迴圈語法 所以不懂版主提示
謝謝版主
全部時間均為台灣時間, 現在時間為01:19 | 在這個頁面顯示本主題全部的 14 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.