使用警示腳本撰寫XS急拉

  •   2K 
  • 最後發表   Jack  2018 一月 19
Jack 發文於   2017/09/12

大家好,

以下分享如何使用警示腳本撰寫XS急拉

 

XS急拉定義假設為:

1. 1分鐘急拉(一根bar比前一根上漲超過n%且成交量比前一根bar大時)

2. 同時符合5分鐘觸布林上通道

 

撰寫方式大致如下:

1. 使用 rateofchange 函數撰寫 一根bar比前一根上漲超過n% 的條件

2. 使用 getfield 函數跨頻率取得5分鐘收盤價,以及取得日收盤價,以撰寫 5分鐘觸布林上通道 的條件

3. 使用 print 語法查看數值是否正確( 請參考 如何運用Print指令來抓程式的臭蟲 )

 

策略雷達內容設定畫面如下:

 

警示腳本範例程式碼如下:

input:_Change(1,"門檻漲幅(%)"), Length(20,"布林天期"), UpperBand(2,"布林上通道");

value1 = rateofchange(close,1);
value2 = bollingerband(GetField("收盤價","D"), Length, UpperBand);

if value1 > _Change 
and volume > volume[1] 
and GetField("收盤價","5") >= value2 then ret = 1;

print(date,time,value1,volume,volume[1],GetField("收盤價","5"),value2);

 

以上,提供給大家參考,有問題歡迎詢問。

  • 按讚來自於
  • samkao26
  • kingsman02
排序方式: 標準 | 最新
John 發文於   2017/09/12

Hi jack , 謝謝您提供程式 此訊號我啟用它時會出現黃燈,執行紀錄上面寫商品可能缺資料或資料有問題,請問是什麼地方有疑慮呢?

John 發文於   2017/09/12

Hi Jack, 

能否另外幫我編寫一個1分鐘急殺同時符合觸5分鐘布林下軌道的程式碼呢? 麻煩了,謝謝

Jack 發文於   2017/09/13

John 兄,

此訊號我啟用它時會出現黃燈,執行紀錄上面寫商品可能缺資料或資料有問題

你應該是用普通股全部商品(約163X檔)下去跑策略雷達,

裡面有些股票最近才剛上市(櫃),例如:6574,初次上市(櫃)為2017/09/04,

像這種剛上市(櫃)的股票商品,因為K棒資料筆數不足,所以不予計算,

基於上述的原因,些許商品無法跑此策略,故亮黃燈。

 

能否另外幫我編寫一個1分鐘急殺同時符合觸5分鐘布林下軌道的程式碼呢? 麻煩了,謝謝

此策略應該與我撰寫的範例相似,看你要不要試著寫寫看,有問題再問我,

當然,你也可以直接索取範例,請提供【1分鐘急殺】定義,我成功編譯成功,測試OK,再撰寫範例分享。

 

John 發文於   2017/09/13

hi Jack ,

謝謝您的回覆,可能我在寫程式這方面比較沒有慧根,再麻煩您了

1. 1分鐘急殺(一根bar比前一根下跌超過n%且成交量比前一根bar大時)

2. 同時符合5分鐘觸布林下通道

謝謝您

John 發文於   2017/09/14

hi Jack ,
如果我想在原本的條件:

1. 1分鐘急拉(一根bar比前一根上漲超過n%且成交量比前一根bar大時)

 

2. 同時符合5分鐘觸布林上通道
再加上一條

3.同時符合30分鐘觸布林上通道

請問該如何改寫?不好意思我有試著去寫並偵測,但結果好像不無合預期,再麻煩您,謝謝 

John 發文於   2017/09/15

Hi Jack,

不好意思,再麻煩您幫忙了,謝謝

Jack 發文於   2017/09/18

John 兄,

我抽空研究後,再跟你說明

John 發文於   2017/09/18

Hi Jack, 

謝謝您

 

Jack 發文於   2017/09/20

John 兄,

1分鐘急殺同時符合觸5分鐘布林下軌道,

撰寫方式與急拉相似,故不再說明,當然這部分有問題也可以問我,

策略雷達內容設定,與1分鐘急拉相同,請參考1分鐘急拉的策略雷達內容設定畫面,

 

範例程式碼如下:

input:_Change(1,"門檻跌幅(%)"), Length(20,"布林天期"), LowerBand(2,"布林下通道");

value1 = rateofchange(close,1);
value2 = bollingerband(GetField("收盤價","D"), Length, -LowerBand);

if value1 < -_Change 
and volume > volume[1] 
and GetField("收盤價","5") <= value2 then ret = 1;

print(date,time,value1,volume,volume[1],GetField("收盤價","5"),value2);

 

以上,供參考,有問題歡迎詢問。

John 發文於   2017/09/20

Hi, Jack

謝謝您的回覆,上面還有一題再懇求你幫忙解答了,不好意思,謝謝您

上面提問如下

如果我想在原本的條件:

 

1. 1分鐘急拉(一根bar比前一根上漲超過n%且成交量比前一根bar大時)

 

2. 同時符合5分鐘觸布林上通道

再加上一條

 

3.同時符合30分鐘觸布林上通道

 

請問該如何改寫?不好意思我有試著去寫並偵測,但結果好像不無合預期,再麻煩您,謝謝

顯示更多回應 發表回覆
Close