寫出日K均線的價格與XQ內建均線不一致

  •   202 
  • 最後發表   無情卻慈悲  2022 二月 21
無情卻慈悲 發文於   2022/02/15

你好,我有二個問題 :

一、寫出日K均線的價格與XQ內建內建不一致

如下語法,在圖中那個股的主圖疊圖中置入指標,請問為何均線的價格與XQ內建均線價格不一致呢?

value5 = average(Getfield("收盤價", "D"),5);

plot1(close,"日K5均");

二、雷達提醒問題

如下程式碼,我在1分K跑雷達時,有試print出來,發現以富采371這檔的2/15來看,print出來的時間點不該只有一次,而且價位好像也與發問一所講的不一致,請問這可能是哪裡錯了?感謝

value5 = average(Getfield("收盤價", "D"),5);

if close cross Over value5 then begin

ret=1;

retmsg ="站上指定日K5均";

print(date,time,"站上指定均線",close,value5);

end;

if close cross under value5 then begin

ret=1;

retmsg ="跌落日K5均";

print(date,time,"跌落指定均線",close,value5);

end;

 

 

排序方式: 標準 | 最新
無情卻慈悲 發文於   2022/02/15

LOG檔與匯出的雷達在此

https://drive.google.com/drive/folders/1rFuKUPsOcfQTFz0-PDLrqV6XhYifbiMv?usp=sharing

 

無情卻慈悲 發文於   2022/02/16

再麻煩小幫手幫我解惑,感謝

XQ小幫手 發文於   2022/02/18

Hello 無情卻慈悲,

 

1.

您腳本畫的是close,不是5日平均線。

 

2.

小幫手這邊回測測試,並將5日平均線畫在1分鐘線圖上比較,會在早上09:03時觸發達成。

指標和雷達都沒有錯誤。

至於為什麼您那邊為什麼會有 2022/02/15 10:10 的這一筆,小幫手認為應該是因為腳本第一次(資料讀取筆數)運算時value5的前期值會是0造成觸發。

如果您不希望發生這樣的狀況,可以加一個條件 currentbar > 2 就不會發生了。

像是如下:

if close cross Over value5 and currentbar > 2 then begin

 

細節可以參考附圖。

附加文件

無情卻慈悲 發文於   2022/02/19

感謝小幫手,

第一點真的是我寫到暈了,一時不察,抱歉。

第二點currentbar > 2加上後就正常了,但我另請教,在怎樣的情況下都要加上 currentbar > 2 呢?

是為了避免剛開盤時剛好有條件符合而才需要加的嗎?

 

 

XQ小幫手 發文於   2022/02/21

Hello 無情卻慈悲,

 

您的狀況一般來說都是發生在資料讀取筆數的運算中 (currentbar = 1 時是腳本第一次運算),實際上對雷達或交易中心的運作不會有影響。(資料讀取筆數可以視為準備期)

之所以會建議您要過幾筆在開始比較,是因為腳本中條件是和前期值比較,而第一次運算時前期值為0,所以出錯。

如果您希望在資料讀取筆數時的運算也不能出錯,那麼會需要視腳本而定。

舉例來說,如果您的條件需要比較到更多期的話:

value1 = average(close, 5);

if trueall(value1 > value1[1], 5);

那麼就需要設更多筆。

或是更簡單的方法,您可以使用 getinfo 來判斷目前是否處於資料讀取區間。

發表回覆
Close