請幫我編寫 振幅 的語法

  •   627 
  • 最後發表   moneyhere  2025 三月 05
moneyhere 發文於   2024/10/23

您好,我想請您幫我編寫指數振幅的語法,我寫完後他一直說date未知……

我想讓語法幫我自動計算台指當日8:45~13:45的最大振幅(當日最高價-當日最低價),也請幫我把日期部份獨立出來,我後續可以另外指定計算的區間

麻煩您,謝謝

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

把你寫的貼上來。犯錯至少也要知道錯在哪裡。

moneyhere 發文於   2024/10/23

// 指定日期區間

d_start = DATE(20241023)  // 設定開始日期 YYYYMMDD

d_end = DATE(20241023)    // 設定結束日期 YYYYMMDD

 

// 指定時間區間

t_start = TIME(084500)  // 設定開始時間 08:45

t_end = TIME(134500)    // 設定結束時間 13:45

 

// 判斷是否在指定日期和時間區間內

if (DATE >= d_start and DATE <= d_end and TIME >= t_start and TIME <= t_end) {

    // 計算區間內的最高價和最低價

    session_high = HHV(H, t_start, t_end)  // 在該時段內的最高價

    session_low = LLV(L, t_start, t_end)   // 在該時段內的最低價

 

    // 計算振幅

    amplitude = session_high - session_low

}

 

// 將振幅輸出

PLOT(amplitude, "指定日期特定時段振幅")

 

 

 

編譯失敗  請大家協助 謝謝

虎科大許教授 發文於   2024/10/23

(1)編譯失敗,會不會是因為HHV與LLV這兩個自訂函數不存在?

(2)你可以使用getBarOffset賦予日期與時間,抓到開始的時間及結束的時間,再從期間用highest及lowest抓取期間的最高價及最低價。

moneyhere 發文於   2024/10/24

我用GetBarOffset將日期用currentDate,時間則直接指定084500 134500

highest及lowest就不知道怎麼寫?他一直說要兩個參數

不然就是一直叫我每行都加;號

可否請大家給予多一點協助,是初次寫指標語法

謝謝

 

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

以下的程式碼用手機打字,沒有經過驗證,你寫成交易腳本測試看看邏輯對不對。

input: d_start(20241014);

input: d_end(20241018);

input: t_start(084500);

input: t_end(134500);

value1=getBarOffset(d_start,t_start);

value2=getBarOffset(d_end,t_end);

value3=simplehighest(h[value2],value1-value2+1); //期間最高價

value4=simplelowest(L[value2],value1-value2+1); //期間最低價

value5=value3-value4; // 計算振盪區間

if isLastBar then 

print(date,time,value1,value2,value3,value4,value5);

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

由於交易腳本預設的讀取資料筆數為100筆,筆數太少,可能會讓getBarOffset無法正確抓到該根K棒。假設你允許使用者抓過去10天的台指期日盤高低價,且使用1分鐘頻率,則1天300筆,10天就要3000筆,因此程式第一行要加setTotalBar(3000);

moneyhere 發文於   2024/10/24

許教授您好,我將您的語法帶入,它跑不出來

我再將setTotalBar(3000);加進去,並且測試不同的資料筆數,它都顯示要''增加或縮短資料長度''

我是想有一個指標可以幫我算當天的高低點差距

再請教授幫忙指點一下,謝謝

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

我用上述程式測試

台積電10/14-10/18最高價1100,最低價1030,振盪70。

聯發科10/14-10/18最高價1330,最低價1260,振盪70。

數據都是正確的,代表這個程式可以使用。

XS小編 發文於   2024/10/30

Hello moneyhere,

 

由於您是使用在指標上,可能是設定的 XS指標計算範圍/資料讀取筆數/資料引用筆數 不足導致出現如此錯誤。

小編會建議您可以在腳本中input之後加上 setFirstBarDate(d_start);,讓腳本從開始日期計算,應該就可以處理上述的狀況。

 

舉例來說:

input: d_start(20241014);

input: d_end(20241018);

input: t_start(090000);

input: t_end(133000);

 

setFirstBarDate(d_start);

 

value1=getBarOffset(d_start,t_start);

value2=getBarOffset(d_end,t_end);

value3=simplehighest(h[value2],value1-value2+1); //期間最高價

value4=simplelowest(L[value2],value1-value2+1); //期間最低價

value5=value3-value4; // 計算振盪區間

 

plot1(value3);

plot2(value4);

plot3(value5);

 

若還是有問題的話,麻煩提供 頁面匯出檔勾選(包含)指標腳本 以及 XQ Log 讓相關人員確認。

Log資料夾(預設路徑:C:\SysJust\XQLite\LOG)直接壓縮後提供即可。

您可以直接將檔案上傳,如果檔案過大的話也可以保存到雲端後將連結Mail至客服信箱 XQservice@XQ.com.tw 且務必附上 討論文章連結網址(小編才能盡早處理)。

網站上有教學區教學影片,裡面有XS語法的基礎和應用可以閱覽。

 

感謝 虎科大許教授 的熱心回覆。

moneyhere 發文於   2025/03/02

您好

如果我只想計算''當天''的振幅

語法要如何修改?

謝謝您

顯示更多回應 發表回覆
Close