請問關於突破均線糾結的語法問題

  •   341 
  • 最後發表   netfish  2023 四月 25
netfish 發文於   2023/04/19

小幫手您好,我參考教學和範例,想寫出符合底下幾樣條件,突破均線糾結的指令,可是似乎有問題,懇請指教,感謝

1.今日收盤價超過最高價均線至少 2%,且 今日收盤價 >= 昨天和前天的最高價

2.昨日收盤價 <= 前天 或者 大前天的最高價

3.由昨日開始往前推,總共13日均線糾結,這13天的每日最高價均線不超過最低價均線的 1%

底下是我的語法,請指點,很感謝

input:length_5MA(5,"MA1天期"),length_10MA(10,"MA2天期"),length_20MA(20,"MA3天期"),

MA_N1(2,"高於最高MA幾(%)以上"),MA_N2(10,"高於最高MA幾(%)以下"),MA_N3(1,"均線糾結幾(%)內");

 

value1 = average(close,length_5MA);

value2 = average(close,length_10MA);

value3 = average(close,length_20MA);

 

value4 = maxlist(value1,value2,value3);

value5 = minlist(value1,value2,value3);

 

if close >= value4 * ( 1+ 0.02 * MA_N1)

and close[1] <= high[2] or close[1] <= high[3]

and close >= High[1]

and close >= high[2]

and value4[1] <= value5[1] * (1+0.01 * MA_N3)

and value4[2] <= value5[2] * (1+0.01 * MA_N3)

and value4[3] <= value5[3] * (1+0.01 * MA_N3)

and value4[4] <= value5[4] * (1+0.01 * MA_N3)

and value4[5] <= value5[5] * (1+0.01 * MA_N3)

and value4[6] <= value5[6] * (1+0.01 * MA_N3)

and value4[7] <= value5[7] * (1+0.01 * MA_N3)

and value4[8] <= value5[8] * (1+0.01 * MA_N3)

and value4[9] <= value5[9] * (1+0.01 * MA_N3)

and value4[10] <= value5[10] * (1+0.01 * MA_N3)

and value4[12] <= value5[11] * (1+0.01 * MA_N3)

and value4[12] <= value5[12] * (1+0.01 * MA_N3)

and value4[13] <= value5[13] * (1+0.01 * MA_N3) then ret = 1;

XQ小幫手 發文於   2023/04/25

Hello netfish,

 

小幫手建議您用 condition 一個個分開寫會比較好閱讀。

另外,總共13日均線糾結其實您可以直接使用 highest, lowest 計算。

舉例來說,在日頻率下:

condition1 = close >= value4 * ( 1+ 0.02 * MA_N1) and close >= high[1] and close >= high[2];

//1.今日收盤價超過最高價均線至少 2%,且 今日收盤價 >= 昨天和前天的最高價

 

condition2 = close[1] <= high[2] or close[1] <= high[3]; 

//2.昨日收盤價 <= 前天 或者 大前天的最高價

 

condition3 = highest(value4[1], 13) <= (lowest(value5[1], 13) * 1.01);

//3.由昨日開始往前推,總共13日均線糾結,這13天的每日最高價均線不超過最低價均線的 1%

 

if condition1 and condition2 and condition3 then ret = 1;

 

另外 and 的優先順序會比 or 高,所以運算出不如您所想的結果。

建議您可以加上括號 (close[1] <= high[2] or close[1] <= high[3]) 會比較好

發表回覆
Close