|
abcd15678
初級會員
註冊日期: Jan 2005
來 自:
文章數量: 13 |
引用: 最初由 yisong 發表
請教一下,如果需要符合進L條件後過進L條件那根K棒高點才買進的話要怎麼修改呢?
試了很多方式都不行,只好請版主幫忙一下了,謝謝
.....
.....
多進:=多單條件=0 and c>ref(h,BARSLAST(多單條件));//加上去應該就行了
強出:=time>133000;
進L:=多進 and 強出=0 or barpos=0;
.....
.....
|
|
向版主報告此篇 | |
|
2011-05-23 04:55 |
|
|
| |
|
yisong
資深會員
註冊日期: Jan 2010
來 自:
文章數量: 137 |
引用: 最初由 abcd15678 發表
.....
.....
多進:=多單條件=0 and c>ref(h,BARSLAST(多單條件));//加上去應該就行了
強出:=time>133000;
進L:=多進 and 強出=0 or barpos=0;
.....
.....
不好意思,試過了還是不行,說是與法有誤,再找時間再試看看是哪裡出問題,不過還是先感謝您。
|
|
向版主報告此篇 | |
|
2011-05-25 23:05 |
|
|
| |
|
84380487
初級會員
註冊日期: Jan 2011
來 自:
文章數量: 13 |
引用: 最初由 cgjj 發表
//修正後的完整原碼:
//關鍵字:交易範例
原碼:
進L:=多進 or barpos=0;
出L:=多出 or barpos=0;
進S:=空進 or barpos=0;
出S:=空出 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.空損出
您好!
在這篇文章中找到正好有我的需求,就把程式拿來套用確實可行!感謝您!
但目前的程式套上之後,在觸發點會出現訊號沒錯,但在主圖上訊號與訊號之間沒有劃出線,請問可以加上什麼條件使他會劃出線呢?
|
|
向版主報告此篇 | |
|
2012-05-25 10:25 |
|
|
| |
|
84380487
初級會員
註冊日期: Jan 2011
來 自:
文章數量: 13 |
引用: 最初由 cgjj 發表
//參考範例:(接續前段程式之後)
MMSS:=ref(DoLS,barslast(DoLS<>0));
MMCC:=ref(C,barslast(DoLS<>0));
RR:=MMSS=1 or MMSS=3;
PARTLINE(RR and ref(RR,1),MMCC) colorred;
GG:=MMSS=-1 or MMSS=-3;
PARTLINE(GG and ref(GG,1),MMCC) colorgreen;
您好!
套用之後很成功,非常感謝您的協助!謝謝
|
|
向版主報告此篇 | |
|
2012-05-28 09:13 |
|
|
| |
|
海參威
中級會員
註冊日期: Jul 2004
來 自: 臺北市
文章數量: 72 |
引用: 最初由 cgjj 發表
//修正後的完整原碼:
//關鍵字:交易範例
原碼:
進L:=多進 or barpos=0;
出L:=多出 or barpos=0;
進S:=空進 or barpos=0;
出S:=空出 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.空損出
非常謝謝你提供的程式碼
因不懂程式,勞煩您再幫我解決
現我實測時碰上另一問題
以作多為例
一:我的認知及需求"停損"是立刻出場也就是當根K棒的"L"(當根K棒進行中)
符合"停損"條件(不等該根K棒收盤)
現遇上的是
1:當根K棒"進行中"碰到同時有"多翻空"的條件時(雖未完成K棒),"停損"無法即時成立
2:當根K棒"完成時"符合"停損"也符合"多翻空"時,"多翻空"的條件無法成立
我的需求是"停損"是當根K棒進行中,或不管有無"多翻空"的條件時(雖未完成K棒)
就"成立"直到此K棒完成,
或完成K棒時未有"多翻空(作多條件)"條件,時"成立",
"多翻空"當K棒完成時"多翻空(作多條件)成立","停損"就不同時成立.
二:"多出"及"盈出"同"一"狀況
作空與作多,同問題
勞煩您,辛苦了...感謝....
__________________
.....大道至簡.....
真言一句話....
不傳千編文.....
http://hcw8845.blogspot.com
|
|
向版主報告此篇 | |
|
2012-05-30 09:04 |
|
|
| |
|
84380487
初級會員
註冊日期: Jan 2011
來 自:
文章數量: 13 |
引用: 最初由 海參威 發表
非常謝謝你提供的程式碼
因不懂程式,勞煩您再幫我解決
現我實測時碰上另一問題
以作多為例
一:我的認知及需求"停損"是立刻出場也就是當根K棒的"L"(當根K棒進行中)
符合"停損"條件(不等該根K棒收盤)
現遇上的是
1:當根K棒"進行中"碰到同時有"多翻空"的條件時(雖未完成K棒),"停損"無法即時成立
2:當根K棒"完成時"符合"停損"也符合"多翻空"時,"多翻空"的條件無法成立
我的需求是"停損"是當根K棒進行中,或不管有無"多翻空"的條件時(雖未完成K棒)
就"成立"直到此K棒完成,
或完成K棒時未有"多翻空(作多條件)"條件,時"成立",
"多翻空"當K棒完成時"多翻空(作多條件)成立","停損"就不同時成立.
二:"多出"及"盈出"同"一"狀況
作空與作多,同問題
勞煩您,辛苦了...感謝....
您好!
我也遇到同樣的問題!
我希望的方式是,假如本來是「多」,當行情往下走觸碰停損之後停損條件成立就空手出場,當停損條件成立後即強制出場,不會因為當根k棒尚未走完造成其他訊號產生時而又重新成立!假如當根k棒走完並沒有「多翻空」,也就是回到原來多的走勢,那空手就持續空手,等到下一個「多條件成立」時,就「多單進場」。假如當根k棒走完之後出現「多翻空」,這時條件成立所以「空單進場」。反之亦如此!謝謝!
|
|
向版主報告此篇 | |
|
2012-05-30 10:13 |
|
|
| |
|
cgjj
總版主
註冊日期: Oct 2003
來 自:
文章數量: 17628 |
引用: 最初由 海參威 發表
非常謝謝你提供的程式碼
因不懂程式,勞煩您再幫我解決
現我實測時碰上另一問題
以作多為例
一:我的認知及需求"停損"是立刻出場也就是當根K棒的"L"(當根K棒進行中)
符合"停損"條件(不等該根K棒收盤)
現遇上的是
1:當根K棒"進行中"碰到同時有"多翻空"的條件時(雖未完成K棒),"停損"無法即時成立
2:當根K棒"完成時"符合"停損"也符合"多翻空"時,"多翻空"的條件無法成立
我的需求是"停損"是當根K棒進行中,或不管有無"多翻空"的條件時(雖未完成K棒)
就"成立"直到此K棒完成,
或完成K棒時未有"多翻空(作多條件)"條件,時"成立",
"多翻空"當K棒完成時"多翻空(作多條件)成立","停損"就不同時成立.
二:"多出"及"盈出"同"一"狀況
作空與作多,同問題
勞煩您,辛苦了...感謝....
引用: 最初由 84380487 發表
您好!
我也遇到同樣的問題!
我希望的方式是,假如本來是「多」,當行情往下走觸碰停損之後停損條件成立就空手出場,當停損條件成立後即強制出場,不會因為當根k棒尚未走完造成其他訊號產生時而又重新成立!假如當根k棒走完並沒有「多翻空」,也就是回到原來多的走勢,那空手就持續空手,等到下一個「多條件成立」時,就「多單進場」。假如當根k棒走完之後出現「多翻空」,這時條件成立所以「空單進場」。反之亦如此!謝謝!
評測和實做, 處理上有時是需不一樣的
評測歷史K棒 >>
當 K根 同時有停損訊和反手訊的狀況, 方式選擇:
1.以停損處理, 反手訊號將其忽略
(也就是停損訊號需判斷在前)
2.直接反手做(也就是反手訊號需判斷在前)
3,先做停損再做反進(若停損價和反手進價一樣,則與2相同)
那一種方式洽當, 要看您指標訊號本身的特性(規則)
若這根之反手訊, 未用這根的值計算, 或僅用到這根之開盤價
那麼可能方式2較適合(因為K棒一開始就決定)
若反手訊是依賴當根 C,H,L,V 其中一個值來決定, 那麼問題就很複雜
倘若停損價當根又會浮動, 那麼更複雜...
停損和反手誰先誰後評測上可能都有爭議, 見仁見智去決擇了
(處理先後與採用方法見仁見智,方法不同評測結果就不同)
一般來說
反手訊和停損價, 都未用這根的值計算(或僅用到這根之開盤價)
碰到同時有停損訊和反手訊在同根的狀況, 會直接採用反手動作
(因為反手訊是該根一開始就成立, 停損則不一定)
如此, 評測上和實做不會有前面說的困擾(因為K棒一開始就決定)
註:必須指標本身設計的特性能符合
若非如此
盤中則可能是停損先成立, 但亦也有可能是反手先成立
甚至當K棒未完成時, 反手訊成不成立可能尚未確立(會變)
這樣...在評測上的考量就隨人變異很大, 實做上必須多所因應
前段的程式碼
反手是可以改在停損之後(也就是先以停損處理, 反手訊號將其忽略)
但相對來說, 等於是不承認之前定義的反手規則了
是改訊號規則比較好, 還是改判斷次序比較好, 還是改...
可能要自行多思量評估決擇囉 ...
|
|
向版主報告此篇 | |
|
2012-05-30 11:54 |
|
|
| |
|
84380487
初級會員
註冊日期: Jan 2011
來 自:
文章數量: 13 |
引用: 最初由 cgjj 發表
評測和實做, 處理上有時是需不一樣的
評測歷史K棒 >>
當 K根 同時有停損訊和反手訊的狀況, 方式選擇:
1.以停損處理, 反手訊號將其忽略
(也就是停損訊號需判斷在前)
2.直接反手做(也就是反手訊號需判斷在前)
3,先做停損再做反進(若停損價和反手進價一樣,則與2相同)
您好!
感謝您播冗花這麼多時間來回答我的問題!萬分感謝!
以您提供的123條件中,在我實作裡遇到的問題中,我想應該是第1和第3個的綜合是我的需求!
目前我的進場方式為,當根k棒產生訊號之後,下一根k棒的開盤價進場!也就是說,我希望的停損與反手的方式是,倘若本來是「多」,而走勢往下行進,無論是當根k棒或是之後的k棒組合,只要達到停損條件則強制停損出場,比如我設定30點停損,當進場之後損失30點則停損直接成立!出場空手之後,直到出現下一個多或空的訊號再行進場!也就是說,假設本來是「多」,突然出現走勢急往下,當根k棒觸及停損則停損直接成立,而此根k棒走完之後,若是有出現訊號,則會在下一根的開盤價進場!謝謝!
流程如下:
1.進場-->觸及停損價或停利價則強制出場-->空手-->之後再出現訊號則再進場
2.進場-->「當根k棒」觸及停損價或停利價則強制出場-->空手-->「當根k棒」出現訊號則於下一根開盤價進場,若無訊號則繼續空手直到下個訊號出現
謝謝!
|
|
向版主報告此篇 | |
|
2012-05-30 13:06 |
|
|
| |
|
海參威
中級會員
註冊日期: Jul 2004
來 自: 臺北市
文章數量: 72 |
引用: 最初由 cgjj 發表
評測和實做, 處理上有時是需不一樣的
評測歷史K棒 >>
當 K根 同時有停損訊和反手訊的狀況, 方式選擇:
1.以停損處理, 反手訊號將其忽略
(也就是停損訊號需判斷在前)
2.直接反手做(也就是反手訊號需判斷在前)
3,先做停損再做反進(若停損價和反手進價一樣,則與2相同)
那一種方式洽當, 要看您指標訊號本身的特性(規則)
若這根之反手訊, 未用這根的值計算, 或僅用到這根之開盤價
那麼可能方式2較適合(因為K棒一開始就決定)
若反手訊是依賴當根 C,H,L,V 其中一個值來決定, 那麼問題就很複雜
倘若停損價當根又會浮動, 那麼更複雜...
停損和反手誰先誰後評測上可能都有爭議, 見仁見智去決擇了
(處理先後與採用方法見仁見智,方法不同評測結果就不同)
一般來說
反手訊和停損價, 都未用這根的值計算(或僅用到這根之開盤價)
碰到同時有停損訊和反手訊在同根的狀況, 會直接採用反手動作
(因為反手訊是該根一開始就成立, 停損則不一定)
如此, 評測上和實做不會有前面說的困擾(因為K棒一開始就決定)
註:必須指標本身設計的特性能符合
若非如此
盤中則可能是停損先成立, 但亦也有可能是反手先成立
甚至當K棒未完成時, 反手訊成不成立可能尚未確立(會變)
這樣...在評測上的考量就隨人變異很大, 實做上必須多所因應
前段的程式碼
反手是可以改在停損之後(也就是先以停損處理, 反手訊號將其忽略)
但相對來說, 等於是不承認之前定義的反手規則了
是改訊號規則比較好, 還是改判斷次序比較好, 還是改...
可能要自行多思量評估決擇囉 ...
非常感謝您的回覆
====引用=====
評測和實做, 處理上有時是需不一樣的
評測歷史K棒 >>
當 K根 同時有停損訊和反手訊的狀況, 方式選擇:
1.以停損處理, 反手訊號將其忽略
(也就是停損訊號需判斷在前)
2.直接反手做(也就是反手訊號需判斷在前)
3,先做停損再做反進(若停損價和反手進價一樣,則與2相同)
我的需求:
2.直接反手做
若這根之反手訊, 未用這根的值計算, 或僅用到這根之開盤價
那麼可能方式2較適合(因為K棒一開始就決定)
停損訊只會發生於當根K(此根K進行中)..也就是停損條件成立時(如停損條件=30,當盤中
觸及時),只標記DoLS=-5,就不會再標記別的訊號直到收盤前一筆
而進場訊只用在這根之開盤價,也就是前根的收盤成立"進場訊".
如前根的收盤,停損及進場訊同時並存,則不標停損訊
請教我如何更改及標示..謝謝您了
__________________
.....大道至簡.....
真言一句話....
不傳千編文.....
http://hcw8845.blogspot.com
|
|
向版主報告此篇 | |
|
2012-05-30 15:19 |
|
|
| |
|
cgjj
總版主
註冊日期: Oct 2003
來 自:
文章數量: 17628 |
引用: 最初由 海參威 發表
非常感謝您的回覆
====引用=====
評測和實做, 處理上有時是需不一樣的
評測歷史K棒 >>
當 K根 同時有停損訊和反手訊的狀況, 方式選擇:
1.以停損處理, 反手訊號將其忽略
(也就是停損訊號需判斷在前)
2.直接反手做(也就是反手訊號需判斷在前)
3,先做停損再做反進(若停損價和反手進價一樣,則與2相同)
我的需求:
2.直接反手做
若這根之反手訊, 未用這根的值計算, 或僅用到這根之開盤價
那麼可能方式2較適合(因為K棒一開始就決定)
停損訊只會發生於當根K(此根K進行中)..也就是停損條件成立時(如停損條件=30,當盤中
觸及時),只標記DoLS=-5,就不會再標記別的訊號直到收盤前一筆
而進場訊只用在這根之開盤價,也就是前根的收盤成立"進場訊".
如前根的收盤,停損及進場訊同時並存,則不標停損訊
請教我如何更改及標示..謝謝您了
以那段原碼來說, 它就是直接反手做了
若這根之反手訊, 未用這根的值計算, 或僅用到這根之開盤價
反手訊號是K棒被產生的當下, 就立即被執行了
換言之
在有反手訊號的那根K棒, 根本沒機會跑到停損的部份
那段原碼的特性是
1.進場當根不控損不盈衰 (包含反向進場)
2.進場之後 a.先檢查控損 b.再檢查控盈衰 c.再檢查出場訊
========================================================
例如:
以 均線黃金交叉 當多方進場條件來說
BB:=CROSS(MA(CLOSE,10),MA(CLOSE,20)); //BB值當根會浮動
多進:=ref(BB,1); //取前根算之BB值, "多進" 值當根不會浮動
再將 "多進" 帶入前段程式碼中
BB:=CROSS(MA(CLOSE,10),MA(CLOSE,20));
多進:=ref(BB,1);
進L:=多進
重點在於
多進 不可以直接帶入前面會浮動的 BB
同樣的多轉空, 觸發反手訊號之 "空進", 其也是不能帶入會浮動的
我想您的問題, 是在於把會浮動的 BB 帶入 "多進" 了
|
|
向版主報告此篇 | |
|
2012-05-30 16:27 |
|
|
| |
|
海參威
中級會員
註冊日期: Jul 2004
來 自: 臺北市
文章數量: 72 |
[QUOTE]最初由 cgjj 發表
[B]以那段原碼來說, 它就是直接反手做了
若這根之反手訊, 未用這根的值計算, 或僅用到這根之開盤價
反手訊號是K棒被產生的當下, 就立即被執行了
換言之
在有反手訊號的那根K棒, 根本沒機會跑到停損的部份
那段原碼的特性是
1.進場當根不控損不盈衰 (包含反向進場)
2.進場之後 a.先檢查控損 b.再檢查控盈衰 c.再檢查出場訊
========================================================
謝謝您了...真辛苦您了...
原來我的問題是出在
當根k收盤時 如有控損或盈哀時,同方向又符合進場條件,無法成立
希望能成立進場條件而忽略控損或盈哀訊號
應如何修改..
先謝了...感恩
__________________
.....大道至簡.....
真言一句話....
不傳千編文.....
http://hcw8845.blogspot.com
|
最後由 海參威 在 2012-05-31 08:26 編輯 |
向版主報告此篇 | |
|
2012-05-31 04:58 |
|
|
| |
|
84380487
初級會員
註冊日期: Jan 2011
來 自:
文章數量: 13 |
引用: 最初由 海參威 發表
謝謝您了...真辛苦您了...
原來我的問題是出在
當根k收盤時 如有控損或盈哀時,同方向又符合進場條件,無法成立
希望能成立進場條件而忽略控損或盈哀訊號
應如何修改..
先謝了...感恩 [/B]
您好!我也發現我是相同的問題,就是假設停損和訊號觸發條件成立在同根k棒發生的話,停損會成功沒有問題,但訊號觸發條件卻無法成立!謝謝
|
|
向版主報告此篇 | |
|
2012-05-31 09:07 |
|
|
| |
|
cgjj
總版主
註冊日期: Oct 2003
來 自:
文章數量: 17628 |
引用: 最初由 海參威 發表
..............................
原來我的問題是出在
當根k收盤時 如有控損或盈哀時,同方向又符合進場條件,無法成立
希望能成立進場條件而忽略控損或盈哀訊號
應如何修改..
那段原碼, 並不會有如此結果唷
[多進]之後, 現仍處於多方(未出場)
當再次碰到[多進]條件成立時 <== 以 [多進R] 來稱呼
[多進R] 會被忽略掉, 因為是同方向
但是 [多進R] 那根的盈損控制仍會被跑到
故不會因為 "再次碰到同方向進場訊號" , 導致控損或盈哀不動作
問題的重點, 可能是我前面舉的例子:
若是這樣引入訊號, 就會有困擾
多進:=CROSS(MA(CLOSE,10),MA(CLOSE,20));
進L:=多進; //若K棒未完成, 訊號成立狀態會變(當根進L值會變)
若是改為這樣引入訊號, 就 Ok
多進:=CROSS(MA(CLOSE,10),MA(CLOSE,20)); //計算條件
進L:=ref(多進,1); //取前根計算條件來動作(當根進L值不變)
導入進場訊號, 入那段原碼時...
請先確認導入的進場訊號, 在K棒未完成時, 其是不會變動的
|
|
向版主報告此篇 | |
|
2012-05-31 14:30 |
|
|
| |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|