在15分鐘中上設定的警示雷達

  •   1.2K 
  • 最後發表   金士曼  2019 三月 13
金士曼 發文於   2019/03/04

請問小幫手,要設定賣出條件: 15分KD死亡交叉+MACD OSC柱縮小 (且限制KD在80以下)

input: Length(9), RSVt(3), Kt(3), HighBound(80);
SetTotalBar(maxlist(Length,6) * 3 + 8);
SetInputName(1, "計算期數");
SetInputName(2, "RSVt權數");
SetInputName(3, "Kt權數");
setInputName(4, "高檔區");
variable: rsv(0), k(0), _d(0);
Stochastic(Length, RSVt, Kt, rsv, k, _d);
// DIF-MACD OSC柱數值變小
//
input: FastLength(12), SlowLength(26), MACDLength(9);
variable: difValue(0), macdValue(0), oscValue(0);
 
SetTotalBar((maxlist(FastLength,SlowLength,6) + MACDLength) * 3 + 8);
 
SetInputName(1, "DIF短期期數");
SetInputName(2, "DIF長期期數");
SetInputName(3, "MACD期數");
 
MACD(weightedclose(), FastLength, SlowLength, MACDLength, difValue, macdValue, oscValue);


if k<HighBound and k crosses under _d and oscValue < oscValue[1] then ret=1;


請問上面這樣的語法正確嗎? 要在15分K上使用的話,需要像下面這樣再定義15分K上,還是上面的原式,然後策略雷達上再選週期15分K就可以使用,不太懂有這樣定義跟沒這樣定義的差別!? 謝謝。

再定義 value1 = xfMin_Stochastic("15",9,3,3,value2,value3,value4);       //計算15分鐘線KD指標
 和
Value5 = xfMin_MACD("15",xfMin_weightedclose("15"),12,26,9,value2,value3,value4);    //計算15分鐘線MACD

排序方式: 標準 | 最新
XQ小幫手 發文於   2019/03/05

Hi 金士曼,

請問上面這樣的語法正確嗎? 

您好,要檢驗語法是否正確,可以使用 Print 語法檢驗,您可以試著 Print 語法檢驗看看,

若檢驗過程有困難再提出,小幫手再提供撰寫方向給您,


 

要在15分K上使用的話,需要像下面這樣再定義15分K上,還是上面的原式,然後策略雷達上再選週期15分K就可以使用,

使用上面的程式碼就可以了,然後策略雷達上再選週期15分K就可以使用。


 

不太懂有這樣定義跟沒這樣定義的差別!? 謝謝。

下面的語法是跨頻率計算 15 分的MACD。

 

以上方向與說明供您參考,謝謝您的詢問。

金士曼 發文於   2019/03/05

感謝小幫手這篇和其他篇的回答,另外請問小幫手

問題1.如果今天改成 5分K上KD死亡交叉 + 15分K上MACD OSC柱縮小 (且限制5分KD的K值在80以下),這樣跨頻率的完整語法要怎麼寫?

問題2. 5分K上KD的死亡交叉 如果要指定K值在50以上80以下,又要怎麼寫?

問題3.如果在收盤後,利用這樣的語法,收盤的最後一根K棒只要有符合條件 警示雷達就可以搜尋的到? 還是收盤後只能搜尋日線(含)以上的腳本?

XQ小幫手 發文於   2019/03/06

Hi 金士曼,

問題1.如果今天改成 5分K上KD死亡交叉 + 15分K上MACD OSC柱縮小 (且限制5分KD的K值在80以下),這樣跨頻率的完整語法要怎麼寫?

您好,雷達頻率設定為 5分K,KD死亡交叉可以使用 Stochastic 函數來運算 KD 相關數值,

並搭配 Cross under 與 if 判斷5分K上KD是否死亡交叉(這裡不需要使用跨頻率,因為雷達頻率設為5分K)

且K值要在80以下,這裡的 5分K 相關策略才算通過。

 

再來使用 xfMin_MACD 語法跨 15 分鐘頻率取得15分K上MACD的相關數值,

並用 xfMin_GetValue  語法取得前一根 15 分鐘 Osc 的數值,

再用 if 判斷當根跨頻率取15分鐘的 OSC值 與前一根15分鐘的 OSC 值是否縮小,

若縮小且與 5分KD相關策略通過,則觸發訊號。


 

問題2. 5分K上KD的死亡交叉 如果要指定K值在50以上80以下,又要怎麼寫?

同 問題1. 的 5分K所述,加上使用 if 來判斷 K值在 50 ~ 80間,則觸發訊號。


 

問題3.如果在收盤後,利用這樣的語法,收盤的最後一根K棒只要有符合條件 警示雷達就可以搜尋的到? 還是收盤後只能搜尋日線(含)以上的腳本?

在「5分K上KD死亡交叉 + 15分K上MACD OSC柱縮小 (且限制5分KD的K值在80以下)」的策略條件下,

小幫手在上述所建議的撰寫方向,僅適用於 5分K 資料頻率。

 

以上說明與方向供您參考,謝謝。

 

金士曼 發文於   2019/03/06

請問小幫手,這是系統內建的KD死亡交叉腳本

input: Length(9), RSVt(3), Kt(3), HighBound(75);

SetTotalBar(maxlist(Length,6) * 3 + 8);

SetInputName(1, "計算期數");
SetInputName(2, "RSVt權數");
SetInputName(3, "Kt權數");
setInputName(4, "高檔區");

variable: rsv(0), k(0), _d(0);

Stochastic(Length, RSVt, Kt, rsv, k, _d);

if k>HighBound and k crosses under _d
then ret=1;

 

如果我把第一行KD的參數 input: Length(9), RSVt(3), Kt(3), HighBound(75);

Length(9) 改成 Length(18)

後面的參數有需要跟著調動嗎?

另外定義KD的下界限是 Lowbound ?

 

今天測試了4個都有含KD的腳本,參數都有動到,不是原本預設的9

腳本裡面還有用到 DMI的ADX

input: Length(14), Threshold(25);

variable: pdi_value(0), ndi_value(0), adx_value(0);

settotalbar(maxlist(Length,6) * 13 + 8);

 

因為腳本中我沒有附上面這段,只有KEY進下面這段,這樣會導致沒辦法正確偵測嗎?

value1 = DirectionMovement(14,value2,value3,value4); //計算14期的DMI指標

整天下來實際觸發的標的非常的少,我為了偵測比較多的標的,所以選了組合中的買賣現沖,我選擇這個偵測範圍有沒有問題?

,另外觸發設定建議選哪一個選項,然後需不需要勾選逐筆洗價?

 

XQ小幫手 發文於   2019/03/07

Hi 金士曼,

如果我把第一行KD的參數 input: Length(9), RSVt(3), Kt(3), HighBound(75);

Length(9) 改成 Length(18)後面的參數有需要跟著調動嗎?

您好,應該是不用的,您可以使用 Print 語法,並對照技術分析圖的KD指標來檢驗相關數值,即可知悉。


 

另外定義KD的下界限是 Lowbound ?

您可以自行宣告變數命名KD的下界限,不一定要是 Lowbound 。


 

整天下來實際觸發的標的非常的少,我為了偵測比較多的標的,所以選了組合中的買賣現沖,我選擇這個偵測範圍有沒有問題?

您好,這部分需要請您提供

雷達匯出檔案,記得匯出時要勾選包含自訂腳本。

以利小幫手查看問題的原因,謝謝。

P.S. 雖然您有提供部分程式碼,但小幫手需要完整的程式碼與雷達相關設定才能確認問題的原因為何?謝謝。


 

另外觸發設定建議選哪一個選項,然後需不需要勾選逐筆洗價?

您好,可以參考以下文章,有相關介紹與說明,謝謝:

進階篇: 觸發設定方式的應用

以上說明與方向供您參考,謝謝。

金士曼 發文於   2019/03/07

問題2.

5分K上KD的死亡交叉 如果要指定K值在50以上80以下,又要怎麼寫?

小幫手的意思是

if K >= 50 ~ 80 是這樣 KEY嗎?

 

另外我想問,如果我想要KD中的K值經過50,不論是往上通過,還是往下通過

都可以發出通知,這樣最後判別的 iF .....     這邊要怎麼寫 ?

 

以3條件(A, B, C)單敘述

除了上述的條件之外再加另1個也能觸發的情況.

iF A then ret=1

else

iF B then ret=1

else

iF C then ret=1;

這樣對嗎?

XQ小幫手 發文於   2019/03/08

Hi 金士曼,

如果要指定K值在50以上80以下,又要怎麼寫?

小幫手的意思是if K >= 50 ~ 80 是這樣 KEY嗎?

您好,不是 if K >= 50 ~ 80,而是使用以下的語法,您可以試試看,

if K >= 50 and K < 80 then ...

 

另外我想問,如果我想要KD中的K值經過50,不論是往上通過,還是往下通過

都可以發出通知,這樣最後判別的 iF .....     這邊要怎麼寫 ?

您好,小幫手會用以下範例程式碼來撰寫,提供給您參考,

if k cross above 50 or k cross under 50 then ret = 1;

 

以3條件(A, B, C)單敘述

除了上述的條件之外再加另1個也能觸發的情況.

iF A then ret=1

else

iF B then ret=1

else

iF C then ret=1;

這樣對嗎?

這樣表述可以,或者也可以使用 or 來做到,

 

以上方向供您參考,謝謝。

金士曼 發文於   2019/03/08

請問小幫手

以3條件(A, B, C)單敘述來說

觸發其中一個條件時,有辦法跳出的警示訊號可以顯示出是觸發其中的哪一個條件嗎?

 

另有一個問題,今天在偵測股期這樣的商品時,如果要限制5日均量的限制

可以用下面這樣的來表示嗎

average(volume,5) > 1000

期貨口數和判定股票成交量能用相同的語法?

XQ小幫手 發文於   2019/03/11

Hi 金士曼,

以3條件(A, B, C)單敘述來說

觸發其中一個條件時,有辦法跳出的警示訊號可以顯示出是觸發其中的哪一個條件嗎?

您好,可以使用 RetMsg 語法來設定警示腳本觸發時所顯示的訊息,如連結網頁說明,


 

如果要限制5日均量的限制可以用下面這樣的來表示嗎

average(volume,5) > 1000

期貨口數和判定股票成交量能用相同的語法?

您好,可以的,限制5日均量的限制可以用您所述的語法表示,

期貨口數和判定股票成交量能用相同的語法,如 成交量 (資料欄位) 說明,

 

以上說明,謝謝。

金士曼 發文於   2019/03/11

感謝小幫手的回覆

可以示範一下以3條件(A, B, C)單敘述來說

RetMsg 要怎麼附加在3條件(A, B, C)後面,才可以各自顯示,從你附的連結看不出來怎麼用!

 

 

後來發現我有限制成交量的  幾分K腳本都有很難觸發的問題

請問,假設是在15分K的警示雷達裡

如果我要限制5日成交量 > 1000

5日平均成交量因該改成像下面這樣改成跨頻率才行?

input: X(5,"均量天期"), Y(1000,"均量門檻");
value1 = xf_Xaverage("D",volume,X);

 

 

顯示更多回應 發表回覆
Close