近1分鐘內漲1%

  •   669 
  • 最後發表   久揚  2021 八月 17
久揚 發文於   2021/08/10

Hi 小幫手,

請問近1分鐘內漲1%,這個條件要怎麼寫呢?? :(

排序方式: 標準 | 最新
huangG 發文於   2021/08/10

有很陽春的寫法你參考嗎

if GetField("close", "1")>=GetField("close", "1")[1]*1.01 then ret=1;

XQ小幫手 發文於   2021/08/10

Hello 久揚,

 

如果可以的話,希望您能夠不要刪題目......

小幫手剛剛花了不少時間回答您 外盤暴增股 腳本撰寫問題 的問題,結果要送出時發現您已經刪題目了。

 

您可以參考 huangG 的寫法。

或是 condition1= ((getfield("Close", "1") - getfield("Close", "1")[1]) / getfield("Close", "1")[1]) > 0.01; 亦可。

 

感謝 huangG 的熱心回覆。

久揚 發文於   2021/08/10

Hello 小幫手,

好的我知道了,不好意思~ 也感謝您和huangG的幫忙~

久揚 發文於   2021/08/10

Hello 小幫手,

我想再請問我執行該策略後,卻回測不出東西,想請問是不是我有哪邊錯了?

出場腳本使用當沖尾盤出場的腳本與停損停利。

 

進場腳本 - 

value1 = q_BidAskFlag; //內外盤比

value2 = average(value1, 5); //5日平均內外盤比

value3 = average(GetField("成交量"), 5); //5日均量

 

condition1 = value1 > 2 and value1 > (value2 * 1.5); //內外盤比大於2倍 且 是五日平均內外盤比的1.5倍

condition2 = ((getfield("Close", "1") - getfield("Close", "1")[1]) / getfield("Close", "1")[1]) > 0.01;  //近一分鐘內漲1%

condition3 = value3[1] > 2000; //前5日均量>2000

 

if 

condition1 and

condition2 and 

condition3 

then ret=1;

 

當沖尾盤出場的腳本 - 

if time = 132500 and time <= 132900 then 

ret = 1;

 

XQ小幫手 發文於   2021/08/12

Hello 久揚,

 

報價欄位 q_BidAskFlag 無法使用在回測當中。小幫手建議您改用內盤量外盤量的資料欄位來計算。

且不能使用1分鐘逐筆回測。

另外您有用到跨頻率的部分 (日頻率),用GetField取值時最好指定頻率,不然會取到該頻率而非日頻率之值。

 

另外XQ的時間是該根Bar開始的時間,且股市收盤最後5分鐘為集合競價,所以小幫手會建議您最好在12:20以後就出場。

最晚也要在該Bar為132300時出場會比較好。

附上小幫手修改好的警示腳本供您參考。

附加文件

久揚 發文於   2021/08/12

Hello 小幫手,

謝謝您的幫忙,目前還是有一點疑問。

1. 照您所說,GetQuote抓取當日報價欄位的函數是無法拿來回測的,那假如我想抓取當天預估量(GetQuote("估計量"))的話,是不是就無法回測?

2. 請問為什麼無法使用1分K做回測呢? 

3. 腳本中 -> value1 = 100 * GetField("內盤量", "D") / GetField("外盤量", "D"),的意思是否為當下盤中會變動的呢? 還是指的是以日為單位的內外盤比? 因為我想抓盤中當下的內外盤,而這邊使用的頻率為日,因此有這個疑問。

 

麻煩小幫手,謝謝~

風期會 發文於   2021/08/12

用Getgield("預估量"),就可以回測了

簡單理解,getquote都是不能回測;需要回測,就改為getfield。

以上參考。

XQ小幫手 發文於   2021/08/17

Hello 久揚,

 

1.

欄位有分資料欄位、報價欄位跟選股欄位。

選股欄位顧名思義就是用在選股腳本上的。

報價欄位只能用在即時,而資料欄位則大部分可以用在回測上。

所以如果該資訊同時有報價欄位跟資料欄位的話小幫手會優先建議使用資料欄位。

您可以參考 GetField("估計量") ,也就是估計量的資料欄位。

 

2.

不是無法使用1分鐘頻率作回測,而是無法使用1分鐘頻率逐筆作回測。

有些欄位無法支援1分鐘逐筆的運算。

就您上面的例子,內盤量與外盤量是無法支援的。

 

3.

100 * GetField("內盤量", "D") / GetField("外盤量", "D")

是開盤累積至當下的內外盤比。

如果您只是要判斷當下那一筆交易是在內盤還是外盤的話,您可以使用 GetField("內外盤", "Tick") 來取得。

需注意內外盤比並不是內外盤平均。

發表回覆
Close