有關XS撰寫問題

  •   547 
  • 最後發表   彭琪  2022 八月 02
彭琪 發文於   2022/07/21

以下是大戶散戶籌碼流向(金額)及漲跌成交量指標腳本

大戶散戶籌碼流向(金額)指標腳本如下

{指標數值定義:"大戶=特大單+大單, 散戶=小單
資料為大戶/散戶從開盤累計到現在的(外盤-內盤)金額"

支援商品:台(股票)}

if barfreq <> "Min" and barfreq <> "D" and barfreq <> "AD" then
    raiseruntimeerror("僅支援分鐘與日頻率(含還原)");
    
value91 = GetField("賣出特大單金額");//僅提供給有權限的用戶使用

value1 = GetField("賣出特大單金額","D") + GetField("賣出大單金額","D");
value2 = GetField("買進特大單金額","D") + GetField("買進大單金額","D");
value3 = value2 - value1;
value11 = GetField("賣出小單金額","D");
value21 = GetField("買進小單金額","D");
value31 = value21 - value11;
plot1(value3,"大戶買賣力(金額)");
plot2(value31,"散戶買賣力(金額)");

漲跌成交量指標腳本如下

{指標數值定義:(上漲)量 = 開盤累計到目前比前一價(上漲)的成交量的加總

支援商品:台股,大盤,類股,期貨,選擇權}

if barfreq <> "Min" and barfreq <> "D" and barfreq <> "AD" then
    raiseruntimeerror("僅支援分鐘與日頻率(含還原)");
    
value91 = GetField("上漲量");//僅提供給有權限的用戶使用

value1 = GetField("上漲量","D");
value2 = GetField("下跌量","D");
value3 = value1 - value2;
plot1(value3,"漲跌成交");
plot2(value1,"上漲量",checkbox:=0);
plot3(value2,"下跌量",checkbox:=0);

問題1-請問在日內5分K頻率下,當(此K棒收盤後的大戶買賣力大於前一根大戶買賣力)且(此K棒收盤後的散戶買賣力小於前一根散戶買賣力)且(漲跌成交量差大於0)時發出警示腳本該如何撰寫?

问题2-當大戶散戶買賣力金叉或死叉時如何發出警示? 

排序方式: 標準 | 最新
musashi 發文於   2022/07/22

    //直接在指定日頻加上[1]判斷交叉
    if   ((GetField("買進特大單金額","D")[1] + GetField("買進大單金額","D")[1]) - (GetField("賣出特大單金額","D")[1] + GetField("賣出大單金額","D")[1]))
        <=(GetField("買進小單金額"  ,"D")[1] - GetField("賣出小單金額","D")[1])
    and  ((GetField("買進特大單金額","D")    + GetField("買進大單金額","D"))    - (GetField("賣出特大單金額","D")    + GetField("賣出大單金額","D")))
         >(GetField("買進小單金額"  ,"D")    - GetField("賣出小單金額","D"))
    then begin ret=1; retmsg="金叉";end;

    if   ((GetField("買進特大單金額","D")[1] + GetField("買進大單金額","D")[1]) - (GetField("賣出特大單金額","D")[1] + GetField("賣出大單金額","D")[1]))
        >=(GetField("買進小單金額"  ,"D")[1] - GetField("賣出小單金額","D")[1])
    and  ((GetField("買進特大單金額","D")    + GetField("買進大單金額","D"))    - (GetField("賣出特大單金額","D")    + GetField("賣出大單金額","D")))
         <(GetField("買進小單金額"  ,"D")    - GetField("賣出小單金額","D"))
    then begin ret=1; retmsg="死叉";end;

XQ小幫手 發文於   2022/08/02

Hello 彭琪,

 

需注意 特大單 等資料欄位沒有提供日頻率回測。

value1 = GetField("賣出特大單金額","D") + GetField("賣出大單金額","D");

value2 = GetField("買進特大單金額","D") + GetField("買進大單金額","D");

value3 = value2 - value1;

 

value11 = GetField("賣出小單金額","D");

value12 = GetField("買進小單金額","D");

value13 = value21 - value11;

 

value21 = GetField("上漲量","D");

value22 = GetField("下跌量","D");

value23 = value1 - value2;

 

condition1 = value3 > value3[1];   //大戶買賣力大於前一根大戶買賣力

condition2 = value13 < value13[1]    //散戶買賣力小於前一根散戶買賣力

condition3 = value23 > 0;    //漲跌成交量差大於0

 

//if condition1 and condition2 and condition3 then ret = 1;   //如果是非逐筆洗價的話

if condition1[1] and condition2[1] and condition3[1] then ret = 1;     //如果是逐筆洗價的話

 

至於交叉您可以使用cross over 和 cross under。

condition4 = value3 cross over value13;  //大戶向上突破散戶

condition5 = value3 cross under value13;  //大戶向下突破散戶

if condition4 or condition5 then ret = 1;

 

小幫手建議您可以先閱覽網站上的教學區,裡面有XS語法的基礎和應用。

 

感謝 musashi 的熱心回覆。

 

發表回覆
Close