奇狐社區論壇 總頁數 (2): [1] 2 »
在這個頁面顯示本主題全部的 19 個文章

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


由 David 在 2022-01-14 09:05 發表:

[公式][求救] 時間區間設定(盤中可跳提示訊息)

懇求版主們及各位前輩幫忙,後學感激不盡。

假設現在日期是4月X日,

當天的股價可以跟前2月及3月的股價比較(但不會跟4/1~4/X的股價比),只要當前股價跟前兩個月的股價「最高點」,相差1.2倍、1.25倍、1.50倍、1.56倍都會跳出買進訊號提示。

但有時候條件不會這個漂亮,可能會是股價快達到我要的條件了,但是卻是在隔月月初才出現,那為了避免這種情況,就要有再一個參數是:4月X日當天的股價,跟1月及2月份的股價比較。

也就是
一個是4月的股價可以跟2、3月的最高價比
一個是4月的股價可以跟1、2月的最高價比
卻不會跟4月(同月份)股價相比

隨著時間跑,它也都會跟著動態變化這樣

我需要它盤中只要達到符合我選股條件的,可以自動跳出買進訊號。

我已經研究了公式一年了,但因為本身不是寫程式出身,還是摸不著頭緒,最近電話到經銷商,才知道可以來版主這邊求救,感謝感謝。


由 cgjj 在 2022-01-14 09:46 發表:

回覆: [公式][求救] 時間區間設定(盤中可跳提示訊息)

引用:
最初由 David 發表
懇求版主們及各位前輩幫忙,後學感激不盡。

假設現在日期是4月X日,

當天的股價可以跟前2月及3月的股價比較(但不會跟4/1~4/X的股價比),只要當前股價跟前兩個月的股價「最高點」,相差1.2倍、1.25倍、1.50倍、1.56倍都會跳出買進訊號提示。

但有時候條件不會這個漂亮,可能會是股價快達到我要的條件了,但是卻是在隔月月初才出現,那為了避免這種情況,就要有再一個參數是:4月X日當天的股價,跟1月及2月份的股價比較。

也就是
一個是4月的股價可以跟2、3月的最高價比
一個是4月的股價可以跟1、2月的最高價比
卻不會跟4月(同月份)股價相比

隨著時間跑,它也都會跟著動態變化這樣

我需要它盤中只要達到符合我選股條件的,可以自動跳出買進訊號。

我已經研究了公式一年了,但因為本身不是寫程式出身,還是摸不著頭緒,最近電話到經銷商,才知道可以來版主這邊求救,感謝感謝。



要素範例處理如下:
YM:=floor(TradeDate/100);
SWYM:=YM<>ref(YM,1);
MHH:=HHV(H,barslast(SWYM)+1);
上月高:ref(MHH,sumbars(SWYM,1));
上上月高:ref(MHH,sumbars(SWYM,2));
上上上月高:ref(MHH,sumbars(SWYM,3));

您再去應用這些要素做判斷,就可達成


由 David 在 2022-01-14 09:50 發表:

好的,非常感謝版主指導,感恩感恩


由 David 在 2022-01-14 10:10 發表:

版主可以跟我分享一下,為什麼TradeDate要處以100嗎?

版主定義YM、SWYM、MHH是什麼意思嗎?感謝


由 cgjj 在 2022-01-14 10:24 發表:

引用:
最初由 David 發表
版主可以跟我分享一下,為什麼TradeDate要處以100嗎?

版主定義YM、SWYM、MHH是什麼意思嗎?感謝



TradeDate 是該根K棒所屬交易日(非K棒日期)
除100取整,是將日期轉換為僅年月(YM)
SWYM 為換月的首根
MHH 為該月當前最高價


由 David 在 2022-01-14 10:40 發表:

哦!我懂了!版主太厲害了,感謝感謝,我再來研究一下怎麼寫


由 David 在 2022-01-14 16:14 發表:

抱歉,版主,我資質駑鈍,想再請版主指點

我這樣寫,但系統顯示第八行"參數數量有誤"

我是想說,用前月最高點-前前月最高點>0,則將前月最高點*1.2倍、否則就將前前月最高點*1.2倍,再把這個數字定義成MH212,用這樣的方式,在警示系統中設定若MHH>MH212,就會發出警示。

但因為我語法不太行,想請版主指點,感激不盡。

YM:=floor(TradeDate/100);
SWYM:=YM<>ref(YM,1);
MHH:HHV(H,barslast(SWYM)+1);
LMH:ref(MHH,sumbars(SWYM,1));
LLMH:ref(MHH,sumbars(SWYM,2));
LLLMH:ref(MHH,sumbars(SWYM,3));

MH212:If(LMH-LLMH>0 THEN LMH*1.2 ELSE LLMH*1.2);
MH2125:If LMH-LLMH>0 THEN LMH*1.25 ELSE LLMH*1.25;
MH215:If LMH-LLMH>0 THEN LMH*1.5 ELSE LLMH*1.5;
MH2156:If LMH-LMH>0 THEN LMH*1.56 ELSE LLMH*1.56;

MH312:If LLMH-LLLMH>0 THEN LLMH*1.2 ELSE LLLMH*1.2;
MH3125:If LLMH-LLLMH>0 THEN LLMH*1.25 ELSE LLLMH*1.25;
MH315:If LLMH-LLLMH>0 THEN LLMH*1.5 ELSE LLLMH*1.5;
MH3156:If LLMH-LLLMH>0 THEN LLMH*1.56 ELSE LLLMH*1.56


由 cgjj 在 2022-01-14 16:24 發表:

引用:
最初由 David 發表
抱歉,版主,我資質駑鈍,想再請版主指點

我這樣寫,但系統顯示第八行"參數數量有誤"

我是想說,用前月最高點-前前月最高點>0,則將前月最高點*1.2倍、否則就將前前月最高點*1.2倍,再把這個數字定義成MH212,用這樣的方式,在警示系統中設定若MHH>MH212,就會發出警示。

但因為我語法不太行,想請版主指點,感激不盡。

YM:=floor(TradeDate/100);
SWYM:=YM<>ref(YM,1);
MHH:HHV(H,barslast(SWYM)+1);
LMH:ref(MHH,sumbars(SWYM,1));
LLMH:ref(MHH,sumbars(SWYM,2));
LLLMH:ref(MHH,sumbars(SWYM,3));

MH212:If(LMH-LLMH>0 THEN LMH*1.2 ELSE LLMH*1.2);
MH2125:If LMH-LLMH>0 THEN LMH*1.25 ELSE LLMH*1.25;
MH215:If LMH-LLMH>0 THEN LMH*1.5 ELSE LLMH*1.5;
MH2156:If LMH-LMH>0 THEN LMH*1.56 ELSE LLMH*1.56;

MH312:If LLMH-LLLMH>0 THEN LLMH*1.2 ELSE LLLMH*1.2;
MH3125:If LLMH-LLLMH>0 THEN LLMH*1.25 ELSE LLLMH*1.25;
MH315:If LLMH-LLLMH>0 THEN LLMH*1.5 ELSE LLLMH*1.5;
MH3156:If LLMH-LLLMH>0 THEN LLMH*1.56 ELSE LLLMH*1.56




MH212:If(LMH-LLMH>0 THEN LMH*1.2 ELSE LLMH*1.2);
MH2125:If LMH-LLMH>0 THEN LMH*1.25 ELSE LLMH*1.25;
MH215:If LMH-LLMH>0 THEN LMH*1.5 ELSE LLMH*1.5;
MH2156:If LMH-LMH>0 THEN LMH*1.56 ELSE LLMH*1.56;
MH312:If LLMH-LLLMH>0 THEN LLMH*1.2 ELSE LLLMH*1.2;
MH3125:If LLMH-LLLMH>0 THEN LLMH*1.25 ELSE LLLMH*1.25;
MH315:If LLMH-LLLMH>0 THEN LLMH*1.5 ELSE LLLMH*1.5;
MH3156:If LLMH-LLLMH>0 THEN LLMH*1.56 ELSE LLLMH*1.56

改為
MH212:if(LMH-LLMH>0, LMH*1.2, LLMH*1.2);
MH2125:if(LMH-LLMH>0, LMH*1.25, LLMH*1.25);
MH215:if(LMH-LLMH>0, LMH*1.5, LLMH*1.5);
MH2156:if(LMH-LMH>0, LMH*1.56, LLMH*1.56);
MH312:if(LLMH-LLLMH>0, LLMH*1.2, LLLMH*1.2);
MH3125:if(LLMH-LLLMH>0, LLMH*1.25, LLLMH*1.25);
MH315:if(LLMH-LLLMH>0, LLMH*1.5, LLLMH*1.5);
MH3156:if(LLMH-LLLMH>0, LLMH*1.56, LLLMH*1.56);


由 David 在 2022-01-14 16:40 發表:

感謝版主教學 ^^


由 David 在 2022-01-14 20:29 發表:

版主您好:

剛剛做了測試,它似乎沒有辦法用來研究歷史資訊。

我是用"條件選股">"選擇我的組合模式">勾選歷史時段選股>時間設定為2020/5/1~2020/5/31

(舉例) 我想要分析2020年5月1日~5月31日之間,有達成這樣條件的股票,以MH212為例,應該是會顯示出3月及4月的最高價,來跟5月1日~31日的股價相比,有符合條件的才會出現。

但出現100多檔股票,並沒有符合,幾乎都是跟現在的股價相比,而不是跟2020年05月的相比。

這裡程式可以怎麼修改呢?感謝版主解答

YM:=floor(TradeDate/100);
SWYM:=YM<>ref(YM,1);
MHH:HHV(H,barslast(SWYM)+1);
LMH:ref(MHH,sumbars(SWYM,1));
LLMH:ref(MHH,sumbars(SWYM,2));
LLLMH:ref(MHH,sumbars(SWYM,3));

MH212:If(LMH-LLMH>0 THEN LMH*1.2 ELSE LLMH*1.2);

附圖是我想抓5月,跟2、3月最高價比的圖,也是沒有抓正確股票


由 David 在 2022-01-14 20:42 發表:

剛剛貼不上圖


由 cgjj 在 2022-01-14 22:09 發表:

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

剛剛做了測試,它似乎沒有辦法用來研究歷史資訊。

我是用"條件選股">"選擇我的組合模式">勾選歷史時段選股>時間設定為2020/5/1~2020/5/31

(舉例) 我想要分析2020年5月1日~5月31日之間,有達成這樣條件的股票,以MH212為例,應該是會顯示出3月及4月的最高價,來跟5月1日~31日的股價相比,有符合條件的才會出現。

但出現100多檔股票,並沒有符合,幾乎都是跟現在的股價相比,而不是跟2020年05月的相比。

這裡程式可以怎麼修改呢?感謝版主解答

YM:=floor(TradeDate/100);
SWYM:=YM<>ref(YM,1);
MHH:HHV(H,barslast(SWYM)+1);
LMH:ref(MHH,sumbars(SWYM,1));
LLMH:ref(MHH,sumbars(SWYM,2));
LLLMH:ref(MHH,sumbars(SWYM,3));

MH212:If(LMH-LLMH>0 THEN LMH*1.2 ELSE LLMH*1.2);

附圖是我想抓5月,跟2、3月最高價比的圖,也是沒有抓正確股票



1.
MH212 本身並不是條件唷~~
沒有見到你設的條件為何? 無法協助

2.
請留意還權與不還權的差異
核對時兩邊要相同基準才能比對


由 David 在 2022-01-14 22:59 發表:

版主,我是這樣設定的
在公式管理中→新建→新增條件→

選擇「當前股價指標線(MHH)之後」>
與前2~3個月的最高價比

即:MHH>MH312(最高價*1.2倍)
就會給我警示的設定

(不知道是不是這樣設定?)

然後我放在組合條件之後
用圖2 條件選股,選擇剛剛的組合條件後,設定好歷史時間,再執行選股。

不知道這個過程中,是哪裡出錯需要修正?
是公式還有需要怎麼寫嗎?
還是設定上的問題呢?

再麻煩版主指點,感激不盡。


由 David 在 2022-01-14 23:00 發表:

圖2


由 cgjj 在 2022-01-15 23:18 發表:

引用:
最初由 David 發表
版主,我是這樣設定的
在公式管理中→新建→新增條件→

選擇「當前股價指標線(MHH)之後」>
與前2~3個月的最高價比

即:MHH>MH312(最高價*1.2倍)
就會給我警示的設定

(不知道是不是這樣設定?)

然後我放在組合條件之後
用圖2 條件選股,選擇剛剛的組合條件後,設定好歷史時間,再執行選股。

不知道這個過程中,是哪裡出錯需要修正?
是公式還有需要怎麼寫嗎?
還是設定上的問題呢?

再麻煩版主指點,感激不盡。



我這邊測試過,沒有問題唷!
MHH>MH312 20200501-20200531 共選中82支


全部時間均為台灣時間, 現在時間為21:02 總頁數 (2): [1] 2 »
在這個頁面顯示本主題全部的 19 個文章


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

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