不好意思 我講的不好理解 我意思是
if barfreq <> "Min" or Barinterval <> 2 then RaiseRuntimeError("請設定頻率為2分鐘");
input:StopUpdateTime(132500,"HHMMSS停止更新時間");
Value6 = GetQuote("振幅");
if time <> time[1] then value1 += 1;
if getfieldDate("date") <> getfieldDate("date")[1] then value1 = 0;
if time <= StopUpdateTime then value2 = value1;
value3 = countif(close*100>close[1]*101,value2);
condition1 = value3 = 1 and close > close[1]*1.01;
if Value6 >= 2 and GetField("成交量", "D") >= 1000 and
close <> GetField("漲停價", "D") and close[1] <> GetField("漲停價", "D") then
if condition1[1] then ret = 1;
我把condition2先改掉 那我condition1 = value3 = 1 and close > close[1]*1.01;
是因為有可能有一種情況 因為我是用逐筆洗價 所以實際情況會出現 假設今天是第10根兩分K
那這根k棒還在成交還沒收盤 然後前面的9根k棒都沒有超過1%的漲幅 但這根還在成交的k棒
漲幅有1% 因為我用逐筆洗價 所以雷達在這根k棒結束前就通知我 但是其實這根k棒最後收盤漲幅是沒有1%的
所以我用if condition1[1] then ret = 1; 希望當根k棒結束確認漲幅有1%在告訴我
可是我發現我寫這樣一樣會沒有在這根結束確認再告訴我 或者今天的前9根k棒
其實裡面已經有一根有1%的k棒了 那加上現在成交的第10根漲幅是有1%的 一樣會告訴我
但是這就不符合只能有一根有漲幅1%的條件了 然後因為其他條件 所以只能用逐筆洗價
condition1 = value3 = 1 and close > close[1]*1.01;
因為我寫這樣是因為如果 value3 = 1 and close > close[1]*1.01; 那前面那一根k棒也有1%漲幅 那就代表
我上述的情況 就是一整天只有上一根有1% 而且也是上一根收盤過後再告訴我
不知道是哪裡寫錯了 再麻煩小幫手了
6 評論