麻煩小幫手幫忙解答!!

  •   422 
  • 最後發表   徐sir  2020 十二月 04
徐sir 發文於   2020/11/26

問題1: 描述當日成交均價縣市階梯式的樣子(綠線)

q_AvgPrice>average(q_AvgPrice[10],20) // 目前均價較前10~前30筆高

但是q_AvgPrice 沒辦法用"[]" 抓前期資料, 請問有什麼方法可以寫嗎?

 

問題2: 想要抓取近20筆tcik (外盤-內盤)的成交量 

summation(q_TickVolume,20)-->這樣沒辦法分內外盤.

 

問題3 : 下方腳本定義須q_TickVolume>q_AvgDealedShare*30 但策略雷達經常回報一些小單

且開啟5-10min 後便不再回報

腳本如下:

if barfreq <> "Min" or Barinterval <>1 then RaiseRuntimeError("請設定頻率為1分鐘");

var:length(20);//週期

condition1=false;

condition2=false;

 

{現價位階描述}

if q_AvgPrice>q_DailyOpen // 均價線在開盤價之上

and q_Last>q_AvgPrice // 成交價在均價線之上

and q_OutSize>=q_InSize // 外盤量>內盤量

and q_Last<q_DailyUplimit*0.98// 成交價漲幅<8%

then condition1=true;

 

if q_TickVolume>q_AvgDealedShare*30 // 大量買單攻擊

and q_BidAskFlag=1

then condition2=true;

 

if condition1 and condition2

then ret=1;

麻煩小幫手幫我解答 感謝!! 

 

排序方式: 標準 | 最新
XQ小幫手 發文於   2020/11/27

徐sir 您好

A1: 您可以使用GetField("均價")  

資料欄位就可以抓取過往的數據了

A2: if summation(GetField("外盤量")-GetField("內盤量"),20)>0 then ret=1;

您可以用getfield語法 來抓取資料 搭配"逐筆洗價"來執行

XQ小幫手 發文於   2020/11/27

 請問您的第三個問題意思是

剛開始雷達皆會觸發並顯示警示,但是一段時間後

既使符合條件,但是雷達並未觸發的意思嗎?

徐sir 發文於   2020/11/27

徐sir 您好

A1: 您可以使用GetField("均價")  

資料欄位就可以抓取過往的數據了 

--->所以這邊是tick or 分K , 還是取決於我是不是用逐筆洗價?
有可能同個腳本均線用分K 然後其他條件使用逐筆洗價嗎?

 

A2: if summation(GetField("外盤量")-GetField("內盤量"),20)>0 then ret=1;

您可以用getfield語法 來抓取資料 搭配"逐筆洗價"來執行

-->Q2-1 :假設最近20筆是15筆外盤+5筆內盤
這樣寫法是表示  [前15比外盤量-前5比內盤量] or [前20比外盤量-前20比內盤量]可能抓到近20筆以外的資料?
Q2-2 看了GetField("外盤量")說明 感覺這是開盤置到前為止的累計總量?(如下圖)
如果不是的話 ,想請教開盤至今的所有外盤成交量要怎麼寫?
如果是的話 , 應該就不是我想要的類似Q2-1只單純取近20筆數資料?

麻煩小邊幫忙解惑!!

 

徐sir 發文於   2020/11/27

 請問您的第三個問題意思是

剛開始雷達皆會觸發並顯示警示,但是一段時間後

既使符合條件,但是雷達並未觸發的意思嗎?


是不符合條件也一直觸發,如下圖:

條件1:q_Last<q_DailyUplimit*0.98// 成交價漲幅<8%

條件2:q_TickVolume>q_AvgDealedShare*30 //單筆成交量>單筆成交均量30倍

圖片下方有完整腳本,再麻煩幫忙看看是否有寫錯?感謝!!

另外想請問測值執行有個選項是資料讀取200筆,假設使用1分K+勾選逐筆洗價,

剛開盤資料不足200筆會有什麼問題嗎? 因為我常在開盤那瞬間跳出錯誤窗格顯示"找不到引數"

感謝小邊幫忙!!

 

完整腳本如下:

if barfreq <> "Min" or Barinterval <>1 then RaiseRuntimeError("請設定頻率為1分鐘");

var:length(20);//週期

condition1=false;

condition2=false;

 

{現價位階描述}

if q_AvgPrice>q_DailyOpen // 均價線在開盤價之上

and q_Last>q_AvgPrice // 成交價在均價線之上

and q_OutSize>=q_InSize // 外盤量>內盤量

and q_Last<q_DailyUplimit*0.98// 成交價漲幅<8%

then condition1=true;

 

if q_TickVolume>q_AvgDealedShare*30 //單筆成交量>單筆成交均量30倍

and q_BidAskFlag=1

then condition2=true;

 

if condition1 and condition2

then ret=1;

XQ小幫手 發文於   2020/11/30

徐sir 您好

A1:

1.這個要看您抓取的是TICK 還是分鐘頻率而定

逐筆洗價單純只是報價送進來決定觸發的頻率

2.是可以的,就是設定TICK 

A2-1:是表示前20個TICK " 每個TICK 的外盤量-內盤量" 的加總

A2-2 您可以使用指標看一下實際操作會比較有感覺

如果您要抓單獨數據的話就是用 GetField("外盤量")

plot1(GetField("外盤量"));

如果是要當日累積的話就是GetField("外盤量","d")

XQ小幫手 發文於   2020/11/30

關於第三個問題,

這個看起來您的撰寫方式是沒有錯的,

小幫手會在盤中時間幫您跑看看,

看問題出在哪  

XQ小幫手 發文於   2020/12/01

徐sir 您好

問題一: q_AvgDealedShare

此數值只支援"大盤",所以您放在個股的話數值都會是0

所以condition2 會成立

問題二: 漲停觸發 

這個可能需要請您提供 

1. Log資料夾(預設路徑:C:\SysJust\XQLite\Log)壓縮檔。

2. 策略雷達的相關資料匯出後上傳,記得要勾選"匯出策略雷達所包含的自訂腳本"

 

以上請 Mail 至 XQservice@XQ.com.tw,並附上此討論串連結,

小幫手會比較好幫您判斷為何這檔會觸發,

因為我今早測試看起來是正常的 感謝

附加文件

徐sir 發文於   2020/12/01

第三個問題我好像發現問題了!!

q_AvgDealedShare 似乎只適用於大盤 不適用個股.

 

後來我將腳本修改成下面這樣

if summation(GetField("外盤量")-GetField("內盤量"),20)>(q_DailyVolume/q_TotalTicks)*10*10 // 大量買單攻擊

 

準確度看起來有提升  但是仍會有一些莫名其妙的觸發狀況發生.

若照我所寫的 應該是至少近20筆累計>均量*100 

就當最低均量是1, 至少近20筆要買多於賣100張才會觸發.

下面這個例子就有點奇怪....

另外也經常跳出錯誤視窗(遇到不適當引數)

 

 

 

徐sir 發文於   2020/12/04

小編請幫忙@@

XQ小幫手 發文於   2020/12/04

徐sir 您好

如我12/01 的留言所述,

請提供

1. Log資料夾(預設路徑:C:\SysJust\XQLite\Log)壓縮檔。

2. 策略雷達的相關資料匯出後上傳,記得要勾選"匯出策略雷達所包含的自訂腳本"

以上請 Mail 至 XQservice@XQ.com.tw,並附上此討論串連結

小幫手會比較好幫您判斷問題在哪裡 感謝

發表回覆
Close