你好可以請教一下,下列的寫法有什麼問題嗎
使用連續觸發是用日頻當今日價格突破10日高點時且成交量>300時觸發第一次警報,當價格持續上升大於第一次0.7%時第二次警報,後續以此類推在往上漲0.7%會第三次警報,寫了下列程式碼為何會只警報第一次
// 變數定義 var: initFlg(0), alertActive(0), firstHigh(0), firstLow(0), refHigh(0), preClose(0); var: intraBarPersist _time(0); var: intraBarPersist _hpoint(0); var: intraBarPersist _hflag(0); var: intraBarPersist _prpre(0); // 每日重置 if Date <> Date[1] then begin _hflag = 0; _hpoint=0; _prpre=0; end; // 技術指標計算 value1 = average(getField("收盤價", "D")[1], 5); // 前5日均價 value2 = ((close - getField("開盤價", "D")) / close) * 100; // 紅K長度 value3 = ((close - getField("參考價", "D")) / getField("參考價", "D")) * 100; // 即時漲幅 value4 = average(value2[1], 5); // 平均漲幅 value5 = highest(getField("最高價", "D")[1], 10); // 前10日高點 value6 = average(getField("成交量", "D")[1], 5); value9=(getField("成交量", "D")/getField("成交量", "D")[1]); value10=getField("成交量", "D"); // 條件觸發第一段突破 if close > value5 and getField("成交量", "D")> 300 and _hflag = 0 then begin ret = 1; _time = time; _hflag += 1; _prpre=value3; _hpoint = value3 + 0.7; end; // 創高後每漲 0.7% 觸發一次 if _hflag > 0 and _prpre>_hpoint then begin ret = 1; _time = time; _hflag += 1; _prpre=value3; _hpoint = _prpre + 0.7; end;
5 評論