想詢問將警示腳本帶入交易

  •   252 
  • 最後發表   股海無涯  2022 八月 19
股海無涯 發文於   2022/08/13

之前有在板上詢問一些想法

以下是大神解答

input:length(30);   //算K棒數量

    if   barInterval<>1 then raiseRunTimeError("限1分頻率");  

 

    if   issessionFirstBar then value1=0;

 

    if   time= 092900   //語意講9點到9點半,以一分鐘頻率來說 程式應該是要寫成>=09000~ <=092900 或是>=09000~ <093000

    then value1=(FastHighest(v,length));        //紀錄最大量值

 

    if   time>=093000 

    and  time<=120000

    and  v>value1    

    then begin

        value1=v;   //更新最大值,每次出現更大量都會警示

        ret=1;

    end;

 

大抵上是紀錄9:30以前的最大量,並在9:30後若有新的大量就通知

但我想帶入交易腳本 寫CONDITION條件式去帶入一直卡關

 

若我想要在每次出現新的大量時,且目前價位在影線間去下單,該如何去撰寫會比較適當

 

先感謝版上各位大神

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/08/17

 Hello 股海無涯,

 

如果您是要再創新大量的時候進場,只要修改這一部分即可。

if   time>=093000 

    and  time<=120000

    and  v>value1    

    then begin

        value1=v;   //更新最大值,每次出現更大量都會警示

        setposition(1, market);   //將警示(ret = 1) 改為 setposition

    end;

但是您的條件 目前價位在影線間 小幫手不太懂。

目前價格 (也就是close) 一定不會在影線間,因為影線是 high 與 low 到 open/close 間的部分,close一定會是在當根的實體Bar上。

除非您是要用前一根的影線與價格來做判斷。

股海無涯 發文於   2022/08/17

感謝小幫手解答
抱歉 敘述不夠清楚 沒錯我想要抓前一根價格的影線 如果是想在下影線間進場 是否用

if   time>=093000 

    and  time<=120000

    and  v>value1   

    and low[1]<=c<=c[1] 

    then begin

        value1=v;   //更新最大值,每次出現更大量都會警示

        setposition(1, market);   //將警示(ret = 1) 改為 setposition

    end;

 

我有先試著把小幫手的腳本回測 但我發現有的進場點位 是在0930後沒錯也有小爆量 但卻沒比0930前的最大量大 但仍然進場了 是我哪裡疏忽嗎?那如果又有爆大量我想再度進場是要從設定嗎?因為我看一商品只跑一次

 

我想順便請教 有辦法讓程式去偵測前一根爆量的k棒買賣力道是買方大還是賣方大嗎?

XQ小幫手 發文於   2022/08/19

Hello 股海無涯,

 

小幫手不確定您完整的腳本是怎麼寫的,但如果是小幫手會是這樣:

if barInterval<>1 then raiseRunTimeError("限1分頻率");  

if issessionFirstBar then value1=volume;  //每日重置成交量

if time < 093000 and volume > value1 then value1 = volume;  //09:30以前若成交量創新高就更新

 

if time>=093000 

    and  time<=120000

    and  v>value1    

    then begin

        value1=v;   //更新最大值,每次出現更大量都會警示

        setposition(1, market);   //將警示(ret = 1) 改為 setposition

    end;

 

因為這個腳本只有進場沒有出場,所以一個商品只會交易一次。

如果您要有再度進場的話,position必須要有變動 (ex. setposition(position + 1, market) 每次條件符合就買1口),或是要有出場後才會再度進場。

 

至於買賣力道,您可以使用內外盤量來計算,舉例來說:

value1 = GetField("外盤量");

value2 = GetField("內盤量");

value3 = value1 - value2;

接下來您只要在爆量的時候紀錄取用value3即可。

 

網站上有教學區,裡面有XS語法的基礎和應用可以閱覽。

發表回覆
Close