你好, 請教一下, 下列是我XS的程式,
為何我算出來的KD值和圖表的KD值有差異,
以附檔為例, 1/20差異還不算大,
但去執行1/13的就差異很大了。
感謝,
以下是我撰寫的程式
---------------
//========== 宣告變數 ==========//
// Str_代表文字 var:Str_1("A"), Str_2("B") //
// Num_代表數字 var:Num_01(1), Num_02(2) //
// Flag_代表布林 var:Flag_B1(True), Flag_B2(True) //
// I_代表輸入的值 //
// O_代表函數回傳的值 //
//=============================//
//輸入預設值
input:INum_PriceC(8);
setinputname(1,"日收盤價");
input:INum_VolumeP(500);
setinputname(2,"前日成交量");
input:INum_PriceCR(2);
setinputname(3,"收盤價的漲跌幅");
input:INum_D_W(50);
setinputname(4,"9周D值");
input:INum_Rsv_D(9);
setinputname(5,"日KD期間");
input:INum_Rsv_W(9);
setinputname(6,"周KD期間");
//變數宣告
Var:Num_Rsv_D(0),Num_K_D(0),Num_D_D(0);
Var:Num_Rsv_W(0),Num_K_W(0),Num_D_W(0);
Var:Num_PriceH(0); //最高價
Var:Num_PriceO(0); //開盤價
Var:Num_PriceC(0); //收盤價
Var:Num_PriceL(0); //最低價
Var:Num_Volume(0); //成交量
Var:Num_PriceCR(0); //漲跌幅Change Range
Var:Num_PriceDif(0); //漲跌
//========== 欄位值計算或取得 ==========//
value1 = GetField("日期","D");
value2 = GetField("股本(億)","D");
//收盤價
Num_PriceH = GetField("最高價","D");
Num_PriceO = GetField("開盤價","D");
Num_PriceC = GetField("收盤價","D");
Num_PriceL = GetField("最低價","D");
Num_Volume = GetField("成交量","D");
Num_PriceCR = GetField("漲跌幅","D");
// 計算日、周Rsv、K、D值
stochastic(INum_Rsv_D, 3, 3, Num_Rsv_D, Num_K_D, Num_D_D);
xf_stochastic("W", INum_Rsv_W, 3, 3, Num_Rsv_W, Num_K_W, Num_D_W);
Num_PriceDif = Num_PriceC[1] - Num_PriceC;
//========== 條件判斷 ==========//
//條件一:日收盤價>8
condition1 = Num_PriceC > INum_PriceC;
//條件二:1日前的日成交量>=500
condition2 = Num_Volume[1] >= INum_VolumeP;
//條件三:1日內日收盤價的漲跌幅>2
condition3 = Num_PriceCR > INum_PriceCR;
//條件四:日收盤價>日開盤價
condition4 = Num_PriceC > Num_PriceO;
//條件五:9周D值<50
condition5 = Num_D_W < INum_D_W;
//========== 篩選條件 ==========
if
condition1
and condition2
and condition3
and condition4
and condition5
//and condition6
//and condition7
then ret=1;
//========== 資料產出 ==========//
//outputfield(1, value1,"日期");
outputfield(2, date,"資料日期");
outputfield(3,Num_PriceH,"最高價");
outputfield(4,Num_PriceO,"開盤價");
outputfield(5,Num_PriceC,"收盤價");
outputfield(6,Num_PriceL,"最低價");
outputfield(7,Num_Volume,"成交量");
outputfield(8,Num_PriceCR,"漲跌幅");
outputfield(9,Num_PriceDif,"漲跌");
outputfield(10,Num_PriceH[1],"前日收盤價");
outputfield(11,Num_Rsv_W,"周Rsv");
outputfield(12,Num_K_W,"周K");
outputfield(13,Num_D_W,"周D");
outputfield(14,Num_Rsv_D,"日Rsv");
outputfield(15,Num_K_D,"日K");
outputfield(16,Num_D_D,"日D");