求助
想要把這幾個條件寫成腳本放在策略雷達裡
盤中符合全部條件
執行時段為9點30分到12點整
最新價<當日均價線0%以上
成交量>= 2000張
長上影線,上影線幅度超過2%
連續3分鐘大戶持續賣超
目前寫成以下這樣
好像不太符合求高手修改
{@type:sensor}
// 腳本類型: 警示腳本
// 腳本名稱: 限時執行的最新價與長上影線綜合警示
// 顯示名稱: 最新價 < 當日均價線[1]%以上 且 長上影線幅度超過[2]% 且時段為[9點30分]到[12點00分]
// 執行頻率: 1分(非逐筆洗價)
// ========== 參數定義 ==========
input: _p1_priceDeviation(1); // 最新價小於成本線的偏差
input: _p1_shadowLimit(2); // 長上影線的幅度下限
input: _p1_startTime(093000); // 開始執行的時間
input: _p2_endTime(120000); // 結束執行的時間
// ========== 變數定義 ==========
Var: _side(-1), _priceCondition(false), _shadowCondition(false), _timeCondition(false);
Var: latestPrice(0), averagePriceData(0), shadowValue(0), shadowConditionA(false), shadowConditionB(false);
// ========== 初始化與時段判斷 ==========
SetTotalBar(10);
// 判斷是否在執行時段內
if Time >= _p1_startTime and Time <= _p2_endTime then
_timeCondition = true;
// ========== 最新價小於成本線 X% ==========
// 判斷最新價是否小於均價線的指定百分比
latestPrice = GetField("收盤價");
averagePriceData = GetField("均價");
if _side = 1 and latestPrice > averagePriceData * (1 + (_p1_priceDeviation / 100)) then
_priceCondition = true
else if _side = -1 and latestPrice < averagePriceData * (1 - (_p1_priceDeviation / 100)) then
_priceCondition = true;
// ========== 長上影線條件判斷 ==========
// 判斷長上影線條件
shadowValue = maxList(GetField("開盤價", "D"), GetField("收盤價", "D"));
// 狀況1: 上影線幅度是否超過設定值
shadowConditionA = (GetField("最高價", "D") - shadowValue) > GetField("收盤價", "D")[1] * (_p1_shadowLimit / 100);
// 狀況2: 上影線長度是否大於實體
shadowConditionB = (GetField("開盤價", "D") - GetField("收盤價", "D")) < (GetField("最高價", "D") - shadowValue);
if shadowConditionA and shadowConditionB then
_shadowCondition = true;
// ========== 綜合條件判斷 ==========
if _timeCondition and _priceCondition and _shadowCondition then begin
// 當所有條件都滿足時觸發警示
RET = 1;
end else begin
// 任一條件不滿足時不觸發警示
RET = 0;
end;
1 評論