奇狐社區論壇
在這個頁面顯示本主題全部的 6 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 指標寫法 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=11344)


由 well0892 在 2009-04-03 18:49 發表:

指標寫法

KK:=CLOSE - REF( CLOSE , 10 ) ;
XX:=ABS( CLOSE - REF( CLOSE , 1 ) ) ;
VV:=SUM( XX , 10 ) ;
ER:=ABS( KK / VV ) ;
SS:=ER * 0.618 ;
PP:=SS * SS , Linethick0;
YY:REF( CLOSE , 1 ) ;
AA:IF( SUM( 1 ,0 ) , YY , 0 ) ;
BB:BARSLAST( ABS(AA)>0 ) ;
DD:REF( CLOSE , BB ) ;
CC:=CLOSE , Linethick0 ;
<%
VD= FFL.VarData("DD")
VC= FFL.VarData("CC")
VP= FFL.VarData("PP")
LT = UBound( VC )
for J= NN+1 TO LT
VD( J )=VD( J - 1 ) + VP( J ) * ( VC( J ) - VD( J - 1 ) )
next
FFL.VarData("DD")=VD
%>

PARTLINE(CLOSE> 0,DD) , COLOR0000ff, Linethick3;

上面公式含有VBS語法,是否請版主或其他指標高手幫小弟改成不含
VBS語法之公式

謝謝.........


由 cgjj 在 2009-04-06 09:10 發表:

回覆: 指標寫法

引用:
最初由 well0892 發表
KK:=CLOSE - REF( CLOSE , 10 ) ;
XX:=ABS( CLOSE - REF( CLOSE , 1 ) ) ;
VV:=SUM( XX , 10 ) ;
ER:=ABS( KK / VV ) ;
SS:=ER * 0.618 ;
PP:=SS * SS , Linethick0;
YY:REF( CLOSE , 1 ) ;
AA:IF( SUM( 1 ,0 ) , YY , 0 ) ;
BB:BARSLAST( ABS(AA)>0 ) ;
DD:REF( CLOSE , BB ) ;
CC:=CLOSE , Linethick0 ;
<%
VD= FFL.VarData("DD")
VC= FFL.VarData("CC")
VP= FFL.VarData("PP")
LT = UBound( VC )
for J= NN+1 TO LT
VD( J )=VD( J - 1 ) + VP( J ) * ( VC( J ) - VD( J - 1 ) )
next
FFL.VarData("DD")=VD
%>

PARTLINE(CLOSE> 0,DD) , COLOR0000ff, Linethick3;

上面公式含有VBS語法,是否請版主或其他指標高手幫小弟改成不含
VBS語法之公式

謝謝.........



此段公式並不完整唷
NN 是沒被定義的變數


由 well0892 在 2009-04-06 14:37 發表:

總版主大大您好:


小弟在發文之前已注意到 NN 沒被定義的問題,因為整個程式可以正常運作,所以沒有再去注意,但是小弟曾經試過只要是大於1的整數或是

任何沒被定義及已被定義之文字後面加上大於1的整數,都是可以正常運作,而且結果完全一樣,因此感到疑惑,

若是將 NN+1改成 PP+1 請問這樣可以改成不含 VBS 語法之公式嗎 ?

麻煩總版主 謝謝....


由 cgjj 在 2009-04-06 15:14 發表:

引用:
最初由 well0892 發表
總版主大大您好:


小弟在發文之前已注意到 NN 沒被定義的問題,因為整個程式可以正常運作,所以沒有再去注意,但是小弟曾經試過只要是大於1的整數或是

任何沒被定義及已被定義之文字後面加上大於1的整數,都是可以正常運作,而且結果完全一樣,因此感到疑惑,

若是將 NN+1改成 PP+1 請問這樣可以改成不含 VBS 語法之公式嗎 ?

麻煩總版主 謝謝....



這指標若用於股價無負數的商品
單就這五行來看

YY:REF( CLOSE , 1 ) ;
AA:IF( SUM( 1 ,0 ) , YY , 0 ) ;
BB:BARSLAST( ABS(AA)>0 ) ;
DD:REF( CLOSE , BB ) ;
CC:=CLOSE

CC 和 DD 其值是完全相同的
差別僅在於
DD 自第二根K棒開始有效
CC 自第一根K棒開始有效

程序處理上沒必要這麼費事

---------------------------------------------------------

那段 vbs 程式相等於
for j=NN+1 to datacount do begin
DD[j]:=DD[j-1]+PP[j]*(CC[j]-DD[j-1]);
end;

NN 會影響起點, 也會影響後面的計算數值

這整段程式像是拼湊而成的
建議您先弄清楚它算什麼吧
不要錯的渾然不知


由 well0892 在 2009-04-11 18:14 發表:

總版主大大您好:
經由您的指點小弟已經了解這個程式的運算方式,非常感謝,但是仍有問題尚未克服,所以再度向您請教

假設 A為商品第一個交易日之數值,其值為大於0之任意數
N為ABS(CLOSE-OPEN)*0.01

如果第一個交易日A取一任意數 A=5000 則運算式為 5000+N*(CLOSE-5000) 如果等於5005
第二個交易日則引用5005 則運算式為 5005+N*(CLOSE-5005) 如果等於5008
第三個交易日則引用5008 則運算式為 5008+N*(CLOSE-5008) 如果等於5007
第四個交易日則引用5007 則運算式為 5007+N*(CLOSE-5007)
以下類推.....

請問總版主這樣的狀況應該如何寫?

是否一定要用數列的方式寫?

不用數列的方式可以嗎?如果可以請總版主用這個方式幫助小弟

謝謝...


由 cgjj 在 2009-04-14 09:06 發表:

引用:
最初由 well0892 發表
總版主大大您好:
經由您的指點小弟已經了解這個程式的運算方式,非常感謝,但是仍有問題尚未克服,所以再度向您請教

假設 A為商品第一個交易日之數值,其值為大於0之任意數
N為ABS(CLOSE-OPEN)*0.01

如果第一個交易日A取一任意數 A=5000 則運算式為 5000+N*(CLOSE-5000) 如果等於5005
第二個交易日則引用5005 則運算式為 5005+N*(CLOSE-5005) 如果等於5008
第三個交易日則引用5008 則運算式為 5008+N*(CLOSE-5008) 如果等於5007
第四個交易日則引用5007 則運算式為 5007+N*(CLOSE-5007)
以下類推.....

請問總版主這樣的狀況應該如何寫?

是否一定要用數列的方式寫?

不用數列的方式可以嗎?如果可以請總版主用這個方式幫助小弟

謝謝...



因為需引用前一根算計算後的值, 故需要迴圈處理
StNo:=1; StA:=5000;
AA[StNo]:=StA+N*(CC[J]-StA);
for i=StNo+1 to datacount do begin
AA[i]=AA[i-1]+N*(CC[i]-AA[i-1]);
end;


全部時間均為台灣時間, 現在時間為12:36
在這個頁面顯示本主題全部的 6 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.