請教分K與日線外資投信買賣寫法

  •   296 
  • 最後發表   KKuramas  2020 十一月 03
KKuramas 發文於   2020/10/30

你好,

小弟寫了一個30分K的警示策略

1. KD <20 (30分K)

2. MACD DIF>=0(30分K)

3. K棒價格與量比前K棒高

4. 前一天外資買超,投信買超過150張

但回測卻一直無法跑出成功的報告,是否可以請小幫手協助,是否外資投信籌碼使用日K上有需要改寫的地方,謝謝

附加文件

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

KKuramas 您好

主要是因為您設了這行

settotalbar(3);

這個是限制資料讀取筆數的語法

如果您要使用MACD 等指標,資料設定 3 是無法計算的

資料讀取筆數的介紹如下,提供給您

http://www.xq.com.tw/lesson/xspractice/%E8%B3%87%E6%96%99%E8%AE%80%E5%8F%96%E7%AF%84%E5%9C%8D%E8%88%87%E8%85%B3%E6%9C%AC%E5%9F%B7%E8%A1%8C%E7%9A%84%E9%97%9C%E4%BF%82/

以及如何取得 MACD 正確的值(以下這篇有詳細的介紹)

https://forum.xq.com.tw/thread/macd-%e6%8a%80%e8%a1%93%e6%8c%87%e6%a8%99%e7%9a%84%e8%b3%87%e6%96%99%e8%ae%80%e5%8f%96%e7%ad%86%e6%95%b8%e8%a8%ad%e5%ae%9a/

以上提供給您參考 感謝

KKuramas 發文於   2020/10/30

 謝謝小幫手回復,有將抓取的參數加入指令列中(如下方)。有放入和無放入下列指令的結果,回測的數據都是一樣的

SetTotalBar((maxlist(FastLength,SlowLength,6) + MACDLength) * 3 + 8);

那是否有依定要放入SetTotalBar的指令呢? 

另外加入下方的外資和投信買賣超的指令列,就無法跑出回測結果,

請問小幫手該如何修改呢?  謝謝

------------------------------------------------------------

input:Fboughts(100); setinputname(1,"外資買超張數");

input:Sboughts(100); setinputname(2,"投信買超張數");

input:TXT1("僅適用日線"); setinputname(3,"使用限制");

 

if BarFreq <> "D"  then return;

if GetField("外資買賣超")[1]>Fboughts and GetField("投信買賣超")[1]>Sboughts

then ret=1;

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

KKuramas 您好

因為如果您不放入的話,系統會自動幫您設立資料讀取筆數" 200" 筆

所以才不會發生問題,

但小幫手還是建議您養成自行建立資料讀取筆數的好習慣 (不管是 用settotalbar 或在策略雷達設定介面中)

因為如果您之後撰寫到跨頻率腳本的話,

資料讀取筆數就會對於數據正不正確影響很大~~

-------

我拿您的策略來進行回測 應該是可以跑出東西的才對

副檔為我的回測報告 

附加文件

KKuramas 發文於   2020/10/30

謝謝小編的回覆,回測的時間是選用30分k

自己試著加入籌碼的條件,跑了一天的回測,成功次數都是0,如附件。

是否可請小編協助,是哪個環節出了問題呢?謝謝

附加文件

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

KKuramas 您好

因為您在腳本當中有撰寫指定頻率壓

也就是以下這段

if BarFreq <> "D"  then return;

這段的意思是如果雷達不是日線的話 就停止程式

且"外資買賣超" 與 "投資買賣超" 是屬於日資料的

日內頻率是沒有數據的 

KKuramas 發文於   2020/11/02

 謝謝小編提醒,請問要如何修改才能在30分K顯示外資與投信買賣超的條件警示呢?

我試著修改策略條件如附檔,還是無法讓程式跑成功,能否請小邊幫忙,謝謝

附加文件

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

KKuramas 您好

因為外資投信買賣超是每天盤後才有的資料

所以您取當天的資料 GetField("外資買賣超","D")

是沒有數據的

而正常來說看的資料會是用昨天晚上公布的數據

所以可以寫成GetField("外資買賣超","D")[1]

就可以正常執行了

以下附檔為修正好的策略雷達 提供給您參考 

附加文件

KKuramas 發文於   2020/11/03

謝謝小編!

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