奇狐社區論壇
在這個頁面顯示本主題全部的 12 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 統計並限制賣出訊號的次數 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=17659)


由 tycoon868 在 2013-04-22 22:10 發表:

統計並限制賣出訊號的次數

請教總版主:

1. 希望以cross(c,m3)作為起算點,只要符合cross(m1,c) 或是 cross(m2,c) 任何一個成立皆當成賣訊並且Drawtext

2. 以上兩個賣出條件可以重複,但只能出現總共合計三個,可能發生的情況如下:

cross(m1,c) cross(m1,c) cross(m1,c)

cross(m1,c) cross(m2,c) cross(m1,c)

cross(m1,c) cross(m2,c) cross(m2,c)

3. 第四個賣出條件出現時,直接忽略,直到下一次cross(c,m3)時才又重新歸零

請教您寫法


由 cgjj 在 2013-04-23 09:05 發表:

回覆: 統計並限制賣出訊號的次數

引用:
最初由 tycoon868 發表
請教總版主:

1. 希望以cross(c,m3)作為起算點,只要符合cross(m1,c) 或是 cross(m2,c) 任何一個成立皆當成賣訊並且Drawtext

2. 以上兩個賣出條件可以重複,但只能出現總共合計三個,可能發生的情況如下:

cross(m1,c) cross(m1,c) cross(m1,c)

cross(m1,c) cross(m2,c) cross(m1,c)

cross(m1,c) cross(m2,c) cross(m2,c)

3. 第四個賣出條件出現時,直接忽略,直到下一次cross(c,m3)時才又重新歸零

請教您寫法



XX:=cross(c,m3);
XXSP:=barslast(XX);
賣訊:=cross(m1,c) or cross(m2,c);
賣訊:=賣訊 and sum(賣訊,XXSP+1)<=3;


由 tycoon868 在 2013-04-23 09:50 發表:

聊解了,謝謝


由 tycoon868 在 2013-04-24 07:02 發表:

套入您以下公式後,測試問題如下

1.
XX:=cross(c,m3);
XXSP:=barslast(XX);
賣訊:=cross(m1,c) or cross(m2,c);
賣訊:=賣訊 and sum(賣訊,XXSP+1)<=3;
drawtext(賣訊=1,h,'賣');

沒有出現正確的賣字,請問哪裡出錯

2. Drawtext 的字太大,雖然可以透過系統選項裡的圖形文字縮小,但是卻會動到其他如座標的字體大小

是否可以獨立控制 Drawtext 或是 Drawnumber 的字體大小?

3. 問題2之文字常常擋到K棒,如何向上拉出一條線後才顯示?

4. 希望排除兩個賣出條件相連太近的部分,第一個賣出條件成立後,第二個必須
是三天後發生的才成立(濾掉相近的),請問應該在問題一的公式上作什麼修改?

感謝


由 tycoon868 在 2013-04-24 11:50 發表:

抱歉! 增加第五個提問

5. 以cross(c, m3) 作為買點,此時總倉位為
Hold=3,出現賣訊一時 Hold=2,出現賣訊二時,則Hold=1,依此類推

請問這樣的 Hold 公式要如何寫?


由 tycoon868 在 2013-04-24 11:54 發表:

抱歉! 問題一是我弄錯了,已經解決

其餘四個需求麻煩您了

謝謝


由 cgjj 在 2013-04-24 11:57 發表:

引用:
最初由 tycoon868 發表
套入您以下公式後,測試問題如下

1.
XX:=cross(c,m3);
XXSP:=barslast(XX);
賣訊:=cross(m1,c) or cross(m2,c);
賣訊:=賣訊 and sum(賣訊,XXSP+1)<=3;
drawtext(賣訊=1,h,'賣');

沒有出現正確的賣字,請問哪裡出錯

2. Drawtext 的字太大,雖然可以透過系統選項裡的圖形文字縮小,但是卻會動到其他如座標的字體大小

是否可以獨立控制 Drawtext 或是 Drawnumber 的字體大小?

3. 問題2之文字常常擋到K棒,如何向上拉出一條線後才顯示?

4. 希望排除兩個賣出條件相連太近的部分,第一個賣出條件成立後,第二個必須
是三天後發生的才成立,請問應該在問題一的公式上作什麼修改?

5. 以cross(c, m3) 作為買點,此時總倉位為
Hold=3,出現賣訊一時 Hold=2,出現賣訊二時,則Hold=1,依此類推

感謝



Re1:
測過並沒有任何問題, 有正常跑出來唷
請再次檢視您提的條件與帶入的數據, 仔細測試
若仍有問題請提供圖形與帶入的程式, 以便於協助

Re2:
目前無法做到, 未來會建議改善

Re3
不太懂您意思
您可以於後加入 pxup 或 pxdn 偏移位置顯示(採像素偏移)

Re4 和 Re5
給的買賣規則資訊太少
不了解您原始訊號特性, 恕無法協助


由 tycoon868 在 2013-04-25 08:44 發表:

版主您好,貼圖詳細說明需求如下:

1. 以下是目前的原碼,僅是單純的標是兩種賣點,尚未經過 限制三批賣出的處理

M1:=EMA(C,6),linethick2,colorgreen,precision2;
M2:=EMA(C,20),linethick3,colorff00ff,precision2;
M3:=EMA(C,40),linethick3,colorff6633,precision2;

Partline(1,M1),colorblue,LINETHICK2;
Partline(1,M2),colorcc0099,LINETHICK2;
Partline(1,M3),colorred,LINETHICK2;

Partline(C>=M1,M1),colorgreen,LINETHICK2;
PARTLINE(C<=M1,M1),coloryellow,LINETHICK2;

Partline(C>=M2,M2),color6600ff,LINETHICK2;
PARTLINE(C<=M2,M2),colorff6633,LINETHICK2;

Partline(C>=M3,M3),colorred,LINETHICK5;
PARTLINE(C<=M3,M3),colorblue,LINETHICK5;


StickLine(C>O , HIGH , LOW , 0.1 , 0 ) , Colorred ;
StickLine(C>O , CLOSE , OPEN , 8 , 0 ) , Colorred ;
StickLine(C=O , HIGH , LOW , 0.1 , 0 ) , Coloryellow ;
StickLine(C=O , CLOSE , OPEN , 8 , 0 ) , Coloryellow ;
StickLine(C<O , HIGH , LOW , 0.1 , 0 ) , Colorffff00 ;
StickLine(C<O , CLOSE , OPEN , 8 , 0 ) , Colorffff00 ;

drawicon(C>M3 and Cross(M1,c),h*1.05,'1sell');
drawicon(C>M3 and Cross(M2,c),h*1.05,'2sell');

drawtext(cross(c,m3),l*1.05,'買進')colorff00ff;

2. 希望達到 只留下1、2、3賣點,4、5與前一個成立的賣點相距<=3天,則另外併入過濾掉的條件中

3. 第6個賣點成立時,前面已經有3個賣點,所以直接濾掉

4. 另外加入第三個過濾條件~~當兩種賣點出現在cross(c,m3) 五天之內時,也是直接忽略

5. 希望以一個公式隨時知道當下的留倉量應該為多少,法則請見附圖上的多倉量

謝謝


由 cgjj 在 2013-04-25 11:59 發表:

引用:
最初由 tycoon868 發表
版主您好,貼圖詳細說明需求如下:

1. 以下是目前的原碼,僅是單純的標是兩種賣點,尚未經過 限制三批賣出的處理

M1:=EMA(C,6),linethick2,colorgreen,precision2;
M2:=EMA(C,20),linethick3,colorff00ff,precision2;
M3:=EMA(C,40),linethick3,colorff6633,precision2;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
2. 希望達到 只留下1、2、3賣點,4、5與前一個成立的賣點相距<=3天,則另外併入過濾掉的條件中

3. 第6個賣點成立時,前面已經有3個賣點,所以直接濾掉

4. 另外加入第三個過濾條件~~當兩種賣點出現在cross(c,m3) 五天之內時,也是直接忽略

5. 希望以一個公式隨時知道當下的留倉量應該為多少,法則請見附圖上的多倉量

謝謝



定義不夠完整
買進後尚未有賣出過, 又碰買進
這時倉量以何計....

買點與買點間, 不見的每次都有足三個賣點給您賣出
倉量狀況, 不會只是您單純畫的那個樣子

基本上, 這個交易規則, 以我的認知, 它並不完整

很抱歉, 無法理解您要的東西
請您自行處理


由 tycoon868 在 2013-04-26 08:26 發表:

謝謝總版主,根據您的提示,重新歸納買進與賣出的邏輯,希望可以請您再次驗證並賜教正確的公式寫法

1. 請忽略之前的買賣規則,只作多方
MQ:=EMA(c,3),precision2;
MT:=EMA(c,40),precision2;
MTB:=((MQ-MT)/MT)*400;

Cross(MTB,30) 時買進 1
Cross(MTB,60) 時買進 2
MTB>0 and MTB<=30時,倉位為0
即使MTB>240,最大倉位為3
如果最大MTB只有50,則該波的倉位只有 1

完整的操作週期開始於 Cross(MTB,0) ,結束於 Cross(0,MTB) ,

2. 賣點為出現 Cross(240,MTB)、Cross(120,MTB)、Cross(60,MTB)時都是 -1 倉,
但是上列三種賣點在同一個操作週期理,都只允許出現一次,

例如: 某一波段自高檔滑落,歷經 兩次Cross(240,MTB),兩次Cross(120,MTB),
目前為 MTB=100,則倉位的變化為 第一次Cross(240,MTB)時為3-1=2,
直到出現第一次Cross(120,MTB)時為2-1=1,重複出現的賣點不作減倉。

第四個賣點為 Cross(30,MTB)~此時無論帳上倉位多少,一律 倉位=0

在還沒有出現 Cross(0,MTB)之前,再次出現Cross(MTB,30) 時則買進 1

3. 根據上列兩點的的買賣原則,可以動態求出任何時候的當下倉位

4. 並且根據這個倉位算出包含建倉與減倉過程中,每一個時點的持有成本與報酬率,一律
採用 Cross 當下的收盤價

持有成本=(買進1收盤價*倉位1)+(買進2收盤價*倉位2)/3,也有可能只有倉位1的收盤價

當暫時只出現 買進1時先秀出買進1的收盤價,出現買進2時則併入計算新的持有成本

5. 報酬率=(賣出1收盤價)+(賣出2收盤價)+(賣出3收盤價)除以3/持有成本*100

當暫時只出現 賣出1時,則 報酬率=(賣出1收盤價)/持有成本*100

當暫時只出現 賣出2時,則 報酬率=(賣出1收盤價)+(賣出2收盤價)除以2/持有成本*100

當倉位>0時,此時的報酬率皆為暫時的,直到倉位=0時才是 Final

請您直接僅以 一個欄位(倉位)計算與顯示即可

當帳上倉位=0時,請列出上一波段的 Final 報酬率

*@_@* 因為明天是周休二日,以上簡單的邏輯架構,如果還有不足的部分,我會在中午補足,勞煩您今天下午再次上線,萬分感激! *@_@*

謝謝您


由 cgjj 在 2013-04-26 10:03 發表:

引用:
最初由 tycoon868 發表
謝謝總版主,根據您的提示,重新歸納買進與賣出的邏輯,希望可以請您再次驗證並賜教正確的公式寫法

1. 請忽略之前的買賣規則,只作多方
MQ:=EMA(c,3),precision2;
MT:=EMA(c,40),precision2;
MTB:=((MQ-MT)/MT)*400;

Cross(MTB,30) 時買進 1
Cross(MTB,60) 時買進 2
MTB>0 and MTB<=30時,倉位為0
即使MTB>240,最大倉位為3
如果最大MTB只有50,則該波的倉位只有 1

完整的操作週期開始於 Cross(MTB,0) ,結束於 Cross(0,MTB) ,

2. 賣點為出現 Cross(240,MTB)、Cross(120,MTB)、Cross(60,MTB)時都是 -1 倉,
但是上列三種賣點在同一個操作週期理,都只允許出現一次,

例如: 某一波段自高檔滑落,歷經 兩次Cross(240,MTB),兩次Cross(120,MTB),
目前為 MTB=100,則倉位的變化為 第一次Cross(240,MTB)時為3-1=2,
直到出現第一次Cross(120,MTB)時為2-1=1,重複出現的賣點不作減倉。

第四個賣點為 Cross(30,MTB)~此時無論帳上倉位多少,一律 倉位=0

在還沒有出現 Cross(0,MTB)之前,再次出現Cross(MTB,30) 時則買進 1

3. 根據上列兩點的的買賣原則,可以動態求出任何時候的當下倉位

4. 並且根據這個倉位算出包含建倉與減倉過程中,每一個時點的持有成本與報酬率,一律
採用 Cross 當下的收盤價

持有成本=(買進1收盤價*倉位1)+(買進2收盤價*倉位2)/3,也有可能只有倉位1的收盤價

當暫時只出現 買進1時先秀出買進1的收盤價,出現買進2時則併入計算新的持有成本

5. 報酬率=(賣出1收盤價)+(賣出2收盤價)+(賣出3收盤價)除以3/持有成本*100

當暫時只出現 賣出1時,則 報酬率=(賣出1收盤價)/持有成本*100

當暫時只出現 賣出2時,則 報酬率=(賣出1收盤價)+(賣出2收盤價)除以2/持有成本*100

當倉位>0時,此時的報酬率皆為暫時的,直到倉位=0時才是 Final

請您直接僅以 一個欄位(倉位)計算與顯示即可

當帳上倉位=0時,請列出上一波段的 Final 報酬率

*@_@* 因為明天是周休二日,以上簡單的邏輯架構,如果還有不足的部分,我會在中午補足,勞煩您今天下午再次上線,萬分感激! *@_@*

謝謝您




很抱歉
還是無法理解您寫的內容
請您參閱論壇上的類似範例, 自行處理吧


由 tycoon868 在 2013-04-26 10:15 發表:

我還以為這樣夠清楚了,謝謝


全部時間均為台灣時間, 現在時間為05:11
在這個頁面顯示本主題全部的 12 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.