XS新手的疑問,連續K的計算

  •   1.2K 
  • 最後發表   美姬  2021 八月 04
美姬 發文於   2021/07/19

版上前輩好

抱歉小妹初學,很多東西尚未融會,如果問了蠢問題還請見諒。

言歸正傳,

今天花了些時間設了一個針對台指期的**5分K**的操作條件,

主要設定<現在價格>與前一根(或前三根)K棒的最高價與最低價的相對關係來判斷進場或出場條件。

但再回測的時候碰到幾個問題:

1.我的持有點數區間通常只有6點,甚至常常2-3點就會出場,常常同一個5分K會重複下單,我不確定我的設法是否正確。不確定是不是抓到單一tick。我需要程式針對5分K的計算。

2.假使設定high > high[1] and low > low[1];,但他的進場時機都會在下一根K棒開盤後,請問,我有甚麼辦法讓他在當下成交價符合我所設定的條件時即進場。

3.如果要設定與前一根K棒計算<過高不破低>和<破低不過高>請問語法應該要怎麼設定,並且如果希望他即時去計算進場時機?應該怎麼設呢?

4.如果需要這個腳本同時融合5分K,20MA和15MA的計算條件,請問應該怎設呢?

5.要怎麼設定判斷我現在是新倉,或是平倉?

 

以上,請原諒程式新手的提問,因為平常上班沒機會看盤,還請小幫手和版上大大幫幫忙><

 

謝謝你們!!

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

Hello 美姬,

 

1.這要看您腳本怎麼寫的跟回測的設定。

小幫手猜測您應該是使用逐筆回測,所以導致同一根5分鐘Bar會被拆分成1分鐘Bar來模擬。

如果您需要每根5分Bar完成後才運算,不勾選逐筆即可。

 

2.如果您使用的是策略雷達的話可以選擇當根收盤價或下根開盤價進場。

自動交易中心目前是觸發後的下一根進場。

 

3.過高不過低 high > high[1] and low >= low[1]

過低不過高 low < low[1] and high <= high[1]

及時計算進場的話請勾選逐筆回測。

 

4.有跨頻率計算的話請使用 GetField 函數。

https://xshelp.xq.com.tw/XSHelp/?HelpName=GetField&group=FIELDFUNC

您所謂的20MA是 5分鐘頻率的 20期 MA (不用跨頻率)

average(close, 20)

還是 20分鐘頻率的 MA (跨頻率)

average(getfield("Close", "20"), 期數)。

 

5.如果您是使用自動交易中心的話,您可以使用 filled 根 position 來控制確認目前手上的部位倉位。

策略雷達的話就沒辦法。

 

小幫手建議您先參考教學區裡的文章,裡面有很多關於XS語法和各項功能的說明。

  • 按讚來自於
  • eddie740704
美姬 發文於   2021/08/02

好的,謝謝小幫手。
1.解決了,謝謝小幫手~~

2.這個我有延伸的問題請教

3.這個解決了,我發現是我後面設的其他條件搶過他了:P

4.這個我還在研究,有問題再跟小幫手請教~

5.這個也有延伸的問題

我後來有解決了大部分的問題,只是我有延伸的問題請教。

1.我有用<策略雷達>的方式觸發下單,這部分程式的設定挺完善的,但我想確認有沒有辦法在策略雷達內,設定<移動停損或停利>?

2.延伸2.我用XS寫了一組與策略雷達警示方式一樣的策略,但是發現<策略雷達>下的成交是觸發價,但<自動交易中心>的成交會延遲到下一根K棒(同小幫手所回覆的2),這樣的話反而無法成交在我的預想金額內,而且很容易造成虧損,但在策略雷達下,同樣的狀況就不容易造成虧損。請問有甚麼方法可以解決這個問題呢?

EX:

我用5分K,節錄部分

long_condition = Average(Close,Shortlength) crosses over Average(Close,midlength) <策略雷達用的是一樣的

exit_long_condition = Average(Close,Shortlength) crosses Below Average(Close,outlength(自己設定的另一條均線))<策略雷達用的是一樣的

if Position = 0 and long_condition and BBAND_judgment(自己加的判斷請無視) then begin SetPosition(1); end;  

if loss_point > 0 and Close <= FilledAvgPrice - loss_point and exit_long_condition and not Do_not_triggerA then begin SetPosition(0);  end else

這樣每次進出場都是下跟K棒的開盤或當根K棒的收盤,請問我用甚麼方法能夠讓他變成及時觸發呢?

謝謝小幫手的耐心指導

GammaCEO 發文於   2021/08/02

要觸發當下就送單你逐筆洗價要啟用

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

Hello 美姬,

 

1.警示腳本沒有像交易腳本一樣有 FilledAvgPrice 可以取得進場價格。

所以如果您要使用警示腳本來停損的話有兩種作法。

一種是將進場價格寫在input參數裡,然後再用此參數作運算。

另一種是您需要將進場腳本寫在出場腳本裡,然後在觸發進場條件時改為記錄當下的價格當作進場價,並以此來運算停損。

需注意此種方法紀錄的價格並不一定是實際進場價。

 

2.目前自動交易中心沒有辦法像策略雷達一樣可以選擇當根收盤價或下根開盤價。

自動交易中心一定是觸發後的下一個價格進場。

由於您是用五分鐘頻率,如果需要及時觸發的話那就是用逐筆洗價,這樣的話該根5分K會被拆分成5根1分K來模擬。

您可以參考自動交易參數設定說明

 

感謝 GammaCEO 的熱心回覆。

發表回覆
Close