if barfreq <> "Min" or Barinterval <> 1 then RaiseRuntimeError("請設定頻率為1分鐘");

  •   1.8K 
  • 最後發表   阿林  2024 十二月 24
阿林 發文於   2024/12/20

不好意思 弱弱的一個問題

if barfreq <> "Min" or Barinterval <> 1 then RaiseRuntimeError("請設定頻率為5分鐘");

這個腳本 頻率是一分鐘頻率 

if barfreq <> "Min" or Barinterval <> 1這樣是1分鐘頻率

if barfreq <> "Min" or Barinterval <> 5這樣是5分鐘頻率

那我想請問的是

if barfreq <> "Min" or Barinterval <> 1 then RaiseRuntimeError("請設定頻率為5分鐘");

照理說這樣是1分鐘頻率 那最後面RaiseRuntimeError("請設定頻率為5分鐘");

括號裡面的中文 就算是寫("請設定頻率為5分鐘"); 因該也沒差吧?

裡面中文就算不管寫幾分鐘 只要if barfreq <> "Min" or Barinterval <> 1 這邊是寫1 

那腳本就是執行1分鐘頻率吧?

 

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/12/20

RaiseRuntimeError後面是提示的文字,若限用1分鐘頻率,則應該提示使用1分鐘。

這是防呆的指令。若使用者沒有選用1分鐘頻率,會中斷策略執行並提示使用1分鐘頻率。不會自動用1分鐘頻率執行。

阿林 發文於   2024/12/22

所以 RaiseRuntimeError後面括號裡面的中文只是提醒用 並沒有實質作用就是了?

那假設我腳本不打這行if barfreq <> "Min" or Barinterval <> 1 then RaiseRuntimeError("請設定頻率為5分鐘");

也沒有關西是嘛?

感謝許教授您的回覆

虎科大許教授 發文於   2024/12/22

為什麼明明限用1分鐘,卻提示限用5分鐘?

阿林 發文於   2024/12/22

沒有拉 因為之前有腳本忘記改 

這個腳本跑很久了 後來才發現

想說怕之前執行觸發的結果有錯

才想說問問看這樣有差嗎

後來已修正了!!

 

阿林 發文於   2024/12/24

請問許教授 下面是我腳本

if barfreq <> "Min" or Barinterval <> 1 then RaiseRuntimeError("請設定頻率為1分鐘");

variable:intrabarpersist count1(0);

variable:barnumberoftoday(0);

if Date <> Date[1] then

   barnumberoftoday = 1

else

   barnumberoftoday += 1;

if barnumberoftoday = 2 and

   GetSymbolField("OTC.TW", "收盤價", "1") >= GetSymbolField("OTC.TW", "收盤價", "D")[1]*1.007 then 

   count1 = 1;

我腳本是哪裡有語法上的錯誤呢 照理說count1 = 1 在今天不因該成立才對

今天上櫃指數的第二根一分k的收盤價 並沒有>=昨天的日收盤價*1.007

可是count1卻成立 是我跨頻率語法哪裡有問題嗎?

謝謝您

 

虎科大許教授 發文於   2024/12/24

count1是昨天留下來的。應該每天都歸零。

if Date <> Date[1] then

   begin

      barnumberoftoday = 1;

      count1 = 0;

   end

else

   barnumberoftoday += 1;

if barnumberoftoday = 2 and

   GetSymbolField("OTC.TW", "收盤價", "1") >= GetSymbolField("OTC.TW", "收盤價", "D")[1]*1.007 then 

   count1 = 1;

發表回覆
Close