到奇狐勝券首頁 奇狐社區論壇 購買奇狐勝券 試用奇狐勝券
 
論壇首頁 你可以在這裡編輯你的資料,查看短訊,訂閱主題和論壇參數等等 免費會員註冊 會員列表 論壇幫助 論壇日曆 論壇搜索 加入我的最愛 登出論壇  
奇狐社區論壇 : Powered by vBulletin version 2.3.0 奇狐社區論壇 > 指標公式 > 問題交流 > 關於買賣訊號的問題[交易範例]
總頁數 (5): « 1 2 [3] 4 5 »   上一主題   下一主題
作者
主題 發表新主題    回覆主題
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17628

引用:
最初由 yisong 發表
是的,我是要LLV(指標A,0)<0一定要成立才可以,這樣可以了
另外請教一下,如果我要讓訊號再指定時間出現出場訊號該怎麼寫呢?
舉例來說13:30時不論賺賠,只有手上有部位一律平倉出場。

謝謝



將 time=133000 列為出場條件之一即可
Time 為K棒的時間
或許 time>133000 比較合乎你的需求

向版主報告此篇 | 查IP位址
Old Post 2010-12-09 14:05
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
yisong
資深會員

註冊日期: Jan 2010
來  自:
文章數量: 137

引用:
最初由 cgjj 發表
將 time=133000 列為出場條件之一即可
Time 為K棒的時間
或許 time>133000 比較合乎你的需求


我將time>133000加入訊號終結果並沒有產生出場訊號,請幫忙看一下是哪裡寫錯了呢?
另外想要請教一下 or barpos=0這個附帶的條件一定要加嗎?因為不知道為何要加這個條件,"BARPOS=數據位置,函數返回當前是第幾根K線",所以加入 or BARPOS=0會回傳0的數值(表示不是第0根K線)但用意為何呢?謝謝
進L:=(多單條件1 OR 多單條件2) and 指標A>0 or barpos=0;
出L:=多單出場1 OR 多單出場2 or time>133000 or barpos=0;
進S:=(空單條件1 OR 空單條件2) and 指標B<0 or barpos=0;
出S:=空單出場1 OR 空單出場2 or time>133000 or barpos=0;

最後由 yisong 在 2010-12-09 15:51 編輯 向版主報告此篇 | 查IP位址
Old Post 2010-12-09 15:42
yisong 現在離線 點選這裡查看 yisong 的個人資料 點選這裡給 yisong 傳送一條短訊 查找更多關於 yisong 的文章 增加 yisong 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17628

引用:
最初由 yisong 發表
我將time>133000加入訊號終結果並沒有產生出場訊號,請幫忙看一下是哪裡寫錯了呢?
另外想要請教一下 or barpos=0這個附帶的條件一定要加嗎?因為不知道為何要加這個條件,"BARPOS=數據位置,函數返回當前是第幾根K線",所以加入 or BARPOS=0會回傳0的數值(表示不是第0根K線)但用意為何呢?謝謝
進L:=(多單條件1 OR 多單條件2) and 指標A>0 or barpos=0;
出L:=多單出場1 OR 多單出場2 or time>133000 or barpos=0;
進S:=(空單條件1 OR 空單條件2) and 指標B<0 or barpos=0;
出S:=空單出場1 OR 空單出場2 or time>133000 or barpos=0;



or BARPOS=0 是一種取巧的寫法, 詳見這邊的解說:
http://www.chiefox.com.tw/bbs/showt...60805#post60805

出S:=空單出場1 OR 空單出場2 or time>133000 or barpos=0;
在分線鐘跑嗎? 這個部份程式沒錯唷
可能是您後面銜接的程式, 過濾所導致的問題

向版主報告此篇 | 查IP位址
Old Post 2010-12-09 15:59
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
yisong
資深會員

註冊日期: Jan 2010
來  自:
文章數量: 137

引用:
最初由 cgjj 發表
or BARPOS=0 是一種取巧的寫法, 詳見這邊的解說:
http://www.chiefox.com.tw/bbs/showt...60805#post60805

出S:=空單出場1 OR 空單出場2 or time>133000 or barpos=0;
在分線鐘跑嗎? 這個部份程式沒錯唷?
可能是您後面銜接的程式, 過濾所導致的問題


我是在1min線下面跑,我把這個條件加入到整併後的結果後面就可以產生訊號了,只不過遇到一個問題是,加入time>133000這個條件後,每天的133000後面每根K棒都產生訊號,要怎麼改才能變成13:30以後手上有部位時平倉,平倉後不再進場呢?
//整併後的結果
進L:=DoLS=1 or DoLS=3; //多進
出L:=DoLS=2 or DoLS=-3 or DoLS=4 or DoLS=5 or time>133000; //多出
進S:=DoLS=-1 or DoLS=-3; //空進
出S:=DoLS=-2 or DoLS=3 or DoLS<=-4 or DoLS=-5 or time>133000; //空出
ENTERLONG:進L;
EXITLONG:出L;
ENTERSHORT:進S;
EXITSHORT:出S;

向版主報告此篇 | 查IP位址
Old Post 2010-12-09 16:26
yisong 現在離線 點選這裡查看 yisong 的個人資料 點選這裡給 yisong 傳送一條短訊 查找更多關於 yisong 的文章 增加 yisong 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17628

引用:
最初由 yisong 發表
我是在1min線下面跑,我把這個條件加入到整併後的結果後面就可以產生訊號了,只不過遇到一個問題是,加入time>133000這個條件後,每天的133000後面每根K棒都產生訊號,要怎麼改才能變成13:30以後手上有部位時平倉,平倉後不再進場呢?
//整併後的結果
進L:=DoLS=1 or DoLS=3; //多進
出L:=DoLS=2 or DoLS=-3 or DoLS=4 or DoLS=5 or time>133000; //多出
進S:=DoLS=-1 or DoLS=-3; //空進
出S:=DoLS=-2 or DoLS=3 or DoLS<=-4 or DoLS=-5 or time>133000; //空出
ENTERLONG:進L;
EXITLONG:出L;
ENTERSHORT:進S;
EXITSHORT:出S;



自進場之條件下手解決就可
例如:
進L:=(DoLS=1 or DoLS=3) and time<=133000;

提醒您
一般來說時間控制會在訊號整併前就決定了
不會於整併後才加入
兩者結果會不一樣的

向版主報告此篇 | 查IP位址
Old Post 2010-12-09 16:45
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
yisong
資深會員

註冊日期: Jan 2010
來  自:
文章數量: 137

引用:
最初由 cgjj 發表
自進場之條件下手解決就可
例如:
進L:=(DoLS=1 or DoLS=3) and time<=133000;

提醒您
一般來說時間控制會在訊號整併前就決定了
不會於整併後才加入
兩者結果會不一樣的


奇怪,改成版主建議的方式後還是一樣,在133000後會一直出現訊號,是哪裡還有問題呢?
我有把這個time<=133000分別加到整併前和整併後都試過,但是結果都一樣。

向版主報告此篇 | 查IP位址
Old Post 2010-12-09 18:02
yisong 現在離線 點選這裡查看 yisong 的個人資料 點選這裡給 yisong 傳送一條短訊 查找更多關於 yisong 的文章 增加 yisong 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17628

引用:
最初由 yisong 發表
奇怪,改成版主建議的方式後還是一樣,在133000後會一直出現訊號,是哪裡還有問題呢?
我有把這個time<=133000分別加到整併前和整併後都試過,但是結果都一樣。



把處理此段的程式和其後續銜接的程式貼出來
否則難以協助您 Check

向版主報告此篇 | 查IP位址
Old Post 2010-12-09 18:14
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
yisong
資深會員

註冊日期: Jan 2010
來  自:
文章數量: 137

引用:
最初由 cgjj 發表
把處理此段的程式和其後續銜接的程式貼出來
否則難以協助您 Check


程式如下,麻煩您了
進L:=(多單條件1 OR 多單條件2) and time<=133000 or barpos=0;
出L:=多單出場1 OR 多單出場2 or barpos=0;
進S:=(空單條件1 OR 空單條件2) and time<=133000 or barpos=0;
出S:=空單出場1 OR 空單出場2 or barpos=0;
NowLS:=0; //1.多, -1.空, 0.無
DoLS:=C*0; CC:=C; HH:=H; LL:=L;
Do進:=進L-進S; Do出:=出L-出S;
損控:=30; 控盈基:=50; 控盈衰率:=33/100;
for i=1 to datacount do begin
if NowLS=0 then begin
NowLS:=Do進[i]; DoLS[i]:=NowLS; Max盈:=0;
if NowLS<>0 then 進價:=CC[i];
end else begin
if NowLS=-Do進[i] then begin
NowLS:=Do進[i]; DoLS[i]:=NowLS*3; 進價:=CC[i]; Max盈:=0; //反手
end else begin
損HL:=LL[i]*(NowLS=1)+HH[i]*(NowLS=-1);
盈利:=(CC[i]-進價)*NowLS;
if (損HL-進價)*NowLS<=-損控 then begin
DoLS[i]:=NowLS*5; NowLS:=0; //停損出
end else begin
盈衰:=Max盈-盈利;
if 盈衰>Max盈*控盈衰率 and Max盈>控盈基 then begin
DoLS[i]:=NowLS*4; NowLS:=0; //盈衰出
end else if NowLS=Do出[i] then begin
DoLS[i]:=Do出[i]*2; NowLS:=0; //訊號出
end;
end;
if 盈利>Max盈 then Max盈:=盈利;
end;
end;
end;
//DoLS意義:
// 1.多進, 2.多出, 3.空翻多, 4.多盈衰出, 5.多損出
//-1.空進,-2.空出, -3.多翻空, -4.空盈衰出, -5.空損出
//整併後的結果
進L:=DoLS=1 or DoLS=3; //多進
出L:=DoLS=2 or DoLS=-3 or DoLS=4 or DoLS=5 or time>133000; //多出
進S:=DoLS=-1 or DoLS=-3; //空進
出S:=DoLS=-2 or DoLS=3 or DoLS<=-4 or DoLS=-5 or time>133000; //空出
ENTERLONG:進L;
EXITLONG:出L;
ENTERSHORT:進S;
EXITSHORT:出S;

向版主報告此篇 | 查IP位址
Old Post 2010-12-09 18:28
yisong 現在離線 點選這裡查看 yisong 的個人資料 點選這裡給 yisong 傳送一條短訊 查找更多關於 yisong 的文章 增加 yisong 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17628

引用:
最初由 yisong 發表
[B]程式如下,麻煩您了
.....................


改這樣試試(都要在前)

進L:=(多單條件1 OR 多單條件2) and time<=133000 or barpos=0;
出L:=多單出場1 OR 多單出場2 or barpos=0 or time>133000;
進S:=(空單條件1 OR 空單條件2) and time<=133000 or barpos=0;
出S:=空單出場1 OR 空單出場2 or barpos=0 or time>133000;
//..............省略.............
進L:=DoLS=1 or DoLS=3; //多進
出L:=DoLS=2 or DoLS=-3 or DoLS=4 or DoLS=5; //多出
進S:=DoLS=-1 or DoLS=-3; //空進
出S:=DoLS=-2 or DoLS=3 or DoLS<=-4 or DoLS=-5; //空出

向版主報告此篇 | 查IP位址
Old Post 2010-12-09 18:34
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
yisong
資深會員

註冊日期: Jan 2010
來  自:
文章數量: 137

引用:
最初由 cgjj 發表
改這樣試試(都要在前)

進L:=(多單條件1 OR 多單條件2) and time<=133000 or barpos=0;
出L:=多單出場1 OR 多單出場2 or barpos=0 or time>133000;
進S:=(空單條件1 OR 空單條件2) and time<=133000 or barpos=0;
出S:=空單出場1 OR 空單出場2 or barpos=0 or time>133000;
//..............省略.............
進L:=DoLS=1 or DoLS=3; //多進
出L:=DoLS=2 or DoLS=-3 or DoLS=4 or DoLS=5; //多出
進S:=DoLS=-1 or DoLS=-3; //空進
出S:=DoLS=-2 or DoLS=3 or DoLS<=-4 or DoLS=-5; //空出


將時間都改放在前面以後,變成133000不會出場了

向版主報告此篇 | 查IP位址
Old Post 2010-12-09 18:46
yisong 現在離線 點選這裡查看 yisong 的個人資料 點選這裡給 yisong 傳送一條短訊 查找更多關於 yisong 的文章 增加 yisong 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17628

引用:
最初由 yisong 發表
將時間都改放在前面以後,變成133000不會出場了


因為多和空之強制出場在同時間, 故需改為這樣
原碼:

強出
:=time>133000;
進L:=多進 and 強出=or barpos=0
出L:=多出 or barpos=0;
進S:=空進 and 強出=or barpos=0;
出S:=空出 or barpos=0;
NowLS:=0//1.多, -1.空, 0.無
DoLS:C*0CC:=CHH:=HLL:=L;
Do進:=進L-進SDo出:=出L-出S;
損控:=30控盈基:=50控盈衰率:=33/100;
for 
i=1 to datacount do begin
  
if NowLS=0 then begin
    NowLS
:=Do進[i]; DoLS[i]:=NowLSMax盈:=0;
    if 
NowLS<>0 then 進價:=CC[i];
  
end else begin
    
if NowLS=-Do進[ithen begin
      NowLS
:=Do進[i]; DoLS[i]:=NowLS*3進價:=CC[i]; Max盈:=0//反手
    
end else begin
      
if 強出[ithen begin
        DoLS
[i]:=NowLS*6NowLS:=0//強制出場
      
end else begin
        損HL
:=LL[i]*(NowLS=1)+HH[i]*(NowLS=-1);
        
盈利:=(CC[i]-進價)*NowLS;
        if (
損HL-進價)*NowLS<=-損控 then begin
          DoLS
[i]:=NowLS*5NowLS:=0//停損出
        
end else begin
          盈衰
:=Max盈-盈利;
          if 
盈衰>Max盈*控盈衰率 and Max盈>控盈基 then begin
            DoLS
[i]:=NowLS*4NowLS:=0//盈衰出
          
end else if NowLS=Do出[ithen begin
            DoLS
[i]:=Do出[i]*2NowLS:=0//訊號出
          
end;
        
end;
        if 
盈利>Max盈 then Max盈:=盈利;
      
end;
    
end;
  
end;
end;
//DoLS意義:
// 1.多進, 2.多出,  3.空翻多,  4.多盈衰出,  5.多損出,  6.強制出場
//-1.空進,-2.空出, -3.多翻空, -4.空盈衰出, -5.空損出, -6.強制出場 
進L:=DoLS=or DoLS=3//多進
出L:=DoLS=or DoLS=-or DoLS=or DoLS=or DoLS=6//多出
進S:=DoLS=-or DoLS=-3//空進
出S:=DoLS=-or DoLS=or DoLS<=-or DoLS=-or DoLS=-6//空出

向版主報告此篇 | 查IP位址
Old Post 2010-12-09 19:21
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
yisong
資深會員

註冊日期: Jan 2010
來  自:
文章數量: 137

引用:
最初由 cgjj 發表
因為多和空之強制出場在同時間, 故需改為這樣
原碼:

強出
:=time>133000;
進L:=多進 and 強出=or barpos=0
出L:=多出 or barpos=0;
進S:=空進 and 強出=or barpos=0;
出S:=空出 or barpos=0;
NowLS:=0//1.多, -1.空, 0.無
DoLS:C*0CC:=CHH:=HLL:=L;
----
以下省略---



可以了,謝謝。
下面這行要修改
DoLS:C*0; CC:=C; HH:=H; LL:=L;改成
DoLS:=C*0; CC:=C; HH:=H; LL:=L;
因為非交易訊號變量只能用":="賦值

向版主報告此篇 | 查IP位址
Old Post 2010-12-09 20:11
yisong 現在離線 點選這裡查看 yisong 的個人資料 點選這裡給 yisong 傳送一條短訊 查找更多關於 yisong 的文章 增加 yisong 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 17628

引用:
最初由 yisong 發表
可以了,謝謝。
下面這行要修改
DoLS:C*0; CC:=C; HH:=H; LL:=L;改成
DoLS:=C*0; CC:=C; HH:=H; LL:=L;
因為非交易訊號變量只能用":="賦值



這個是可以忽略的
需改是因為您把此段公式應用於[交易系統]類型的公式
您自己處理知道即可, 不需提出

以一般開發公式的程序來說
通常都是先寫為[技術指標]類型的公式
在其中檢驗過都無誤後
才改為[交易系統]類型的公式
因為在[技術指標]中比較容易偵錯(可標記繪圖和顯示變數值)
會留DoLS顯示, 是為了讓您好核對其數值做檢驗

向版主報告此篇 | 查IP位址
Old Post 2010-12-10 08:57
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
yisong
資深會員

註冊日期: Jan 2010
來  自:
文章數量: 137

引用:
最初由 cgjj 發表
這個是可以忽略的
需改是因為您把此段公式應用於[交易系統]類型的公式
您自己處理知道即可, 不需提出

以一般開發公式的程序來說
通常都是先寫為[技術指標]類型的公式
在其中檢驗過都無誤後
才改為[交易系統]類型的公式
因為在[技術指標]中比較容易偵錯(可標記繪圖和顯示變數值)
會留DoLS顯示, 是為了讓您好核對其數值做檢驗


原來是這樣,多學了一課,謝謝

向版主報告此篇 | 查IP位址
Old Post 2010-12-10 09:12
yisong 現在離線 點選這裡查看 yisong 的個人資料 點選這裡給 yisong 傳送一條短訊 查找更多關於 yisong 的文章 增加 yisong 至你的好友列表 編輯/刪除訊息 引用回覆
yisong
資深會員

註冊日期: Jan 2010
來  自:
文章數量: 137

引用:
最初由 cgjj 發表
因為多和空之強制出場在同時間, 故需改為這樣
原碼:

強出
:=time>133000;
進L:=多進 and 強出=or barpos=0
出L:=多出 or barpos=0;
進S:=空進 and 強出=or barpos=0;
出S:=空出 or barpos=0;
NowLS:=0//1.多, -1.空, 0.無
DoLS:C*0CC:=CHH:=HLL:=L;
Do進:=進L-進SDo出:=出L-出S;
損控:=30控盈基:=50控盈衰率:=33/100;
for 
i=1 to datacount do begin
  
if NowLS=0 then begin
    NowLS
:=Do進[i]; DoLS[i]:=NowLSMax盈:=0;
    if 
NowLS<>0 then 進價:=CC[i];
  
end else begin
    
if NowLS=-Do進[ithen begin
      NowLS
:=Do進[i]; DoLS[i]:=NowLS*3進價:=CC[i]; Max盈:=0//反手



請教一下,如果需要符合進L條件後過進L條件那根K棒高點才買進的話要怎麼修改呢?
試了很多方式都不行,只好請版主幫忙一下了,謝謝

向版主報告此篇 | 查IP位址
Old Post 2011-05-22 21:42
yisong 現在離線 點選這裡查看 yisong 的個人資料 點選這裡給 yisong 傳送一條短訊 查找更多關於 yisong 的文章 增加 yisong 至你的好友列表 編輯/刪除訊息 引用回覆
全部時間均為台灣時間, 現在時間為17:36 發表新主題    回覆主題
總頁數 (5): « 1 2 [3] 4 5 »   上一主題   下一主題
顯示可列印版本 | 訂閱此主題

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
HTML語法禁止
vB 語法核准
表情符號核准
貼圖語法[IMG]核准
 

本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。

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

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.  聯絡我們