![]() |
總頁數 (3): [1] 2 3 » 在這個頁面顯示本主題全部的 33 個文章 |
奇狐社區論壇 (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=16808)
請問如果要限制交易次數條件該怎麼寫呢?
原碼:
強出:=TIME>=132000;
限進:=TIME>=130000;
多進:=B1 and 強出=0 and 限進=0 or barpos=0;
多出:=多補 or barpos=0;
空進:=S1 and 強出=0 and 限進=0 or barpos=0;
空出:=空補 or barpos=0;
進場:=多進-空進;
出場:=多出-空出;
控損:=30;
控利:=60;
進價:=0;
CC:=C;
多空:=0; //1.多 -1.空 0.無
進出:=C*0 NOAXIS;
盈虧:=C*0 linethick;
for i = 1 to datacount do begin
if 多空=0 then begin
多空:=進場[i]; 進出[i]:=多空;
if 多空<>0 then 進價:=CC[i];
end else if 多空<>0 then begin
盈虧[i]:=(CC[i]-進價)*多空;
if 強出[i] then begin
進出[i]:=多空*5; 多空:=0;
end else if 多空=出場[i] then begin
進出[i]:=多空*2; 多空:=0;
end else if 盈虧[i]>=控利 then begin
進出[i]:=多空*3; 多空:=0;
end else if 盈虧[i]<=-控損 then begin
進出[i]:=多空*4; 多空:=0;
end;
end;
end;
進L:=進出=1; //多進
進S:=進出=-1; //空進
出L:=進出=2 or 進出=3 or 進出=4 or 進出=5; //多出
出S:=進出=-2 or 進出=-3 or 進出=-4 or 進出=-5; //空出
ENTERLONG:進L; //多進
ENTERSHORT:進S; //空進
EXITLONG:出L; //多出
EXITSHORT:出S; //空出
//[進出] 這變數值代表意義如下:
//1.多單進場, 2.多單出場, 3.多控利出, 4.多控損出, 5.強制出場
//-1.空單進場,-2.空單出場,-3.空控利出, -4.空控損出, -5.強制出場
回覆: 請問如果要限制交易次數條件該怎麼寫呢?
引用:
最初由 sync 發表
原碼:
強出:=TIME>=132000;
限進:=TIME>=130000;
多進:=B1 and 強出=0 and 限進=0 or barpos=0;
多出:=多補 or barpos=0;
空進:=S1 and 強出=0 and 限進=0 or barpos=0;
空出:=空補 or barpos=0;
進場:=多進-空進;
出場:=多出-空出;
控損:=30;
控利:=60;
進價:=0;
CC:=C;
多空:=0; //1.多 -1.空 0.無
進出:=C*0 NOAXIS;
盈虧:=C*0 linethick;
for i = 1 to datacount do begin
if 多空=0 then begin
多空:=進場[i]; 進出[i]:=多空;
if 多空<>0 then 進價:=CC[i];
end else if 多空<>0 then begin
盈虧[i]:=(CC[i]-進價)*多空;
if 強出[i] then begin
進出[i]:=多空*5; 多空:=0;
end else if 多空=出場[i] then begin
進出[i]:=多空*2; 多空:=0;
end else if 盈虧[i]>=控利 then begin
進出[i]:=多空*3; 多空:=0;
end else if 盈虧[i]<=-控損 then begin
進出[i]:=多空*4; 多空:=0;
end;
end;
end;
進L:=進出=1; //多進
進S:=進出=-1; //空進
出L:=進出=2 or 進出=3 or 進出=4 or 進出=5; //多出
出S:=進出=-2 or 進出=-3 or 進出=-4 or 進出=-5; //空出
ENTERLONG:進L; //多進
ENTERSHORT:進S; //空進
EXITLONG:出L; //多出
EXITSHORT:出S; //空出
//[進出] 這變數值代表意義如下:
//1.多單進場, 2.多單出場, 3.多控利出, 4.多控損出, 5.強制出場
//-1.空單進場,-2.空單出場,-3.空控利出, -4.空控損出, -5.強制出場
原碼:
.........請見後續修正過的範例........
Re:另外,測試結果停損停利訊號要收盤價達到才會出現訊號,而非觸價就出現???
該段程式是用收盤價來算盈虧, 收盤價盤中是會浮動的
對於評測來說沒有對錯
也有人用最嚴格的 H 和 L 來算盈虧 (最壞)
看您自己想要如何算?如何用?
不同方式撰寫公式的考量不同
引用:
最初由 cgjj 發表
Re:另外,測試結果停損停利訊號要收盤價達到才會出現訊號,而非觸價就出現???
該段程式是用收盤價來算盈虧, 收盤價盤中是會浮動的
對於評測來說沒有對錯
也有人用最嚴格的 H 和 L 來算盈虧 (最壞)
看您自己想要如何算?如何用?
不同方式撰寫公式的考量不同
引用:
最初由 sync 發表
謝謝版大的指導!
請問所謂最嚴格的 H 和 L 來算盈虧 (最壞),指的是作多時停損停利用L來判斷,而作空時停損停利用H來判斷,是這意思嗎?
如此一來是否就可以達到觸價停損停利的功能?即當根K棒H、L觸及停損停利條件訊號就不會消失了?
可以請版大依此範例改寫程式碼給小弟參考嗎?
謝謝。
回覆: 回覆: 請問如果要限制交易次數條件該怎麼寫呢?
引用:
最初由 cgjj 發表
加個計數器判斷就可, 範例如下:
原碼:
強出:=TIME>=132000;
限進:=TIME>=130000;
多進:=B1 and 強出=0 and 限進=0 or barpos=0;
多出:=多補 or barpos=0;
空進:=S1 and 強出=0 and 限進=0 or barpos=0;
空出:=空補 or barpos=0;
進場:=多進-空進;
出場:=多出-空出;
控損:=30;
控利:=60;
進價:=0;
CC:=C;
多空:=0; //1.多 -1.空 0.無
進出:=C*0 NOAXIS;
盈虧:=C*0 linethick;
DECK:=date<>ref(date,1) or barpos=1;
for i = 1 to datacount do begin
if DECK then CountN:=0;
if 多空=0 then begin
...............略...............
回覆: 回覆: 回覆: 請問如果要限制交易次數條件該怎麼寫呢?
引用:
最初由 sync 發表
版大您好:
編譯時出現語法錯誤:
if DECK then CountN:=0;
請您再檢查一下,謝謝!!!
引用:
最初由 cgjj 發表
只要控價不會浮動
那麼 H>控價 或 L<控價 , 一但成立就不會消失
因為 H值只會越來越高, L值只會越來越低
把這個弄清楚後, 您的問題自然就不再是個問題了
想想盤中一根K棒
High價和Low價如何變化
Open價和Close價如何變化
重點是
您指標的運算規則和訊號計算, 本身要能符合這特性
引用:
最初由 sync 發表
依此例控價就是固定的值,不會浮動:
控損:=30;
控利:=60;
依實際交易情形來看:
作多觸價停利應該是H>=進場價+60
作多觸價停損應該是L<=進場價-30
作空觸價停利應該是L<=進場價-60
作空觸價停損應該是H>=進場價+30
可以麻煩版大寫出程式語法給大家參考嗎?
小弟抓破頭實在也想不出來???
如果可以的話,請用第一篇原來po的原碼改寫即可{不用再限制交易次數},謝謝,感恩!!!
原碼:
.........請見後續修正過的範例........
想法可以化為程式指標,但是有想法不一定有能力寫出來!!!
基本語法相信可以很快學會,較困難的版大會提供協助的,版大謝謝您!!!
奇狐擁有強大的功能,相信有cgjj版大的協助可以幫助更多有想法卻不太會寫程式的人加入奇狐的行列!!!
cgjj版大您好:
經實際測試發現計數器好像有問題,
3次交易之後還是會出現訊號。
3次之後出現的訊號然後下一根K棒平倉,有時候又像沒有計數器一樣正常出訊與平倉.......
不知問題在哪兒?
或許是我程式本身的問題?
可以先請版大檢查測試一下計數器的語法有問題嗎?
謝謝!
引用:
最初由 sync 發表
cgjj版大您好:
經實際測試發現計數器好像有問題,
3次交易之後還是會出現訊號。
3次之後出現的訊號然後下一根K棒平倉,有時候又像沒有計數器一樣正常出訊與平倉.......
不知問題在哪兒?
或許是我程式本身的問題?
可以先請版大檢查測試一下計數器的語法有問題嗎?
謝謝!
原碼:
強出:=TIME>=132000;
限進:=TIME>=130000;
多進:=B1 and 強出=0 and 限進=0 or barpos=0;
多出:=多補 or barpos=0;
空進:=S1 and 強出=0 and 限進=0 or barpos=0;
空出:=空補 or barpos=0;
進場:=多進-空進;
出場:=多出-空出;
控損:=30;
控利:=60;
進價:=0;
CC:=C; HH:=H; LL:=L;
多空:=0; //1.多 -1.空 0.無
進出:=C*0 NOAXIS;
DECK:=date<>ref(date,1) or barpos=1;
for i = 1 to datacount do begin
if DECK[i] then CountN:=0;
if 多空=0 then begin
if 進場[i]<>0 and CountN<3 then begin
多空:=進場[i]; 進出[i]:=多空;
進價:=CC[i]; CountN:=CountN+1;
end;
end else if 多空<>0 then begin
損HL:=LL[i]*(多空=1)+HH[i]*(多空=-1);
盈HL:=HH[i]*(多空=1)+LL[i]*(多空=-1);
損T:=(損HL-進價)*多空;
盈T:=(盈HL-進價)*多空;
if 強出[i] then begin
進出[i]:=多空*5; 多空:=0;
end else if 多空=出場[i] then begin
進出[i]:=多空*2; 多空:=0;
end else if 損T<=-控損 then begin
進出[i]:=多空*4; 多空:=0;
end else if 盈T>=控利 then begin
進出[i]:=多空*3; 多空:=0;
end;
end;
end;
//[進出] 這變數值代表意義如下:
//1.多單進場, 2.多單出場, 3.多控利出, 4.多控損出, 5.強制出場
//-1.空單進場,-2.空單出場,-3.空控利出, -4.空控損出, -5.強制出場
增加多轉空、空轉多條件?
cgjj 版主您好:
1、損盈計算我想用開盤價當進價,是否只要將CC:=C;改成CC:=O;就可以了?
2、小弟想增加多轉空、空轉多條件?
增加:
6.空出轉多
-6.多出轉空
//[進出] 這變數值代表意義如下:
//1.多單進場, 2.多單出場, 3.多控利出, 4.多控損出, 5.強制出場
//-1.空單進場,-2.空單出場,-3.空控利出, -4.空控損出, -5.強制出場
小弟自行嘗試將以下程式加入到程式最後:
end else if 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=-多空*6; 多空:=-多空;
發現多轉空、空轉多訊號應該沒問題,可是不會計算此次交易次數,
而且損盈計算會出現錯誤,造成不到停損點數卻出現停損出場訊號,
再次麻煩總版主幫忙,謝謝。
回覆: 增加多轉空、空轉多條件?
引用:
最初由 sync 發表
cgjj 版主您好:
1、損盈計算我想用開盤價當進價,是否只要將CC:=C;改成CC:=O;就可以了?
2、小弟想增加多轉空、空轉多條件?
增加:
6.空出轉多
-6.多出轉空
//[進出] 這變數值代表意義如下:
//1.多單進場, 2.多單出場, 3.多控利出, 4.多控損出, 5.強制出場
//-1.空單進場,-2.空單出場,-3.空控利出, -4.空控損出, -5.強制出場
小弟自行嘗試將以下程式加入到程式最後:
end else if 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=-多空*6; 多空:=-多空;
發現多轉空、空轉多訊號應該沒問題,可是不會計算此次交易次數,
而且損盈計算會出現錯誤,造成不到停損點數卻出現停損出場訊號,
再次麻煩總版主幫忙,謝謝。
原碼:
強出:=TIME>=132000;
限進:=TIME>=130000;
多進:=B1 and 強出=0 and 限進=0 or barpos=0;
多出:=多補 or barpos=0;
空進:=S1 and 強出=0 and 限進=0 or barpos=0;
空出:=空補 or barpos=0;
進場:=多進-空進;
出場:=多出-空出;
控損:=30;
控利:=60;
進價:=0;
OO:=O; CC:=C; HH:=H; LL:=L;
多空:=0; //1.多 -1.空 0.無
進出:=C*0 NOAXIS;
DECK:=date<>ref(date,1) or barpos=1;
for i = 1 to datacount do begin
if DECK[i] then CountN:=0;
if 多空=0 then begin
if 進場[i]<>0 and CountN<3 then begin
多空:=進場[i]; 進出[i]:=多空;
進價:=OO[i]; CountN:=CountN+1;
end;
end else if 多空<>0 then begin
損HL:=LL[i]*(多空=1)+HH[i]*(多空=-1);
盈HL:=HH[i]*(多空=1)+LL[i]*(多空=-1);
損T:=(損HL-進價)*多空;
盈T:=(盈HL-進價)*多空;
if 強出[i] then begin
進出[i]:=多空*5; 多空:=0;
end else if 多空=出場[i] then begin
進出[i]:=多空*2; 多空:=0;
end else if 損T<=-控損 then begin
進出[i]:=多空*4; 多空:=0;
end else if 盈T>=控利 then begin
進出[i]:=多空*3; 多空:=0;
end else if 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=-多空*6; 多空:=-多空;
進價:=OO[i]; CountN:=CountN+1;
end;
end;
end;
回覆: 回覆: 增加多轉空、空轉多條件?
引用:
最初由 cgjj 發表
其中的此段程式
end else if 多空=空進[i] or 多空=-多進[i] then begin
...............
end;
其位置是否要往前調整, 視您自行想法來決擇拿捏了
全部時間均為台灣時間, 現在時間為15:14 | 總頁數 (3): [1] 2 3 » 在這個頁面顯示本主題全部的 33 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.