keymaker 發表於 13-10-20 13:12

AFL 腦力訓練 - 如何於每 n 次信號交易一次


假設:有一個簡單的買賣信號如下:
Buy=Cross(MACD(),Signal());
Sell=Cross(Signal(), MACD());

點子:由於這個信號在某一檔商品(symbol) 被 8 的太慘
          於是希望使用 AFL 令這個信號每 2 次或是每 3 次發生時才執行一次

舉例:(以1分盤為例)
信號發生時間 1 = 08:46:00 --> 不執行
信號發生時間 2 = 09:06:00 --> 不執行
信號發生時間 3 = 09:16:00 --> 要執行

kilroy 發表於 13-10-20 13:18


是確切的時間點決定要不要執行嗎?

還是某段時間決定要不要執行?

時間請參考 timenum() 作為條件去濾掉你不想要進場的時間


keymaker 發表於 13-10-20 13:21

本帖最後由 keymaker 於 13-10-20 13:22 編輯

kilroy 發表於 13-10-20 13:18 static/image/common/back.gif

喔..........並不是確切的時間點執不執行..........
是說好像計數器.....計數到了指定次數才執行...........

例如, 計數 Buy 每出現 3 次就執行一次...接著 Buy 計數器歸零...
計數 Short 每出現 3 次就執行一次...接著 Short 計數器歸零...

kilroy 發表於 13-10-20 13:28

keymaker 發表於 13-10-20 13:21
喔..........並不是確切的時間點執不執行..........
是說好像計數器.....計數到了指定次數才執行......... ...

for 迴圈拿來用吧

只是小弟好奇這樣的成效如何

當然,任何的突發奇想都是一個契機

試出來就是你的了

googleandy 發表於 13-10-20 14:03

keymaker 發表於 13-10-20 13:21 static/image/common/back.gif
喔..........並不是確切的時間點執不執行..........
是說好像計數器.....計數到了指定次數才執行......... ...

就 Power language而言
If mod(count,3)=0 then......

只有能被3整除那次才執行.....

joshsmi 發表於 13-10-21 04:24

Do you mean the third signal every new day?

dn = DateNum();
newday = dn != Ref( dn, -1 );

//define your Buy rule:
Buy = ....;

//then you can add an additional rule like:
Buy = Buy AND Sum( Buy, BarsSince( newday ) ) == 3;

joshsmi 發表於 13-10-21 04:31

dn = DateNum();
NewDay = dn != Ref( dn, -1 );

Buy = Cross( MACD(), Signal() );

BuyNum = Cum( Buy );
DailyBuyNum = BuyNum - ValueWhen( NewDay, BuyNum );

Buy = Buy AND DailyBuyNum == 3;

keymaker 發表於 13-10-21 09:29

joshsmi 發表於 13-10-21 04:31 static/image/common/back.gif
dn = DateNum();
NewDay = dn != Ref( dn, -1 );



I mean the 3rd signal every new minute,

so I think maybe just modify 'dn = DateNum()' to 'dn = TimeNum()' could reach my goal..

IBM2012 發表於 13-10-21 21:15

joshsmi 發表於 13-10-21 04:31 static/image/common/back.gif
dn = DateNum();
NewDay = dn != Ref( dn, -1 );



very good answer but sum() need more cpu power in some cases.
Be careful ~~
頁: [1]
查看完整版本: AFL 腦力訓練 - 如何於每 n 次信號交易一次