您好
請幫忙看語法
// 設置輸入參數
setbackbar(120, "D"); // 確保引用過去數據範圍(延伸至120日)
settotalbar(3); // 確保至少有足夠的數據進行計算
// 初始化結果為不符合條件
ret = 0;
// 宣告變數
var: PriceChange(0.0), ExcludeLowGainers(False), ExcludeHighGainers(False),
VolumeCondition(False), ClosePriceCondition(False),
IsRedK(False), MarketAboveMA5(False), OpenGreaterClose1(False),
AboveMA5AndMA20(False), NewHighCondition(False), // 修改 NewHighCondition 為 120 日新高
FinalCondition(False), MA5(0.0), MA20(0.0); // 新增 MA20 變數
// 計算當日漲幅(與前一日收盤價相比)
PriceChange = 100 * (close - close[1]) / close[1];
// 排除條件 1:排除漲幅低於 5% 的股票
ExcludeLowGainers = (PriceChange >= 5); // 當日漲幅 >= 5%
// 排除條件 2:排除漲幅高於 9% 的股票
ExcludeHighGainers = (PriceChange <= 9); // 當日漲幅 <= 9%
// 新增條件 3:成交量大於 1000 張
VolumeCondition = (volume > 1000); // 成交量需大於 1000 張
// 新增條件 5:股價小於 100 元
ClosePriceCondition = (close < 100); // 收盤價小於 100 元
// 新增條件 6:選紅K不選黑K
IsRedK = (close >= open); // 收盤價 >= 開盤價表示紅K棒
// 新增條件 7:大盤在 5 日均線之上
value1 = average(getsymbolfield("TSE.TW", "Close", "D"), 5); // 計算大盤 5 日均線
MarketAboveMA5 = (getsymbolfield("TSE.TW", "Close", "D") > value1); // 大盤收盤價 > 5 日均線
// 新增條件 8:今日開盤價大於昨日收盤價
OpenGreaterClose1 = (open > close[1]); // 今日開盤價 > 昨日收盤價
// 新增條件 9:收盤價在 5 日線之上且大於 20 日線
MA5 = average(close, 5); // 計算 5 日均線
MA20 = average(close, 20); // 計算 20 日均線
AboveMA5AndMA20 = (close > MA5 AND close > MA20); // 判斷收盤價是否同時在 5 日線與 20 日線之上
// 新增條件 10:股價創 120 日新高
NewHighCondition = (close > highest(close[1], 120)); // 判斷收盤價是否高於最近 120 天的最高價
// 合併條件:篩選符合所有條件的股票
FinalCondition = ExcludeLowGainers AND ExcludeHighGainers AND VolumeCondition AND
ClosePriceCondition AND IsRedK AND
MarketAboveMA5 AND OpenGreaterClose1 AND AboveMA5AndMA20 AND
NewHighCondition;
// 輸出結果
ret = FinalCondition;
該如何調整
1 評論