請益各位先進, 我是程式新手, 最近依靠爬文寫了一個盤中選股程式, 在編譯上出現錯誤訊息, 因為都是東湊西抓的, 所以分開編譯沒問題, 但是擺在一起就無法編譯完成, 爬文好幾天還是不得其門而入, 除了繼續爬文外也請各位前輩給予指導, 感激不盡。
條件設定如下:
- 1. 執行頻率=5分K
- 2. 當下成交量 > 500
- 3. 漲幅 > 1% < 4%
- 4. 收盤價 > EMA10 > EMA20 (5分K)
- 5. 股價 > 50元 < 200元
- 6. 當根K棒成交量 >= 前2根K棒平均量1倍 & 外盤成交
- 7. 當日收紅K且要是外盤成交
1 // =========== 盤中選股 ==============
2 // ========= 指定執行頻率 =============
3if barfreq<>"Min"or barinterval<>5 then RaiseRuntimeError("請設定頻率為5分K");
4
5 // ============== 設定長短均線 ==================
6input:Leng1(10),Leng2(20);
7
8variable: ema1(0), ema2(0);
9
10SetInputName(1,"周線");
11SetInputName(2,"月線");
12
13settotalbar(maxlist(Leng1, Leng2) + 480);
14
15ema1 = ema(close, Leng1);
16ema2 = ema(close, Leng2);
17
18// ==================== 設定執行條件 ====================
19input:Vol(500,"當天累積成交量");
21if close[0] > GetField("開盤價", "D") * 1.01 and close[0] < GetField("開盤價", "D") * 1.04;
22and GetField("成交量","D") > Vol;
23and close[0] > 50 < 200; // 當下股價 > 50元 < 200元
24and close[0] > "周線" and "周線">"月線";
25and close[0] > open[0]; // 當根收紅K
26and volume[0] > average(volume[1],2)*2; // 當根K棒成交量 > 前2根K棒平均量2倍
27and GetQuote("BidAskFlag")=1 ; // 當根K棒外盤成交
28then ret=1;
29end;
編譯後會出現以下訊息, 煩請各位先進幫忙看看是哪邊需要改進, 謝謝。
行號字元錯誤描述
21 85 編譯器看到了一個無法辨認的字 "ifclose[0]>GetField("開盤價","D")*1.02andclose[0]
<GetField("開盤價","D")*1.06;",請檢查這個字有沒有寫錯。
2179在 "*" 之前可能少了';'。
21 13 "在 "">"" 之前可能少了';'。
2156在 "<" 之前可能少了';'。
22 1 "錯誤的表達式,""and"" 可能是多餘的。
214"未知的關鍵字 ""close"",請檢查是否有宣告此變數或是拼字是否有誤。
2147未知的關鍵字 "close",請檢查是否有宣告此變數或是拼字是否有誤。
2 評論