選股常用語的對應程式集

By | 2019-03-20

愈來愈多網友,開始試著用XS來寫程式挑股票,決定進場時機,新手上路,需要老司機,我整理了一些股市專有名詞對應的語法,供大家參考。

一,整理結束

語法如下:

//盤整後噴出
input: Periods(20,"計算期數");
input: Ratio(3,"近期波動幅度%");
settotalbar(300);
setbarback(50);

condition1 = false;

if (highest(high[1],Periods-1) - lowest(low[1],Periods-1))/close[1] <= ratio*0.01 
then condition1=true//近期波動在?%以內
else return;

if condition1 and high = highest(high, Periods)
and close>close[1]*1.02
then ret=1;//盤整後往上突破

這個腳本可以挑出像下面這樣的股票

2019032301

 

二,下跌時價量背離

腳本如下

input:period(10);
input:times(5);
if close[1]*1.1<close[40]
and countif(c>c[1]xor v>v[1],period)
>=times
and close=highest(close,period)
then ret=1;

可以挑出的股票如下

2019032202

三,KD進入超賣區

腳本如下

input: Length(9), RSVt(3), Kt(3);
variable: rsv(0), k(0), _d(0);

SetBarBack(maxlist(Length,6));
SetTotalBar(maxlist(Length,6) * 4);

SetInputName(1, "天數");
SetInputName(2, "RSVt權數");
SetInputName(3, "Kt權數");

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

IF k<20 and _d<30
then ret=1;

這是在挑出KD值分別低於20及30的股票

四,千張大戶增加

腳本如下

value1=GetField("大戶持股人數","W",param:=1000);
value2=GetField("散戶持股人數","W");
if value1>value1[1]
and value2<value2[1]
then ret=1;
outputfield(1,value1,0,"本週大戶人數");
outputfield(2,value1[1],0,"上週大戶人數");
outputfield(3,value1-value1[1],0,"大戶增加數");
outputfield(4,value2,0,"本週散戶人數");
outputfield(5,value2[1],0,"上週散戶人數");

這腳本可以挑出千張大戶數比前一週多的股票

五,BBand出現買進訊號

腳本如下

input:length(20);
variable:up1(0),down1(0),mid1(0),bbandwidth(0);
up1 = bollingerband(Close, Length, 1);
down1 = bollingerband(Close, Length, -1 );
mid1 = (up1 + down1) / 2;

bbandwidth = 100 * (up1 - down1) / mid1;
if bbandwidth crosses above 5 and close > up1 and close> up1[1]
then ret=1;

六,本益比低於某個水準

腳本如下

input:per(12,"本益比上限");
value1=GetField("本益比","D");
if value1<per
then ret=1; 

七,近期處於上昇趨勢

腳本如下

input:Length(20); //"計算期間"

LinearReg(close, Length, 0, value1, value2, value3, value4);
//做收盤價20天線性回歸
{value1:斜率,value4:預期值}
value5=rsquare(close,value4,20);//算收盤價與線性回歸值的R平方
if value1>0 and value5>0.2
then ret=1;

八,放量起漲

腳本

if average(volume,5) > 200 and
 C> 10 and
 volume > average(V[1],20) *2 
 and close>close[1]*1.01
 then ret=1;

九,空翻多

腳本如下:

condition1 = angle(date[20], date[5]) < 0;
value1 = angle(date[5], date);
condition2 = value1 > 0;

setoutputname1("angle");
outputfield1(value1);
if condition1 and condition2 then ret=1;

十,投信第一天大買進

腳本如下

value1=GetField("最新股本");//單位:億
value2=GetField("投信買張","D");
value3=value2*close/10; //單位:萬}

 
 
condition1=value3>200 and value1<80;
 
condition2=filter(condition1,5);

if condition2 
then ret=1;

這邊有用了一個叫filter的函數,這個涵數是用來過濾一定期別內某一情況為true的次數就僅有最近這一期是true.

 

提供這些腳本,主要是讓大家可以參考,也可以直接copy之後編譯完成變成您的腳本,然後再跟其他條件整合起來一起用。