k棒位置紀錄

  •   397 
  • 最後發表   雅雅  2025 三月 10
雅雅 發文於   2025/02/18

if barfreq <> "Min" or Barinterval <>1 then

 RaiseRuntimeError("請設定頻率為1分鐘");

variable:BarNumberOfToday(0); 

if Date <> Date[1] then BarNumberOfToday=1 

else BarNumberOfToday+=1;{記錄今天的Bar數} 

 

variable:tt(0);

假設 close >= high[1] then 

    tt = BarNumberOfToday;

那當close >= high[1]的時候 

tt是不是就會記錄到當時k棒是開盤以來的第幾根的數值呢?

 

感謝!!

 

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/02/18

是的。

雅雅 發文於   2025/02/25

那請問教授

以下是我的腳本

 

if barfreq <> "Min" or Barinterval <>1 then

 RaiseRuntimeError("請設定頻率為1分鐘");

variable:intrabarpersist BarNumberOfToday(0);

variable::intrabarpersist tt(0);

variable::intrabarpersist cc(0);

if Date <> Date[1] then BarNumberOfToday=1 

else BarNumberOfToday+=1;{記錄今天的Bar數} 

 if Date <> Date[1] then begin

tt = 0;

cc = 0;

end;

if high <= GetField("收盤價")[1]*1.03 then

tt = BarNumberOfToday;

if high >= GetField("收盤價")[1]*1.05  then

cc = BarNumberOfToday;

 

if cc - tt >=5 then ret = 1;

 

請問教授 我上述腳本是分別記錄 tt 跟 cc的k棒位置

想說cc - t t 要大於5 代表cc跟tt發生的時候 

兩邊的k棒距離 要相差5根以上 

可是這樣寫好像不對 請教是哪裡出問題了

虎科大許教授 發文於   2025/02/25

你對變數宣告是否該使用intrabarpersist並不清楚。這是基礎的概念。

你的例子,BarNumberOfToday不能用intrabarpersist宣告。

雅雅 發文於   2025/03/10

謝謝劉教授指點 

請教

cc = BarNumberOfToday;

但這個cc我print看 他會一直隨著條件成立一直變動

例如現在是44 那等等條件達到就變45

我要使用哪些語法才能例如

if high >= GetField("收盤價")[1]*1.05  then

cc = BarNumberOfToday;

那今天如果cc第一次達到條件記錄到是44

就不要在變動 cc就只記錄當時第一次條件成立所記錄到的數值44

感謝教授

 

虎科大許教授 發文於   2025/03/10

once(high >= GetField("收盤價")[1]*1.05)

cc = BarNumberOfToday;

不過要注意跑歷史K棒時不要讓once有執行機會,不然,今天條件符合就不會記錄cc。

發表回覆
Close