COCO研究院

 找回密碼
 註冊
搜索
查看: 2096|回復: 8

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

[複製鏈接]
發表於 13-10-20 13:12 | 顯示全部樓層 |閱讀模式

假設:有一個簡單的買賣信號如下:
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 --> 要執行
發表於 13-10-20 13:18 | 顯示全部樓層
是確切的時間點決定要不要執行嗎?

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

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

評分

參與人數 1金錢 +1 收起 理由
keymaker + 1 按一個讚

查看全部評分

 樓主| 發表於 13-10-20 13:21 | 顯示全部樓層
本帖最後由 keymaker 於 13-10-20 13:22 編輯
kilroy 發表於 13-10-20 13:18

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

例如, 計數 Buy 每出現 3 次就執行一次...接著 Buy 計數器歸零...
計數 Short 每出現 3 次就執行一次...接著 Short 計數器歸零...
發表於 13-10-20 13:28 來自手機 | 顯示全部樓層
keymaker 發表於 13-10-20 13:21
喔..........並不是確切的時間點執不執行..........
是說好像計數器.....計數到了指定次數才執行......... ...

for 迴圈拿來用吧

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

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

試出來就是你的了

評分

參與人數 1金錢 +1 收起 理由
keymaker + 1 按一個讚

查看全部評分

發表於 13-10-20 14:03 | 顯示全部樓層
keymaker 發表於 13-10-20 13:21
喔..........並不是確切的時間點執不執行..........
是說好像計數器.....計數到了指定次數才執行......... ...

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

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

評分

參與人數 1金錢 +2 收起 理由
keymaker + 2 按一個讚....程式無國界

查看全部評分

發表於 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;

評分

參與人數 1金錢 +2 收起 理由
keymaker + 2 按一個讚..I mean the 3rd signal every ne.

查看全部評分

發表於 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;

評分

參與人數 1金錢 +2 收起 理由
keymaker + 2 太強了

查看全部評分

 樓主| 發表於 13-10-21 09:29 | 顯示全部樓層
joshsmi 發表於 13-10-21 04:31
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..
發表於 13-10-21 21:15 | 顯示全部樓層
joshsmi 發表於 13-10-21 04:31
dn = DateNum();
NewDay = dn != Ref( dn, -1 );

very good answer but sum() need more cpu power in some cases.
Be careful ~~
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-11-23 08:38

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |