1分K最大量的高低點動態變更為每10根K棒重新取一次

  •   678 
  • 最後發表   幽靈股堡  2024 八月 20
幽靈股堡 發文於   2024/08/14

目前有寫了一個可以取最大量的高低點語法,如下。

但他只會取一整天最大量的高低點固定,我想要改成每10根K棒為一個區間動態移動重新取其高低點,該怎麼修改?

//1分K最大量高低點及均價線

if barfreq<> "Min" or barinterval <> 1 then raiseRunTimeError("只支援1分K");

//宣告

var: LineH(0), LineL(0), barsToday(0);

 

barsToday = getBarOffset(Date, 090000)+1;

 

if barsToday = 1 then begin

   LineH = H;

   LineL = L;

end

else if volume = highest(volume,barsToday) then begin

   LineH = H;

   LineL = L;

end;

 

plot1(LineH,"最大量高點");

plot2(LineL,"最大量低點");

plot3(getField("均價"), "均價");

 

 

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

1-10,然後2-11,還是1-10,11-20?

幽靈股堡 發文於   2024/08/14

1-10 然後2-11以此類推~教授大能幫忙解惑嗎 感激不盡 謝謝

虎科大許教授 發文於   2024/08/14

if barfreq<> "Min" or barinterval <> 1 then raiseRunTimeError("只支援1分K");

var: intraBarPersist myH(0), intraBarPersist myL(0);

if Time>=091000 then

   begin

      myH=simplehighest(h[1],10); //過去10分鐘最高點

      myL=simplelowest(L[1],10); //過去10分鐘最低點

   end;

  • 按讚來自於
  • YEAH301000
幽靈股堡 發文於   2024/08/14

感謝教授的回覆,請教一下,你這樣的寫法是不是只取過去10分鐘的最高點而已呢,我要先找過去10分鐘內1分K最大量的那根K棒的高點或低點。不知道我對你的寫法理解是否有誤,謝謝

虎科大許教授 發文於   2024/08/14

if barfreq<> "Min" or barinterval <> 1 then raiseRunTimeError("只支援1分K");

var: myH(0), myL(0);

if Time>=091000 then

   begin

           value1=simplehighestBar(v[1],10); //過去10分鐘最大量相對位置

           myH=h[value1+1]; //過去10分鐘最大量的高點

           myL=L[value1+1]; //過去10分鐘最大量的低點

   end;

幽靈股堡 發文於   2024/08/15

感謝教授大的幫忙!寫法看來是對的~~但回測結果有的問題想請教小編

我回測時有勾選逐筆洗價以及觸發時即成交,但回測結果如附件

舉例第四筆進場點,此K棒往前數10根的最大量是他的前一根K棒,他的高點應該是22046

依照程式碼if close cross Above myH then setposition(1, market);

應該會成交在22046上下才對,但結果卻是顯示22062,是第四筆K棒的最高點

請問是有哪裏寫錯嗎?我另外一個程式回測是觸發及成交且實際下單也是如此

不知道為何這個程式碼的回測結果是成交在觸發條件地當根K棒最高點

在幫忙解惑一下,謝謝小編 也謝謝教授

附加文件

虎科大許教授 發文於   2024/08/15

XQ回測,不是真正逐筆洗價,而是用1分K模擬逐筆洗價。向上突破時,會先判斷1分K開盤價,若不符合,再判斷最高價,若符合,由於你選擇觸發時即成交,會用最高價成交。若沒選擇觸發時即成交,會用最低價成交。

幽靈股堡 發文於   2024/08/15

原來如此,謝謝教授回答!!所以若用1分K回測是不是就表示結果與實際會越容易失真,選擇頻率大一點的會比較好呢?比如30分K或者60分K,是這樣嗎?

那假設我改用open 是不是就不會有這個問題,一律都是使用開盤價判斷

謝謝!

虎科大許教授 發文於   2024/08/15

(1)剛好相反,頻率越大的誤差會越大。

(2)若用開盤價判斷是否穿越,一樣會有邏輯的問題(當開盤沒穿越,但最高價穿越)。不要勾逐筆洗價,可避免這個問題,但進出場價與穿越價可能會差很多。

幽靈股堡 發文於   2024/08/15

了解~~謝謝教授不厭其煩的回答

顯示更多回應 發表回覆
Close