COCO研究院

 找回密碼
 註冊
搜索
查看: 3615|回復: 11

(請教)想問一下這些濾嘴為什麼沒辦法正確過濾。

[複製鏈接]
發表於 12-7-25 17:11 | 顯示全部樓層 |閱讀模式
先附上小弟我的程式碼

IIf( MA(C,75) > Ref(MA(C,75),-5), a_1= 1,a_1 = 0);
IIf (MA(C,75) > MA (C,150) > MA(C,300),a_2 =1 ,a_2 = 0);
IIf( MA(V,5)>MA(V,10)>MA(V,15),a_3 =1,a_3 = 0);
IIf( HHV(RSI(30),5) == RSI(30), a_4 =1,a_4 =0);
IIf(RSI(30) >80 AND RSI(60) >50 AND MACD(12,26) >0,a_5 =1,a_5=0);
IIf(ADX(5)>20,a_6 =1 ,a_6 =0);
IIf(C>Ref(C,-1)>Ref(C,-2)>Ref(C,-3),a_7 =1,a_7 =0);

Buy = (a_1 =1AND a_2 =1 AND a_3 =1 AND a_4 =1 AND a_5=1 AND a_6=1 AND a_7=1);

Sell =C< MA(C,10) ;

上面總共有七個濾嘴,然後 a_1 ~ a_7 分別是濾嘴通過與否的開關。
如果滿足這七個濾嘴則下單買進。
我的問題在於 這段程式碼好像跟我上述想要表達的意思有出入耶,因為當我改變濾嘴裡面的條件後,總交易次數並沒有改變,也就是說電腦買進的條件好像不適根據那些濾嘴做決策的,為什麼會這樣子呢 ? 謝謝 ^^
發表於 12-7-25 17:24 | 顯示全部樓層
肯定您的研究精神
發表於 12-7-25 17:35 | 顯示全部樓層
本帖最後由 lchardie 於 12-7-25 17:38 編輯

IIf( MA(C,75) > Ref(MA(C,75),-5), a_1= 1,a_1 = 0);

這種寫法看得我都要哭笑不得了

a_1 = MA(C,75) > Ref(MA(C,75),-5) 這才是正確的

評分

參與人數 2金錢 +2 收起 理由
hulk10425 + 1 3Q
ncur + 1 熱心助人!

查看全部評分

 樓主| 發表於 12-7-25 17:49 | 顯示全部樓層
請問一下

a_1 = MA(C,75) > Ref(MA(C,75),-5) 表示說 今天的75日MA 如果大於 五天前的75日MA的話那麼 a_1就等於一的意思囉 ?

那麼我寫 IIf( MA(C,75) > Ref(MA(C,75),-5), a_1= 1,a_1 = 0); 這樣應該也是這個意思吧@@?
 樓主| 發表於 12-7-25 18:00 | 顯示全部樓層
喔喔 ,我了解了  = ="  好丟臉。
發表於 12-7-25 18:23 | 顯示全部樓層
我都看不懂      要丟什麼?
發表於 12-7-26 11:14 | 顯示全部樓層
一夜輸 發表於 12-7-25 18:23
我都看不懂      要丟什麼?

恩~ 不介意的話,丟點打賞的COCO錢好了~上面兩位熱心的大大值得您的鼓勵.
發表於 12-7-26 13:30 | 顯示全部樓層
因為你的濾嘴是山寨版的 裡面沒有放棉花...

評分

參與人數 1金錢 +1 收起 理由
chino + 1 cc ... xx棉嗎

查看全部評分

 樓主| 發表於 12-7-27 12:10 | 顯示全部樓層
裡面沒放棉花的意思是  = = ?

我已經把程式碼改成

a_1 = IIf( MA(C,75) > Ref(MA(C,75),-5), 1,0);

a_2 = IIf (MA(C,75) > MA (C,150) > MA(C,300),1 ,0);

a_3 = IIf( MA(V,5)>MA(V,10)>MA(V,15),1,0);

a_4 = IIf( HHV(RSI(30),5) == RSI(30), 1,0);

a_5 = IIf(RSI(30) >80 AND RSI(60) >50 AND MACD(12,26) >0,1,0);

a_6 = IIf(ADX(5)>20,1 ,0);

a_7 = IIf(C>Ref(C,-1)>Ref(C,-2)>Ref(C,-3),1, 0);

a_8 = IIf( a_1 =1AND a_2 =1 AND a_3 =1 AND a_4 =1 AND a_5=1 AND a_6=1 AND a_7=1,1,0);

Buy = a_8 ;


Sell =C< MA(C,10) ;

但是結果好像還是沒變耶,為什麼呢 @@?
發表於 12-7-27 13:07 | 顯示全部樓層
hulk10425 發表於 12-7-27 12:10
裡面沒放棉花的意思是  = = ?

我已經把程式碼改成

大大 濾嘴應該是指抽菸的東西,我是沒有抽菸啦
---

在AB裡

Condition = 條件;

如果有符合條件時,就會回傳 true 了

所以不用再用 iif( 某條件, 1,0); 來傳了

ex.

a_1 = MA(C,75) > Ref(MA(C,75),-5);
a_2 = MA(C,75) > MA (C,150) > MA(C,300);
a_3 = MA(V,5)>MA(V,10) AND MA(V,10)>MA(V,15);
a_4 = HHV(RSI(30),5) == RSI(30);
a_5 = RSI(30) >80 AND RSI(60) >50 AND MACD(12,26) >0;
a_6 = ADX(5)>20;
a_7 = C>Ref(C,-1)>Ref(C,-2) AND Rec(C,-2)>Ref(C,-3);

buy = a_1 and a_2 and a_3 and a_4 and a_5 and a_6 and a_7;
short = C<MA(C,10);
---

再來就是如果要跑 AB 的 analysis

記得 buy, short, cover, sell 這四個條件都要寫入語法裡

才可以做 back test

ex.

Buy = 買進條件;
Short =  賣出條件;

Sell = Short;
Cover = Buy;

Buy = ExRem(Buy,Short);
Short = ExRem(Short,Buy);


---
如果您的這些條件是要跑程式交易

既便是回測績效很好看,也不能用

有很多地方要注意

1. C > 某值,或是某 MA 大於 某 MA
    這類的條件式,在盤中上述數值都是即時跳動的
    可能上一秒符合,下一秒不符合

     訊號就會跳來跳去,這樣必須再加一個當根K棒完成後才動作的判斷

2. iif( conditionA, conditionB, 1, 0);

    這個於法只會在當根K達到條件時 為 1
    下根K 時,會回傳為 0

    這點 AB 和 您可能之前使用的 TS/MC/HTS 有很大差異

    使用上要注意一下是否是自己想要的結果


---

參考看看了

評分

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

查看全部評分

發表於 12-7-27 13:08 | 顯示全部樓層
hulk10425 發表於 12-7-27 12:10
裡面沒放棉花的意思是  = = ?

我已經把程式碼改成

我有點好奇, 您這個程式碼能通知語法檢查嗎? (AB 的 Formula Editor 的工具列, 按 "AFL 紅色打勾" 那個圖示)
 樓主| 發表於 12-7-28 08:13 | 顯示全部樓層
kilroy 發表於 12-7-27 13:07
大大 濾嘴應該是指抽菸的東西,我是沒有抽菸啦
---

感謝!!!  獲益良多 ORZ
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 24-12-2 19:29

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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