請教如何撰寫當沖突破做多策略

  •   2K 
  • 最後發表   Harry666  2021 十月 12
Harry666 發文於   2021/04/09

請問各位大大,我寫了一個警示策略,規則是希望能在盤中時價格從開盤價或是最高價下跌n%(或跌破開盤價)後,之後股價拉回並突破(希望能夠帶量突破或判斷是否有特大單)開盤價or最高價時進場,但目前遇到一些困難寫不出來...想請教一下我該如何修改

例如我想在下圖紅圈時進場進場點

以下腳本是我網路上參考來稍做修改的,謝謝各位大大

 

input:sp(3,"回檔最大幅度");

input:opl(2,"開高最小幅度");

input:oph(6,"開高最大幅度");

 

condition1 = False;

//condition2 = False;

//是否成立V型 (先跌後漲)

 

if open>=close[1]*(1+opl/100) //開高最小幅度

and close<=close[1]*(1+oph/100) //開高最大幅度

and low>open*(1-sp/100) //回檔最大幅度

and close=high

//and close[1]<close[3]*1.08//前三天漲幅不到8%

then condition1 = True;

//是否帶量

//Value1 = GetField("買進特大單量", "1") - GetField("賣出特大單量", "1"); 

//if Value1 > 0 then condition2 = True;

 

if condition1 then ret=1;

 

 

 

排序方式: 標準 | 最新
Mick 發文於   2021/04/10

當沖你應該是用1分K吧

這樣你的open跟close都用錯了

你要判斷開盤價應該是用opend(0)跟closed(1)

你如果用open跟close 他在1分k頻率下代表的是當根K棒的開盤跟現價

 

假設你最基本條件是開高2% 那就這樣寫

condition1 = opend(0) > closed(1)*1.02 ;

Harry666 發文於   2021/04/10

感謝大大提供意見,我照您的方式改了以下腳本,但回測起來還是發現進場位置還是有些怪怪的,

看到滿多進場點都是在開盤就進場,或是不是照我希望的先跌後漲且突破關鍵價再進場QQ...,

另外我考慮到價格要下跌再上漲可能有期數問題,這裡不太會判斷就先用均價來算,不知是否有更好的辦法,想再麻煩您幫我看看我哪裡有問題,非常謝謝

 

 

input:opl(0,"開盤最小幅度");

input:oph(8,"開盤最大幅度");

input:covavg(5,"價格大於近幾期平均");

 

condition1 = False;

 

if barfreq <> "Min" and barinterval <> 1 then raiseRunTimeError ("頻率錯誤");

 

//是否成立V型 (先跌後漲)

if  OpenD(0)  >= closeD(1) * (1+opl/100) //開盤最小幅度

and OpenD(0)  <= closeD(1) * (1+oph/100) //開盤最大幅度

and weightedClose[5] < OpenD(0)

and closeD(0) Cross Over Average(closeD(0),covavg)

and closeD(0) > OpenD(0)

then condition1 = True;

 

 

 

if condition1 then ret=1;

 

 

Harry666 發文於   2021/04/12

不好意思,研究了幾天還是沒研究出來怎麼寫,有大神或是小編可以指點迷津嗎,謝謝...。

Harry666 發文於   2021/04/13

小幫手可以幫幫忙嗎QQ,不然程式租了都沒辦法跑自己要的策略,只能空浪費天數了

黑蛇 發文於   2021/04/13

你該不會是看了黃藥師的文章想寫出來吧

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

Hello Harry666,

 

根據您的需求這邊附上策略雷達範例供您參考。

請注意如果是求 最高價回擋 的話有用到迴圈所以計算速率會慢很多,小幫手先幫您註解了起來,有需要的話在打開來即可。

附加文件

Harry666 發文於   2021/04/14

感謝小幫手,自行有回測了一段時間,但發現加了cross above後,幾乎不會進場...註解掉之後進場位置也不是突破開盤價(最高價)進場,請問是我回測設定有誤嗎?,我是用1分K、逐筆洗價,再麻煩小幫手了,非常感謝

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

Hello Harry666,

 

由於您的需求是 突破 所以才用了 cross above。如果您覺得進場次數過少的話應該是條件太過嚴苛。

建議您可以將回檔最小幅度和開高最小幅度這兩個參數調小嘗試即可。

GaryChiang 發文於   2021/04/15

我覺得可以測試一下,

closeD(0) Cross Over Average(closeD(0),covavg)

以一分K來看, 若在9:10分時

Average(closeD(0),covavg)

這個數值應該等於CloseD(0), 因為前5根K棒的CloseD(0), "可能"會是同一個值!

若用 Average(close,covavg) 試試看! 或許就可以了!

 

我有開一個討論區, 大家可以一起討論分享!

https://www.facebook.com/groups/500156048013646

黑牛 發文於   2021/08/27

不知道後來問題有解決嗎

 

顯示更多回應 發表回覆
Close