選股中心腳本,運用在策略雷達(盤中抓)

  •   375 
  • 最後發表   里歐  2025 三月 05
里歐 發文於   2024/11/03

如標題,

例如以下腳本,是選股中心建立的腳本,
如何修改成策略雷達 也能抓到?(例如資料定在下午一點整開始抓,當時價位當成收盤價來處理。)

 

//6111 06/28 停利練習

//2340 06/20 底底高 6/21當沖

//3017 06/28 底底高  (無放大成交量)(本身交易量近萬)

//2382 06/29 底底高 (無放大成交量)(本身交易量破萬)

//4503 06/21 類似 底底高 

 

Value11 = average(close, 5);

Value22 = average(close, 10);

Value33 = average(close, 20);

 

 

value55 = MaxList(Value11, Value22, Value33); //均線取最大

value66 = MaxList2(Value11, Value22, Value33); //均線第二大

value77 = MinList(Value11, Value22, Value33);

value88 = MinList2(Value11, Value22, Value33);

 

//==========================底底高 condition4,condition5 擇一 ============================================================

condition4 = close > close[1] and close[1] > close[2];

condition5 = low > low[1] and low[1] > low[2];

//-------------------------------------------------------------------------------------------------------------------------

 

 

//============================condition2 condition3 擇一符合即可============================================================

condition1 = close > value11 and close > value22 and close > value33;   //當日收盤價,站上三均線

condition2 = close[2] < Value11[2] or close[2] < Value22[2] or close[2] < Value33[2]; //前日小於三均線

//condition3 = 

//前一日收盤價,高於前一日 5 或者 10 或者 20 其中一條均線

//-------------------------------------------------------------------------------------------------------------------------

 

//================爆量條件  擇一==============================================================

condition8 = ( (Volume > Average(Volume[1], 5) * 1.9) or (Volume > Volume[1] * 1.9) );

condition9 = ( (Volume[1] > Average(Volume[2], 5) * 1.9) or (Volume[1] > Volume[2] * 1.9) );

//-------------------------------------------------------------------------------------------------------------------------

 

 

//============================收盤價與最高價均線 差距5%內==========================================================

condition7 = close/value55 < 1.026;

condition10 = value55/value77 < 1.056;

 

//-------------------------------------------------------------------------------------------------------------------------

 

//( (Volume > Average(Volume[1], 5) * 1.9) or (Volume > Volume[1] * 1.9) )

 

if (condition1 and condition2) and (condition4 or condition5) and (condition8 or condition9) and (condition7 and condition10)  then ret=1;

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

if barfreq<>"D" then raiseruntimeerror("限用日資料");

if currentTime>=130000 then

      begin

            //複製你寫的程式碼於此處

      end;

XS小幫手 發文於   2024/11/12

里歐 您好,

選股中心能執行的頻率限定於日k以上,若是在策略雷達執行日k以下的頻率,需要注意腳本的資料抓取頻率與變數序列,會跟著執行頻率走

建議檢視腳本取的資料是否需要指定頻率或者是跨頻取值,還有IntrabarPersist函數的運用

里歐 發文於   2025/03/02

不太確定哪些會有影響
1.  countif(close/close[1] > 1.039, 90) > 0;

用到close 或 volume 的會直接取 "下午1點"的成交價/量來計算嗎?

2.這些func會有影響?
hasCrossOver=true;
BarCount=currentBar;

 
或者有沒有相關的
教學連結,讓我讀一下qq

input: HH(8,"N天前突破");
input: n(10,"Search天數");

input: v0(50,"量超過均量趴數");
input: percent(4,"漲幅上限");
input:avg_3_line(0);  //均線糾結開關 //距離n%以內
input:main_force(0); //主力買超次數開關
input:today_include(1); //包含金日達成條件也抓

var: hasCrossOver(false);
settotalBar(n);
var: BarCount(0);

//=====================================================
Value11 = average(close, 5);
Value22 = average(close, 10);
Value33 = average(close, 20);


value55 = MaxList(Value11, Value22, Value33); //均線 取最大
value66 = MaxList2(Value11, Value22, Value33); //均線 第二大
value77 = MinList(Value11, Value22, Value33);
value88 = MinList2(Value11, Value22, Value33);
//=====================================================

//突破 站上均線的條件
if (close > highest(h[1],HH) and hasCrossOver=false 
   and ( (Volume > Average(Volume[1], 5) * 1.9) or (Volume > Volume[1] * 1.9) )
   and close>close[1]*1.01)

   or

   (((close[1] < value11[1]) or (close[1] < value22[1]) or (close[1] < value33[1]) and ((close > value11) and (close > value22) and (close > value33) ))
   and ( (Volume > Average(Volume[1], 5) * 1.9) or (Volume > Volume[1] * 1.9) )
   and hasCrossOver=false
   and close>close[1]*1.02)
   then

begin

hasCrossOver=true;

BarCount=currentBar;

value111 = close; //儲存突破k棒的收盤價
end;

if islastBar then

if hasCrossOver=true then

begin


//

//=====================================================
//達成站上均線條件後,未漲超過n%以上。
//-----------------------------------------------------
value44=rateOfChange(c,n-BarCount+1);

condition3=value44<percent;
//condition4=countIf( (high/value111) > 1.06 ,n-BarCount+1 ) <1; //突破到現在 最高價不能 曾超過6%
//似乎不能這樣使用
//=====================================================

//=====================================================
//希望該股 非牛皮股,設定曾經單日漲幅
//-----------------------------------------------------
condition7= countif(close/close[1] > 1.039, 90) > 0; //過去三個月 曾經單日漲幅4%以上

//=====================================================
If today_include >0 then
Begin
  condition6 = true;
End
Else 
Begin
  condition6 = BarCount <n; 
  //剛突破不抓 ,若突破根search日同一天,BarCount會=n
End;


condition6 = BarCount <n; 
//剛突破不抓 ,若突破根search日同一天,BarCount會=n

//=====================================================

if   condition3 and condition6 and condition7 then ret=1;



outputField1(date[n-BarCount],"突破or站上日期");

//outputField2(value1,"突破至今的主力買賣超張數");
//outputField3(value2,"突破至今的主力買超天數");
//outputField4(value3,"突破至今的主力賣超天數
//outputField12(countIf( (high/value111) > 1.06 ,n-BarCount+1  ),"最高價,超過突破收盤價6%次數");
outputField6(n-BarCount+1,"n-BarCount+1");
outputField7(BarCount,"BarCount");
outputField5(value44,"突破至今的漲跌幅");

end;

虎科大許教授 發文於   2025/03/02

哪些會有影響?
1.  countif(close/close[1] > 1.039, 90) > 0;

Ans: 若一樣是日頻率,則沒有影響。若使用分鐘頻率,則將兩個close改成getField("close","D")即可。

用到close 或 volume 的會直接取 "下午1點"的成交價/量來計算嗎?

Ans: 若使用日頻率,則close是洗價當下的即時成交價。volume是洗價當下的累積成交量(從開盤開始累加)。若使用分鐘頻率,分別代表即時成交價及該分K的累積成交量。

2.這些func會有影響?
hasCrossOver=true;
BarCount=currentBar;

Ans: 逐筆洗價時,hasCrossOver需要加intrabarpersist 宣告。

XS小編 發文於   2025/03/05

Hello 里歐,

 

小編補充,outputField 函數只能夠使用在選股腳本中。

網站上的教學區教學影片,裡面有XS語法的基礎和應用可以閱覽。

發表回覆
Close