選股與輸出內容有差異

  •   288 
  • 最後發表   jesseh1970  2025 三月 14
jesseh1970 發文於   2025/03/14

您好:

 

我嘗試以下列的方式來篩選成交量大於20日平均成交量的股票,比例要超過1.5倍。但是輸出的股票清單仍然包括小於1.5倍的股票。請協助查看是否語法或邏輯有誤。謝謝。

 

Value1 = Getfield("股本(億)");

 

//成交量判斷(與月均量比較1.5倍以上) 

value2 = GetField("成交量")/Average(GetField("成交量"),20);

If value2 >= 1.5 then condition1 = true; //判斷當日成交量是否高於月均量的1.5倍

 

If condition1 then ret=1;

 

//外資買賣超資訊

value3 = GetField("外資買賣超"); //當日買賣超

value4 = Summation(GetField("外資買賣超"), 5); //1週累計買賣超

value5 = Summation(GetField("外資買賣超"), 10); //2週累計買賣超

value6 = Summation(GetField("外資買賣超"), 20); //1個月累計買賣超

 

 

 

outputfield(1,value2,2,"成交量倍率");

outputField(2,Average(GetField("成交量"),20),0,"月均量");

outputField(3,value3,0,"外資買賣超");

outputField(4,value4,0,"1W累計");

outputField(5,value5,0,"2W累計");

outputField(6,value6,0,"1M累計");

 

outputfield(7,value4/value1/100,2,"1W%");

outputfield(8,value5/value1/100,2,"2W%");

outputfield(9,value6/value1/100,2,"1M%");

outputfield(10,value1,0,"股本(億)");

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/03/14

這種邏輯錯誤,我在2/15的週末特訓班已經教過了。改成:

If value2 >= 1.5 then condition1 = true else condition1=false;

XQYi 發文於   2025/03/14

沒懂為何需要condition1 ?

 //成交量判斷(與月均量比較1.5倍以上) 

value2 = GetField("成交量")/Average(GetField("成交量"),20);

If value2 >= 1.5 then Ret=1; //判斷當日成交量是否高於月均量的1.5倍

 不是這樣就好?

 

如果要用condition1

value2 = GetField("成交量")/Average(GetField("成交量"),20);

condition1=value2 >=1.5;//判斷當日成交量是否高於月均量的1.5倍

If condition1 then Ret=1; 

是不是這樣就好!?

 

 

發表回覆
Close