XS/XQ 的警示設定:量價同時達標

  •   66 
  • 最後發表   Joseph  2018 七月 11
Joseph 發文於   2018/07/07

詢問,在 XQ 上只有最簡易的 "量大於多少" 和 "價大於多少" 分別的個別警示嗎? 有辦法如其他軟體可以用交集寫成 "量和價同時大於多少" 時警示嗎?

還是這部份要自己寫成 XS ? 我有嘗試寫成 XS,不知有沒有更漂亮的方式? 謝謝回覆和幫忙。

variable: i(0);

Array: StockArray[10,3](0);

StockArray[1,1]=3114;

StockArray[1,2]=41;

StockArray[1,3]=4000;

// 記得檢視宣告的陣列大小

For i = 1 To 10

Begin

  If leftstr(Symbol,4) = NumToStr(StockArray[i,1],0) and 

  close >= StockArray[i,2] and 

  volume >= StockArray[i,3] 

  then ret=1;

End;

附加文件

排序方式: 標準 | 最新
XQ小幫手 發文於   2018/07/09

Hi Joseph,

您好,如下警示腳本程式碼範例,在介面上可以調整您的價與量所須要大於的數值,請您加入策略雷達試試看,以上方向供參考,謝謝。

input:X(100,"收盤價大於"),Y(1000,"成交量大於");
if close > X and volume > Y then ret = 1;

 

Joseph 發文於   2018/07/09

好的! 謝謝小幫手。

不過,我目前想法,會寫成 Array 陣列的原因,是可以變成多檔警示! ( 麻煩是寫在 XQ程式碼中,變得不易維護)

Joseph 發文於   2018/07/09

多問一個狀況!如果我希望在警示訊息中有題示,類似,價>多少 量>多少。請問字串相連的關鍵字是 ? 謝謝小幫手。

類似:

Ret=1;

RetMsg = "價" & Price & ">" StockArray[i,2] & "量" volume & ">" & StockArray[i,3];

XQ小幫手 發文於   2018/07/10

HI Joseph,

會寫成 Array 陣列的原因,是可以變成多檔警示!

猜想您的多檔警示的意思是,很多不同檔商品的警示觸發,若是的話,在策略雷達內容的執行商品中,即可調整您需要警示觸發訊號的商品,不需要使用 array 方式撰寫( 每一檔商品若訊號成立,皆會個別警示通知 )。


 

請問字串相連的關鍵字是 ?

應該可以使用 text 做到,請您試試看,謝謝。

Joseph 發文於   2018/07/10

Hi, XQ小幫手 早安

猜想您的多檔警示的意思是,很多不同檔商品的警示觸發,若是的話,在策略雷達內容的執行商品中,即可調整您需要警示觸發訊號的商品,不需要使用 array 方式撰寫( 每一檔商品若訊號成立,皆會個別警示通知 )。 

是的! 不過,因為各檔各有不同的量價思考(起漲量能),例如:

StockArray[29,1]=3455;
StockArray[29,2]=47.5;
StockArray[29,3]=1000;

StockArray[2,1]=2415;
StockArray[2,2]=26;
StockArray[2,3]=2000;

所以,才用陣列方式,把自己想要的基本價量寫上去比對。

我有為了減輕系統負擔,把鎖股設成一群組,盤中只去掃描這些股,不跑全部一千多檔。這樣方式對嗎 ?


 

應該可以使用 text 做到,請您試試看,謝謝。

謝謝你,這是我想要的!但目前有一個狀況:

RetMsg = Text("價量達標, 價",Price,">",StockArray[i,2],", 量",volume,">",StockArray[i,3]);

3455 會提示:「價量達標, 價53.500000>47.500000, 量1039.000000>1000.000000」

好多 00000,請問 可以用什麼方式把的補零刪除嗎 ? 謝謝你。

謝謝你的許多幫忙。

XQ小幫手 發文於   2018/07/11

Hi Joseph,

我有為了減輕系統負擔,把鎖股設成一群組,盤中只去掃描這些股,不跑全部一千多檔。這樣方式對嗎 ?

是的,小幫手覺得您這樣的方式是正確的,確實這樣做能減輕系統負擔。


 

好多 00000,請問 可以用什麼方式把的補零刪除嗎 ?

可以試試看 NumToStr ,以上方向供您參考,謝謝。

Joseph 發文於   2018/07/11

謝謝小幫手!完成! 

可以試試看 NumToStr ,以上方向供您參考,謝謝。

股價檔位
每股市價未滿10元者,股價升降單位為0.01元,10元至未滿50元者為0.05元、
50元至未滿100元者為0.1元、100元至未滿500元者為0.5元、
500元至未滿1000元者為1元、1000元以上者為5元。

PriceTick = IFF(Close < 50,2,IFF(Close<500,1,0));

RetMsg = Text("價量達標 "," 價",NumToStr(Price,PriceTick),">",NumToStr(StockArray[i,2],PriceTick),", 量",NumToStr(volume,0),">",NumToStr(StockArray[i,3],0));

會提示:「價量達標, 價53.5>47.5, 量1039>1000」

太好了!完美地完成... 謝謝你。

  • 按讚來自於
  • b24524658
發表回覆
Close