能不能有幫手支援一下QAQ卡很久了一直卡在5分K創當日新低這個函數找不到
開盤30分鐘內,有三次5分K創當日新低,且當日累積交易量達昨日總交易量的50%,跳出警示訊息:帶量下跌。
- 645
- 最後發表 丁丁023 2024 十二月 24
//此交易腳本未經測試
if barFreq<>"Min" or barinterval<>5 then raiseRunTimeError("限用5分鐘");
input: Count(3,"創新低次數");
var: BarCount(0);
if date<>date[1] then BarCount=0;
if time>090000 and time<093000 then //第2根到第6根
begin
if low<low[1] then BarCount+=1;
if BarCount>=Count
and GetField("成交量", "D")>GetField("成交量", "D")[1]*0.5
then Alert("帶量下跌");
end;
感謝教授QAQ
上述程式符合條件之後會一直警示,直到9點30分。若希望只警示一次,可在if BarCount>=Count這裡新增條件控制(用變數),讓它只觸發一次。
教授我有疑問GetField("成交量", "D")>GetField("成交量", "D")[1]*0.5 可是這個是那昨天跟前天做比較,那當日從開盤到當日09300的累積成交量要怎麼寫
GetField("成交量", "D")是今天開盤到目前為止的累積量。
請教教授,剛好看到這篇,對於成交量的寫法,若是我用 1 分鐘頻率來計算成交量,開盤出現大量後,以開盤為基準,盤中再次出現大量(定義是以達到前面大量的 50%)且股價急拉(定義為 2%),以下的寫法這樣正確嗎?
// 設定 1 分鐘頻率
if barFreq <> "min" or barInterval <> 1 then raiseRunTimeError("請設定 1 分鐘頻率");
// 輸入參數設定
input: VolumeThreshold(0.5, "成交量比例"), PriceJump(1.02, "股價急拉比例");
// 宣告變數
var: MaxVolume(0), MaxVolumePrice(0), CurrentVolume(0);
// 初始化當日資料
if Date <> Date[1] then begin
MaxVolume = 0;
MaxVolumePrice = 0;
end;
// 累計當日成交量並找出最大值與其價格
CurrentVolume = Volume;
if CurrentVolume > MaxVolume then begin
MaxVolume = CurrentVolume;
MaxVolumePrice = Close;
end;
// 檢查條件:當成交量達到前一波最大量的 50%,且股價急拉
if CurrentVolume >= MaxVolume * VolumeThreshold and Close >= MaxVolumePrice * PriceJump then begin
Plot(1, MaxVolume, "最大成交量");// 畫圖方便檢查
Plot(2, MaxVolumePrice, "最大成交價");// 畫圖方便檢查
end;
Hello 鄭揪,
1分鐘頻率下的 volume 回傳的時當根Bar的成交量。
要取日頻率的成交量 (GetField("Volume", "D")) 才會是當日累積的成交量。
所以你的 CurrentVolume 會是當根Bar的成交量,MaxVolume 則會是當日1分鐘頻率下成交量最大的那根數值 (包含當根)。
這樣看起來是符合描述的。
感謝小編的回應,謝謝
那我想問用q_Dailyvolume可以嗎
q_Dailyvolume是報價欄位資料,會傳回盤中的日累積成交量,與GetField("成交量", "D")相同。
10 評論