問題1 請小編幫我檢查下面腳本我這樣寫有問題嗎 因為我發覺我寫的條件 每天符合條件該跳出來的 都會漏掉1~2檔
而且 我腳本上寫的 if trueall(close*100>close[1]*99.3) 那邊 策略雷達還是會跑出來很多拉回來超過-0.7%的股票 腳本如下
if barfreq <> "Min" or Barinterval <> 2 then RaiseRuntimeError("請設定頻率為2分鐘");
variable:barnumberoftoday(0);
if date <> date[1] then
barnumberoftoday = 1
else
barnumberoftoday+=1;
if barnumberoftoday = 4 then begin
value1 = countif(close*100>close[1]*101,4); // 意思是這四根內 要有漲幅大於1%的兩分k棒
if GetField("最高價","D")*100 > GetField("開盤價","D")*103.5 and value1 > 1 then // 意思是今天開盤價要大於最高價3.5% 而且至少有一根大於1%的兩分k棒
if trueall(close*100>close[1]*99.3,4) // 然後這四根k棒 每一根k棒拉回來不能大於-0.7%
then ret=1;end;
if barnumberoftoday = 5 then begin
value1 = countif(close*100>close[1]*101,4);
if GetField("最高價","D")*100 > GetField("開盤價","D")*103.5 and value1 > 1 then
if trueall(close*100>close[1]*99.3,4)
then ret=1;end;
if barnumberoftoday = 6 then begin
value1 = countif(close*100>close[1]*101,4);
if GetField("最高價","D")*100 > GetField("開盤價","D")*103.5 and value1 > 1 then
if trueall(close*100>close[1]*99.3,4)
then ret=1;end;
if barnumberoftoday = 7 then begin
value1 = countif(close*100>close[1]*101,4);
if GetField("最高價","D")*100 > GetField("開盤價","D")*103.5 and value1 > 1 then
if trueall(close*100>close[1]*99.3,4)
then ret=1;end;
if barnumberoftoday = 8 then begin
value1 = countif(close*100>close[1]*101,4);
if GetField("最高價","D")*100 > GetField("開盤價","D")*103.5 and value1 > 1 then
if trueall(close*100>close[1]*99.3,4)
then ret=1;end;
if barnumberoftoday = 9 then begin
value1 = countif(close*100>close[1]*101,4);
if GetField("最高價","D")*100 > GetField("開盤價","D")*103.5 and value1 > 1 then
if trueall(close*100>close[1]*99.3,4)
then ret=1;end;
問題2 請問小編 nthhighest 這個函數可以找第幾個高點 但是有個問題就是 例如 如果我想要用兩分k棒
找到昨天的第2個高點 然後今天股價來到昨天的第2個高點 可是如果例如nthhighest(2,high,135)
因為昨天總共是135根兩分k棒 可是隨著今天開盤時間一直走 變成這個135根k棒就不準了 變成例如 今天開盤
六分鐘了 那我寫這樣nthhighest(2,high,135) 就不代表昨天的一整天了會跑掉 那有沒有什麼辦法可以
找到昨天的第二個高點而不會隨著今天時間再走 而跑掉這樣



11 評論