跨頻率rsi問題

  •   165 
  • 最後發表   無情卻慈悲  2023 五月 02
無情卻慈悲 發文於   2023/04/20

 

2023/4/20 18:49 時,下列程式的規則應不符合,卻仍做多單了,可以麻煩幫我看一下哪裡有誤嗎?會是資料引用筆數不足的關係嗎

這是跑1分k並有開逐筆洗價的狀態,發現有開逐筆好像都會怪怪的。

//RSI
 var:Rsi_D(0),Rsi_H(0),Rsi_m5(0),Rsi_m1(0);
//Rsi_D   = xfMin_RSI("D",GetField("close","D"),10);  
Rsi_H   = xfMin_RSI("60",GetField("close","60"),10);  
Rsi_m5  = xfMin_RSI("5",GetField("close","5"),10);  
Rsi_m1  = xfMin_RSI("1",GetField("close","1"),10);  


//→→多單進場:
if    condition_pre = true 
and position <= 0  and filled <= 0    
and Rsi_H[1]   > 60
and Rsi_m5[1] > 60
and Rsi_m1[1]  cross Over 60
then begin

    SetPosition( quantity, MARKET,label:="多單進場");

end;

 

排序方式: 標準 | 最新
XQ小幫手 發文於   2023/04/21

Hello 無情卻慈悲,

 

是的,應該是資料讀取筆數不足的問題。

RSI指標需要大約計算長度*9的筆數。

您腳本中的有用到60分鐘頻率,所以最長會需要90筆60分鐘Bar。

換算成1分鐘頻率的話,就需要 90 * 60 = 5400 筆1分鐘頻率資料讀取筆數。

 

無情卻慈悲 發文於   2023/04/21

你好,

我以下代碼,在小台期貨全的狀態下,與xq內建的rsi,仍然不一樣,

在1分k下,看60分k的rsi數值,是不一樣,請問可能是錯在哪裡?

settotalBar(5500);


 var:Rsi_D(0),Rsi_H(0),Rsi_m5(0),Rsi_m1(0);

Rsi_H   = xfMin_RSI("60",GetField("close","60"),10);  
Rsi_m5  = xfMin_RSI("5",GetField("close","5"),10);  
Rsi_m1  = xfMin_RSI("1",GetField("close","1"),10);  

plot1(Rsi_H,"60" );
plot2(Rsi_m5,"5" );
plot3(Rsi_m1,"1");

 

 

XQ小幫手 發文於   2023/04/24

Hello 無情卻慈悲,

 

小幫手這邊測試是相同的。(參考附圖)

需注意兩者要對應到相同close上。

舉例來說,股票商品的話60分鐘頻率的090000對應到的1分鐘頻率會是095900,130000對應到的會是132900。

因為XQ的Bar是標示開始的時間,所以60分鐘的090000代表著 09:00~10:00 的資料,而1分鐘的095900則是 09:59 ~ 10:00。

附加文件

無情卻慈悲 發文於   2023/04/24

您好,

若照您的說法,我下圖是正確的嗎?

左邊是1分k下看60分k的rsi值,右邊是60分k下的內建rsi的值。

兩邊是不一樣,但不知用您的說法來看,它其實是正確的嗎?

XQ小幫手 發文於   2023/04/26

Hello 無情卻慈悲,

 

請參考 xf_RSI 的說明。

此函數只支援 台股和日盤期貨,無法使用在日夜盤期貨上。

無情卻慈悲 發文於   2023/04/26

你好,

雖說不用在夜盤,但是計算出來仍是有數值的,對嗎?

XQ小幫手 發文於   2023/05/02

Hello 無情卻慈悲,

 

小幫手不太確定您想問什麼。

如果使用在日夜盤 (ex. FITXN*1.TF) 期貨的話,函數還是一樣會運算,但計算出的數值是錯誤的。

此函數使用在台股和日盤的期貨 (ex. FITX*1.TF) 時是正確的。

發表回覆
Close