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

奇狐社區論壇 (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=23253)


由 bill25789 在 2022-01-30 15:08 發表:

[問題]以歷史最高價作為if條件的語法

版主您好,

想問下面應該怎麼用語法呈現

if 歷史最高價 > 歷史第1根開盤價 and 迄今上市年數 > X then begin
DRAWSL();

end;

謝謝您!


由 cgjj 在 2022-01-31 22:54 發表:

回覆: [問題]以歷史最高價作為if條件的語法

引用:
最初由 bill25789 發表
版主您好,

想問下面應該怎麼用語法呈現

if 歷史最高價 > 歷史第1根開盤價 and 迄今上市年數 > X then begin
DRAWSL();

end;

謝謝您!



請在日線運算
迄今上市年數建議改用天數替代
在日線中總天數=總K棒數


各要素處理範例如下:

歷史最高價: HHV(High,0);
OO:=O;
歷史第1根開盤價: OO[1];
總K棒數:datacount;


由 bill25789 在 2022-02-01 21:50 發表:

回覆: 回覆: [問題]以歷史最高價作為if條件的語法

引用:
最初由 cgjj 發表
請在日線運算
迄今上市年數建議改用天數替代
在日線中總天數=總K棒數


各要素處理範例如下:

歷史最高價: HHV(High,0);
OO:=O;
歷史第1根開盤價: OO[1];
總K棒數:datacount;



您好

我這樣寫後仍然告知語法錯誤

HHP:HHV(High,0);
OO:=O;
the_O:=OO[1];

if HHP > the_O*2 and datacount > X then begin

DRAWSL();

END;



謝謝您


由 cgjj 在 2022-02-01 22:32 發表:

回覆: 回覆: 回覆: [問題]以歷史最高價作為if條件的語法

引用:
最初由 bill25789 發表
您好

我這樣寫後仍然告知語法錯誤

HHP:HHV(High,0);
OO:=O;
the_O:=OO[1];

if HHP > the_O*2 and datacount > X then begin

DRAWSL();

END;

謝謝您



if ... then 的判斷式,不能為數列,必須是單一數值
(通常會搭配迴圈來存取數列中的單一元素)

if(cond,a,b) 才可用在數列

請問您最終是想要畫什麼呢? 請詳述
這樣比較能直接協助您寫出要的結果


由 bill25789 在 2022-02-02 14:49 發表:

回覆: 回覆: 回覆: 回覆: [問題]以歷史最高價作為if條件的語法

引用:
最初由 cgjj 發表
if ... then 的判斷式,不能為數列,必須是單一數值
(通常會搭配迴圈來存取數列中的單一元素)

if(cond,a,b) 才可用在數列

請問您最終是想要畫什麼呢? 請詳述
這樣比較能直接協助您寫出要的結果





您好

HHP:HHV(High,0);
OO:=O;
the_O:=OO[1];

if HHP > the_O*2 and datacount > X then begin

DRAWSL(BARPOS=1,O,0,0,2), LINEDASH,COLORgreen;


END;

謝謝您


由 cgjj 在 2022-02-02 21:49 發表:

回覆: 回覆: 回覆: 回覆: 回覆: [問題]以歷史最高價作為if條件的語法

引用:
最初由 bill25789 發表
您好

HHP:HHV(High,0);
OO:=O;
the_O:=OO[1];

if HHP > the_O*2 and datacount > X then begin

DRAWSL(BARPOS=1,O,0,0,2), LINEDASH,COLORgreen;


END;

謝謝您



MHH:=HHV(H,0);
MHH:=MHH[datacount];
MOO:=O;
MOO:=MOO[1];
DRAWSL(BARPOS=1 and MHH>MOO*2,O,0,0,0), LINEDASH,COLORgreen;


由 bill25789 在 2022-02-03 15:24 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: [問題]以歷史最高價作為if條件的語法

引用:
最初由 cgjj 發表
MHH:=HHV(H,0);
MHH:=MHH[datacount];
MOO:=O;
MOO:=MOO[1];
DRAWSL(BARPOS=1 and MHH>MOO*2,O,0,0,0), LINEDASH,COLORgreen;



您好

現在MHH是數列,所以判斷式中,MHH>MOO*2中有一個數值成立,就會畫線。是這樣理解嗎?

謝謝您


由 cgjj 在 2022-02-03 22:31 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: [問題]以歷史最高價作為if條件的語法

引用:
最初由 bill25789 發表
您好

現在MHH是數列,所以判斷式中,MHH>MOO*2中有一個數值成立,就會畫線。是這樣理解嗎?

謝謝您



不是,

MHH:=HHV(H,0); //這行跑完MHH是數列
MHH:=MHH[datacount]; //這行跑完MHH是單值(取原MHH最末根之值)
MOO:=O; //這行跑完MOO是數列
MOO:=MOO[1]; //這行跑完MOO是單值(取原MOO首根之值)

當跑到 DRAWSL 那行時,MHH 和 MOO 皆是單值,並非數列

當 MHH>MOO*2 成立時,就會自K棒首根起畫平行的虛線


由 bill25789 在 2022-02-05 14:22 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: [問題]以歷史最高價作為if條件的語法

引用:
最初由 cgjj 發表
不是,

MHH:=HHV(H,0); //這行跑完MHH是數列
MHH:=MHH[datacount]; //這行跑完MHH是單值(取原MHH最末根之值)
MOO:=O; //這行跑完MOO是數列
MOO:=MOO[1]; //這行跑完MOO是單值(取原MOO首根之值)

當跑到 DRAWSL 那行時,MHH 和 MOO 皆是單值,並非數列

當 MHH>MOO*2 成立時,就會自K棒首根起畫平行的虛線



謝謝您的解說,

所以
MHH:=HHV(H,0); //這行跑完MHH是數列
MHH:=MHH[datacount]; //這行跑完MHH是單值(取原MHH最末根之值)


=>HHV函式所取出的數列已經自動由小大到排序,所以數列的末根數值最大值,再藉由MHH[datacount]語法取最末之值。

這樣理解對嗎?

謝謝您


由 cgjj 在 2022-02-05 21:43 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: [問題]以歷史最高價作為if條件的語法

引用:
最初由 bill25789 發表
謝謝您的解說,

所以
MHH:=HHV(H,0); //這行跑完MHH是數列
MHH:=MHH[datacount]; //這行跑完MHH是單值(取原MHH最末根之值)


=>HHV函式所取出的數列已經自動由小大到排序,所以數列的末根數值最大值,再藉由MHH[datacount]語法取最末之值。

這樣理解對嗎?

謝謝您



不太正確!
HHV(X,N),是求N週期內X的最高值
N=0,代表歷史以來到現在
並非是排序,而是比較價格
當有更高的值出現時,取更高的值,否則不變
而不是把H價由小排到大

MHH[datacount] 是取最末根之MHH
也就是自歷史首根到最末根區間之最高價

您單獨把下面這一行套用在K線圖上,去觀察值的變化,就會比較容易理解。
MH: HHV(H,0);


由 bill25789 在 2022-02-07 23:26 發表:

有了解了

謝謝您的解說


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


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

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