![]() |
在這個頁面顯示本主題全部的 64 個文章 |
奇狐社區論壇 (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=23473)
績效統計問題
//
IF DATATYPE =11 or DATATYPE =1 or DATATYPE =2 or DATATYPE =3
then VERTLINE(ref(date,1)<>date), LINEDOT,COLORGRAY;
EXPLAIN(1,'==========')colorwhite;
//
SWCK:=TradeDate<>ref(TradeDate,1) or IsRegularFBar or barpos=1;
SP:barslast(SWCK)+1 LINETHICK;
WBC:=SUM((H+L+C*2)/4*V,SP)/SUM(V,SP);
//
direction:=C-ref(c,10);
volatility:=sum(abs(C-ref(C,1)),10);
Efficiency_Ratio:=abs(direction/volatility);
Fastst:=2/(2+1);
Slowst:=2/(30+1);
percentage:=Efficiency_Ratio * (Fastst-Slowst) + Slowst;
Constant:=percentage*percentage;
MM:C linethick;
for i=10+1 to datacount do begin
if SP[i]<=10 then begin
MM[i]:=WBC[i];
end else begin
MM[i]:=MM[i-1]+Constant[i]*(MM[i]-MM[i-1]);
end;
end;
//
XX:=sp>1 and MM>ref(MM,1);
YY:=sp>1 and MM<ref(MM,1);
BB:=REF(XX,1)=0 AND XX;
SS:=REF(YY,1)=0 AND YY;
//
DRAWICON(SP>1 AND BB ,L,'$SA-BS-2B.gif'),PXDN22;
DRAWICON(SP>1 AND SS ,H,'$SA-BS-2S.gif'),pxup42;
DRAWNUMBER(SP>1 AND BB,L,C,2)colorYELLOW pxdn50 shift1;
DRAWNUMBER(SP>1 AND SS,H,C,2)colorGREEN pxup70 shift1;
//績效
KC:=BB;
多進價:REF(C,BARSLAST(KC))LINETHICK;
多獲利:C-多進價 COLORRED;
KB:=SS;
空進價:REF(C,BARSLAST(KB))LINETHICK;
空獲利:空進價-C colorGREEN;
總獲利:SUM(多獲利*KB+空獲利*KC,0)colorcyan;
//解盤
EXPLAINEX(1,'多獲利:',多獲利,2,0)colorred;
EXPLAINEX(1,'空獲利:',空獲利,2,0)colorGREEN;
EXPLAINEX(1,'總獲利:',總獲利,2,0)colorcyan;
版主你好
請協助如下:
1)用於分線,每日分開統計績效
2)每日開盤後未產生訊號前,將多獲利/空獲利/總獲利歸0
3)開始有多空訊號時,才開始統計多獲利/空獲利/總獲利…一直到收盤
註:想了好久還是無法搞定,煩請版主幫忙…..
__________________
chiu
回覆: 績效統計問題
引用:
最初由 a9681054 發表
//
IF DATATYPE =11 or DATATYPE =1 or DATATYPE =2 or DATATYPE =3
then VERTLINE(ref(date,1)<>date), LINEDOT,COLORGRAY;
EXPLAIN(1,'==========')colorwhite;
//
SWCK:=TradeDate<>ref(TradeDate,1) or IsRegularFBar or barpos=1;
SP:barslast(SWCK)+1 LINETHICK;
WBC:=SUM((H+L+C*2)/4*V,SP)/SUM(V,SP);
//
direction:=C-ref(c,10);
volatility:=sum(abs(C-ref(C,1)),10);
Efficiency_Ratio:=abs(direction/volatility);
Fastst:=2/(2+1);
Slowst:=2/(30+1);
percentage:=Efficiency_Ratio * (Fastst-Slowst) + Slowst;
Constant:=percentage*percentage;
MM:C linethick;
for i=10+1 to datacount do begin
if SP[i]<=10 then begin
MM[i]:=WBC[i];
end else begin
MM[i]:=MM[i-1]+Constant[i]*(MM[i]-MM[i-1]);
end;
end;
//
XX:=sp>1 and MM>ref(MM,1);
YY:=sp>1 and MM<ref(MM,1);
BB:=REF(XX,1)=0 AND XX;
SS:=REF(YY,1)=0 AND YY;
//
DRAWICON(SP>1 AND BB ,L,'$SA-BS-2B.gif'),PXDN22;
DRAWICON(SP>1 AND SS ,H,'$SA-BS-2S.gif'),pxup42;
DRAWNUMBER(SP>1 AND BB,L,C,2)colorYELLOW pxdn50 shift1;
DRAWNUMBER(SP>1 AND SS,H,C,2)colorGREEN pxup70 shift1;
//績效
KC:=BB;
多進價:REF(C,BARSLAST(KC))LINETHICK;
多獲利:C-多進價 COLORRED;
KB:=SS;
空進價:REF(C,BARSLAST(KB))LINETHICK;
空獲利:空進價-C colorGREEN;
總獲利:SUM(多獲利*KB+空獲利*KC,0)colorcyan;
//解盤
EXPLAINEX(1,'多獲利:',多獲利,2,0)colorred;
EXPLAINEX(1,'空獲利:',空獲利,2,0)colorGREEN;
EXPLAINEX(1,'總獲利:',總獲利,2,0)colorcyan;
版主你好
請協助如下:
1)用於分線,每日分開統計績效
2)每日開盤後未產生訊號前,將多獲利/空獲利/總獲利歸0
3)開始有多空訊號時,才開始統計多獲利/空獲利/總獲利…一直到收盤
註:想了好久還是無法搞定,煩請版主幫忙…..
每日最後的持有倉位如何處理?
回覆:以台指期來說就統計到1:35,之後再有多空訊號就不再統計
__________________
chiu
引用:
最初由 a9681054 發表
每日最後的持有倉位如何處理?
回覆:以台指期來說就統計到1:35,之後再有多空訊號就不再統計
當日 13:30 有一個多的訊號(之後沒有訊號)
那個這個多訊是否納入獲利計算?以及它的獲利如何計算?
回覆1:是
回覆2:就從那個1:30多訊計算到1:45
__________________
chiu
引用:
最初由 a9681054 發表
當日 13:30 有一個多的訊號(之後沒有訊號)
那個這個多訊是否納入獲利計算?以及它的獲利如何計算?
回覆1:是
回覆2:就從那個1:30多訊計算到1:45
這個指標並非是 多空多空多空...一直反手做!!
會有 空空多空多空 這種情形發生唷...
回覆:這一點我了解
若非您原先預計的進出方式,請先過濾乾淨
訊號沒過濾乾淨前,請勿統計績效!!!
回覆:是我的預計進出方式,原po策略只是個範例會有其它策略
如不考慮上述問題,麻煩版主繼續協助,謝謝
__________________
chiu
引用:
最初由 a9681054 發表
這個指標並非是 多空多空多空...一直反手做!!
會有 空空多空多空 這種情形發生唷...
回覆:這一點我了解
若非您原先預計的進出方式,請先過濾乾淨
訊號沒過濾乾淨前,請勿統計績效!!!
回覆:是我的預計進出方式,原po策略只是個範例會有其它策略
如不考慮上述問題,麻煩版主繼續協助,謝謝
請先過濾乾淨
訊號沒過濾乾淨前,請勿統計績效!!!
回覆:那請教是哪部份沒有過濾乾淨,不是很懂這部份請版主指導一下......
__________________
chiu
引用:
最初由 a9681054 發表
請先過濾乾淨
訊號沒過濾乾淨前,請勿統計績效!!!
回覆:那請教是哪部份沒有過濾乾淨,不是很懂這部份請版主指導一下......
多訊還沒碰到空訊之前,可能又會有多訊
空訊還沒碰到多訊之前,可能又會有空訊
也就是說可能會有同向的重複訊號
回覆:
1)因當日分線不想沿用前一日訊號,而特意改成當日有達到多空條件才出現多空訊號,故會有出現版主所說之情形.
2)主要目的,我想在連續日分線下,各別去統計每日分線自己的多空訊號績效
3)以上補充充說明,不知這樣的需求版主是否可以幫忙完成?
__________________
chiu
引用:
最初由 a9681054 發表
多訊還沒碰到空訊之前,可能又會有多訊
空訊還沒碰到多訊之前,可能又會有空訊
也就是說可能會有同向的重複訊號
回覆:
1)因當日分線不想沿用前一日訊號,而特意改成當日有達到多空條件才出現多空訊號,故會有出現版主所說之情形.
2)主要目的,我想在連續日分線下,各別去統計每日分線自己的多空訊號績效
3)以上補充充說明,不知這樣的需求版主是否可以幫忙完成?
與 1) 無關唷,自己定義的規則,要去好好瞧瞧檢查唷! 例如下圖。
回覆:
看了圖後發現當日不應該會出現多多空的狀況,我的程式設定應是有問題,我自己再檢查一下,後續再跟版主請教,抱歉...
__________________
chiu
與 1) 無關唷,自己定義的規則,要去好好瞧瞧檢查唷! 例如下圖。
正常來說
您必須要為 1) ,加入強制出場的機制,而非交給績效統計來做
回覆:
1)再次檢查一下程式,如版主所說...與 1) 無關
2)那加入強制出場的機制.....這個部份我不會弄,可否請版主幫忙一下?
__________________
chiu
引用:
最初由 a9681054 發表
與 1) 無關唷,自己定義的規則,要去好好瞧瞧檢查唷! 例如下圖。
正常來說
您必須要為 1) ,加入強制出場的機制,而非交給績效統計來做
回覆:
1)再次檢查一下程式,如版主所說...與 1) 無關
2)那加入強制出場的機制.....這個部份我不會弄,可否請版主幫忙一下?
2) 的部分
1.首先要決定在哪一根(時間)做強制平倉
回覆:
用於台指期每天1:40做強制平倉
2.把那根,以及那根之後的所有訊號,都濾除掉
回覆:
OK
3.然後判斷當日是否有進場過(有持倉),若有則在那根給個強制平倉訊號(倉位歸零),若無則不需給強制平倉訊號
回覆:
OK
因能力不足,上述程式可否麻煩版主幫忙協助完成?謝謝
__________________
chiu
引用:
最初由 a9681054 發表
2) 的部分
1.首先要決定在哪一根(時間)做強制平倉
回覆:
用於台指期每天1:40做強制平倉
2.把那根,以及那根之後的所有訊號,都濾除掉
回覆:
OK
3.然後判斷當日是否有進場過(有持倉),若有則在那根給個強制平倉訊號(倉位歸零),若無則不需給強制平倉訊號
回覆:
OK
因能力不足,上述程式可否麻煩版主幫忙協助完成?謝謝
無法連結上
__________________
chiu
引用:
最初由 a9681054 發表
無法連結上
有連上了.....我研究看看.....有不懂之處再請教,謝謝
__________________
chiu
多進:=SP>1 AND BB or barpos=0;
多出:=SP>1 AND SS or barpos=0;
空進:=SP>1 AND SS or barpos=0;
空出:=SP>1 AND BB or barpos=0;
強出:TIME>=133000 ;
進出:C*0; CC:=C;
多空:=0; //1.多 -1.空 0.無
盈虧:c*0;
for i = 1 to datacount do begin
if 多空=0 and 強出[i]=0 then begin
多空:=多進[i]-空進[i]; 進出[i]:=多空;
if 多空<>0 then 進價:=CC[i];
end else if 多空<>0 then begin
盈虧[i]:=(CC[i]-進價)*多空;
if 強出[i] then begin
進出[i]:=多空*4; 多空:=0;
end else begin
if 多空=多出[i] or 多空=-空出[i] then begin
進出[i]:=多空*2; 多空:=0;
end else if 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=多空*3; 多空:=-多空; 進價:=CC[i];
end;
end;
end;
end;
回覆:
1)關於強制平倉問題,經版主提供的連結有看懂了
2)至於上述的交易系統盈虧部份,發現只有空訊時會計算,想加入多訊時也可計算,程式方面再麻煩版主協助,謝謝
__________________
chiu
引用:
最初由 a9681054 發表
多進:=SP>1 AND BB or barpos=0;
多出:=SP>1 AND SS or barpos=0;
空進:=SP>1 AND SS or barpos=0;
空出:=SP>1 AND BB or barpos=0;
強出:TIME>=133000 ;
進出:C*0; CC:=C;
多空:=0; //1.多 -1.空 0.無
盈虧:c*0;
for i = 1 to datacount do begin
if 多空=0 and 強出[i]=0 then begin
多空:=多進[i]-空進[i]; 進出[i]:=多空;
if 多空<>0 then 進價:=CC[i];
end else if 多空<>0 then begin
盈虧[i]:=(CC[i]-進價)*多空;
if 強出[i] then begin
進出[i]:=多空*4; 多空:=0;
end else begin
if 多空=多出[i] or 多空=-空出[i] then begin
進出[i]:=多空*2; 多空:=0;
end else if 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=多空*3; 多空:=-多空; 進價:=CC[i];
end;
end;
end;
end;
回覆:
1)關於強制平倉問題,經版主提供的連結有看懂了
2)至於上述的交易系統盈虧部份,發現只有空訊時會計算,想加入多訊時也可計算,程式方面再麻煩版主協助,謝謝
那是因為~~
除強制平倉外,你是一直都是反手做,沒有 多出 和 空出 的時候!
請把
多出:=SP>1 AND SS or barpos=0;
空出:=SP>1 AND BB or barpos=0;
改為
多出:=barpos=0;
空出:=barpos=0;
回覆:
1)修改後多訊可以計算了
2)再請教版主那每日的多訊+空訊累計總盈虧,是否可以幫忙加入交易系統?謝謝
__________________
chiu
引用:
最初由 a9681054 發表
那是因為~~
除強制平倉外,你是一直都是反手做,沒有 多出 和 空出 的時候!
請把
多出:=SP>1 AND SS or barpos=0;
空出:=SP>1 AND BB or barpos=0;
改為
多出:=barpos=0;
空出:=barpos=0;
回覆:
1)修改後多訊可以計算了
2)再請教版主那每日的多訊+空訊累計總盈虧,是否可以幫忙加入交易系統?謝謝
DEST:=tradedate<>ref(tradedate,1) or barpos=1;
日累盈虧:sum(盈虧*(ABS(進出)>1 or islastbar),barslast(DEST)+1);
回覆:
1)初步測試是可以
2)但套入其它策略,有點小狀況我先自我檢查,後續有問題再跟版主請教,謝謝
__________________
chiu
引用:
最初由 a9681054 發表
DEST:=tradedate<>ref(tradedate,1) or barpos=1;
日累盈虧:sum(盈虧*(ABS(進出)>1 or islastbar),barslast(DEST)+1);
回覆:
1)初步測試是可以
2)但套入其它策略,有點小狀況我先自我檢查,後續有問題再跟版主請教,謝謝
2)但套入其它策略,有點小狀況我先自我檢查,後續有問題再跟版主請教,謝謝
回覆:
1)剛往前回測每日盈虧累計,皆正常沒有問題,謝謝.
2)sum(盈虧*(ABS(進出)>1 or islastbar)這一行意思不了解,請版主幫忙解釋一下.....
__________________
chiu
引用:
最初由 a9681054 發表
2)但套入其它策略,有點小狀況我先自我檢查,後續有問題再跟版主請教,謝謝
回覆:
1)剛往前回測每日盈虧累計,皆正常沒有問題,謝謝.
2)sum(盈虧*(ABS(進出)>1 or islastbar)這一行意思不了解,請版主幫忙解釋一下.....
sum 是加總,barslast(DEST)+1 是加總範圍
ABS(進出)>1 是有[反手]或[強出]的位置
islastbar 是最末根K棒
盈虧*(ABS(進出)>1 or islastbar)
是取 [反手]、[強出]、[最末根] 的盈虧值﹐其餘位置給零
回覆:
1)謝謝版主詳細說明
2)EXPLAINEX(1,'單筆盈虧:',盈虧,0,2)COLORCYAN;
EXPLAINEX(1,'日累盈虧:',日累盈虧,0,2)COLORYELLOW;
問題:小數點有設2位,切換到股票看,解盤區無法顯示小數,感覺好像會被四捨五入,請版主再幫我看一下.......
__________________
chiu
引用:
最初由 a9681054 發表
sum 是加總,barslast(DEST)+1 是加總範圍
ABS(進出)>1 是有[反手]或[強出]的位置
islastbar 是最末根K棒
盈虧*(ABS(進出)>1 or islastbar)
是取 [反手]、[強出]、[最末根] 的盈虧值﹐其餘位置給零
回覆:
1)謝謝版主詳細說明
2)EXPLAINEX(1,'單筆盈虧:',盈虧,0,2)COLORCYAN;
EXPLAINEX(1,'日累盈虧:',日累盈虧,0,2)COLORYELLOW;
問題:小數點有設2位,切換到股票看,解盤區無法顯示小數,感覺好像會被四捨五入,請版主再幫我看一下.......
你參數設錯位了,應該是:
EXPLAINEX(1,'日累盈虧:',日累盈虧,2,0)COLORYELLOW;
回覆:
謝謝版主指正,可以正常顯示了,也感謝多日的大力協助,奇狐的服務...讚!
__________________
chiu
引用:
最初由 a9681054 發表
你參數設錯位了,應該是:
EXPLAINEX(1,'日累盈虧:',日累盈虧,2,0)COLORYELLOW;
回覆:
謝謝版主指正,可以正常顯示了,也感謝多日的大力協助,奇狐的服務...讚!
版主你好
延伸這個主題的程式碼,要取BB和SS成立後下一根開盤價,要怎麼表達?
__________________
chiu
引用:
最初由 a9681054 發表
版主你好
延伸這個主題的程式碼,要取BB和SS成立後下一根開盤價,要怎麼表達?
改
多進:=ref(SP>1 AND BB,1) or barpos=0;
空進:=ref(SP>1 AND SS,1) or barpos=0;
進出:C*0; CC:=C; OO:=O;
if 多空<>0 then 進價:=OO[i];
進出[i]:=多空*3; 多空:=-多空; 進價:=OO[i];
回覆:
好的,我試試看.....有其它狀況再向版主繼續請教
__________________
chiu
//交易系統--條件
強出:TIME>=133000;
多進:=ref(SP>1 AND BB,1) or barpos=0;//測試OK
//VERTLINE(多進);
多出:=ref(C,SP>1 AND SS) or barpos=0;//多進後想取SS的收盤價當多出,NG...需幫忙
//VERTLINE(多出);
空進:=ref(SP>1 AND SS,1) or barpos=0;//測試OK
//VERTLINE(空進);
空出:=ref(C,SP>1 AND BB) or barpos=0;//空進後想取BB的收盤價當空出,NG...需幫忙
回覆:
報告版主
1)多進/空進重改條件用垂直線測試後位置正確
2)但我想加入多出/空出,自設條件後用垂直線測試無法達到想要的位置?請再幫忙
__________________
chiu
引用:
最初由 a9681054 發表
//交易系統--條件
強出:TIME>=133000;
多進:=ref(SP>1 AND BB,1) or barpos=0;//測試OK
//VERTLINE(多進);
多出:=ref(C,SP>1 AND SS) or barpos=0;//多進後想取SS的收盤價當多出,NG...需幫忙
//VERTLINE(多出);
空進:=ref(SP>1 AND SS,1) or barpos=0;//測試OK
//VERTLINE(空進);
空出:=ref(C,SP>1 AND BB) or barpos=0;//空進後想取BB的收盤價當空出,NG...需幫忙
回覆:
報告版主
1)多進/空進重改條件用垂直線測試後位置正確
2)但我想加入多出/空出,自設條件後用垂直線測試無法達到想要的位置?請再幫忙
去看看這兩個部分
ref(C,SP>1 AND SS)
ref(C,SP>1 AND BB)
去想想 ref 函數用法,再看哪裡有錯
回覆:
謝謝版主提醒.....問題已解決
__________________
chiu
請教版主
設進價:CC[i];//輸出值一直=12779
設進價:OO[i];//輸出值為一直=12772
跟下面這行的進價
盈虧[i]:=(CC[i]-進價)*多空;
感覺好像2個進價值是不一樣的東西想不通,麻煩幫我看一下....謝謝
註:如附件圖片箭頭處虛線
__________________
chiu
引用:
最初由 a9681054 發表
請教版主
設進價:CC[i];//輸出值一直=12779
設進價:OO[i];//輸出值為一直=12772
跟下面這行的進價
盈虧[i]:=(CC[i]-進價)*多空;
感覺好像2個進價值是不一樣的東西想不通,麻煩幫我看一下....謝謝
註:如附件圖片箭頭處虛線
不是這樣看的啦~~~
進價這個變數,是個單值,它不是個數列
在迴圈中,它會隨著當前計算不斷的在改變(若有進場)
回覆:了解
你在迴圈外輸出它~~
只會得到,最後一次進場的價,無法看到每一次的
回覆:了解
除非另設一個數列,特別去記錄每個進場位置的進價,否則無法這樣看!
回覆:初學這一部份不太會,我想記錄每個進場價位,麻煩版主指導一下.....謝謝
__________________
chiu
引用:
最初由 a9681054 發表
不是這樣看的啦~~~
進價這個變數,是個單值,它不是個數列
在迴圈中,它會隨著當前計算不斷的在改變(若有進場)
回覆:了解
你在迴圈外輸出它~~
只會得到,最後一次進場的價,無法看到每一次的
回覆:了解
除非另設一個數列,特別去記錄每個進場位置的進價,否則無法這樣看!
回覆:初學這一部份不太會,我想記錄每個進場價位,麻煩版主指導一下.....謝謝
原碼:
將 盈虧:c*0; 改為 盈虧:c*0; Do價:c*0; 將 end; end; end; end; 改為 end; end; end; if 多空<>0 then Do價[i]:=進價; end;
回覆:
有看到進價了,感謝版主指導~
__________________
chiu
盈虧[i]:=(CC[i]-進價)*多空;
上面盈虧計算是...下一根收盤價-進價
需求:
我想修改為...進價當根的收盤價-進價,就會開始計算盈虧,請版主幫忙....謝謝
__________________
chiu
引用:
最初由 a9681054 發表
盈虧[i]:=(CC[i]-進價)*多空;
上面盈虧計算是...下一根收盤價-進價
需求:
我想修改為...進價當根的收盤價-進價,就會開始計算盈虧,請版主幫忙....謝謝
理解錯誤!!!
盈虧[i]:=(CC[i]-進價)*多空;
盈虧是採用當根的收盤價計算唷,也就是 CC[i]
回覆:了解....謝謝
__________________
chiu
引用:
最初由 a9681054 發表
理解錯誤!!!
盈虧[i]:=(CC[i]-進價)*多空;
盈虧是採用當根的收盤價計算唷,也就是 CC[i]
回覆:了解....謝謝
原先配置的
盈虧[i]:=(CC[i]-進價)*多空;
是計算當前這根,尚未做任何單子時的盈虧
是為了判別是否達盈損而計算
若您的用途
是用來看,當根做完所有單子後的盈虧
請將 盈虧[i]:=(CC[i]-進價)*多空; 這行
移到 if 多空<>0 then Do價[i]:=進價; 這行之後
用途不同,配置的位置就會不一樣
回覆:
謝謝版主說明,我試一下......
__________________
chiu
原先配置的
盈虧[i]:=(CC[i]-進價)*多空;
是計算當前這根,尚未做任何單子時的盈虧
是為了判別是否達盈損而計算
若您的用途
是用來看,當根做完所有單子後的盈虧
請將 盈虧[i]:=(CC[i]-進價)*多空; 這行
移到 if 多空<>0 then Do價[i]:=進價; 這行之後
用途不同,配置的位置就會不一樣
回覆:
謝謝版主說明,我試一下......
報告版主
1)盈虧計算移位置後已符合用途
2)但出現新問題,日累盈虧變成一直輸出0
DEST:=tradedate<>ref(tradedate,1) or barpos=1;
日累盈虧:sum(盈虧*(ABS(進出)>1 or islastbar),barslast(DEST)+1)coloryellow;
請版主再幫我看一下?....謝謝
__________________
chiu
引用:
最初由 a9681054 發表
原先配置的
盈虧[i]:=(CC[i]-進價)*多空;
是計算當前這根,尚未做任何單子時的盈虧
是為了判別是否達盈損而計算
若您的用途
是用來看,當根做完所有單子後的盈虧
請將 盈虧[i]:=(CC[i]-進價)*多空; 這行
移到 if 多空<>0 then Do價[i]:=進價; 這行之後
用途不同,配置的位置就會不一樣
回覆:
謝謝版主說明,我試一下......
報告版主
1)盈虧計算移位置後已符合用途
2)但出現新問題,日累盈虧變成一直輸出0
DEST:=tradedate<>ref(tradedate,1) or barpos=1;
日累盈虧:sum(盈虧*(ABS(進出)>1 or islastbar),barslast(DEST)+1)coloryellow;
請版主再幫我看一下?....謝謝
那是因為您有反手的狀況
反手的那根重新進場了,盈虧就會重新算
您把目前的程式碼貼出來吧~~
我再幫你看看怎樣改
回覆:
//條件
強出:TIME>=133000 COLORGREEN;
多進:REF(SP>1 AND BB,1) or BARPOS=0;
多出:=SP>1 AND SS or BARPOS=0;
空進:REF(SP>1 AND SS,1) or BARPOS=0 colorgray;
空出:=SP>1 AND BB or BARPOS=0;
//迴圈
進出:C*0 colorwhite; CC:C COLORWHITE LINETHICK; OO:=O;
多空:0; //1.多 -1.空 0.無
盈虧:C*0 COLORCYAN;
Do價:C*0 COLORCYAN linethick;
for i = 1 to DATACOUNT do begin
IF 多空=0 and 強出[i]=0 then begin
多空:=多進[i]-空進[i]; 進出[i]:=多空;
IF 多空<>0 then 進價:=OO[i];
end else IF 多空<>0 then begin
IF 強出[i] then begin
進出[i]:=多空*3; 多空:=0;
end else begin
IF 多空=多出[i] or 多空=-空出[i] then begin
進出[i]:=-多空*2; 多空:=0;
end else IF 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=多空*3; 多空:=-多空; 進價:=OO[i];
end;
end;
end;
IF 多空<>0 then Do價[i]:=進價; 盈虧[i]:=(CC[i]-進價)*多空;
end;
//盈虧
DEST:=tradedate<>ref(tradedate,1) or barpos=1;
日累盈虧:sum(盈虧*(ABS(進出)>1 or islastbar),barslast(DEST)+1)coloryellow;
__________________
chiu
目前的處理:
反手當根之盈虧,為出方的盈虧(已實現),進方的盈虧不計入(未實現)
如此日累盈虧才能正常累計
回覆
1)非常謝謝版主幫忙....今天2個新問題都解決了
2)想請教版主,在平台爬了很多有關交易系統文章,好像都大同小異,像這種迴圈裡的各項配置,是否有一定的的SOP流程可以提供學習參考?
__________________
chiu
引用:
最初由 a9681054 發表
目前的處理:
反手當根之盈虧,為出方的盈虧(已實現),進方的盈虧不計入(未實現)
如此日累盈虧才能正常累計
回覆
1)非常謝謝版主幫忙....今天2個新問題都解決了
2)想請教版主,在平台爬了很多有關交易系統文章,好像都大同小異,像這種迴圈裡的各項配置,是否有一定的的SOP流程可以提供學習參考?
這兩行您改錯了
IF 強出[i] then begin
進出[i]:=多空*3; 多空:=0;
應該修正為
IF 強出[i] then begin
進出[i]:=多空*4; 多空:=0;
您給的這部分
強出:TIME>=133000 COLORGREEN;
多進:REF(SP>1 AND BB,1) or BARPOS=0;
多出:=SP>1 AND SS or BARPOS=0;
空進:REF(SP>1 AND SS,1) or BARPOS=0 colorgray;
空出:=SP>1 AND BB or BARPOS=0;
並不是在同一根反手做的狀況呀 XD
既然如此,我就不重新答覆了~~
沒有一定的 SOP,有些範例差異其實不小
交易進出方式決定處理方法(不能亂套)
這兩行您改錯了
IF 強出[i] then begin
進出[i]:=多空*3; 多空:=0;
應該修正為
IF 強出[i] then begin
進出[i]:=多空*4; 多空:=0;
回覆:了解
您給的這部分
強出:TIME>=133000 COLORGREEN;
多進:REF(SP>1 AND BB,1) or BARPOS=0;
多出:=SP>1 AND SS or BARPOS=0;
空進:REF(SP>1 AND SS,1) or BARPOS=0 colorgray;
空出:=SP>1 AND BB or BARPOS=0;
並不是在同一根反手做的狀況呀 XD
既然如此,我就不重新答覆了~~
回覆:OK
沒有一定的 SOP,有些範例差異其實不小
交易進出方式決定處理方法(不能亂套)
回覆:了解
再次感謝....版主詳細的說明
__________________
chiu
end else IF 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=多空*3; 多空:=-多空; 進價:=OO[i];
回覆:
請教版主,什麼狀況下會發生進出[i]:=多空*3 ?
__________________
chiu
引用:
最初由 a9681054 發表
end else IF 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=多空*3; 多空:=-多空; 進價:=OO[i];
回覆:
請教版主,什麼狀況下會發生進出[i]:=多空*3 ?
//[進出] 這變數值代表意義如下:
//1.多進, 2.多出, 3.多翻空, 4.多強出
//-1.空場,-2.空出,-3.空翻空多, -4.空強出
你現在沒有同根反手做,所以不會出現 3 或 -3
回覆:了解....謝謝
__________________
chiu
//交易-條件
多空:0 colorgray; //1.多 -1.空 0.無
強出:TIME>=133000 colorgreen;
多進:REF(SP>1 AND BB,1) or BARPOS=0;
多出:=SP>1 AND SS or BARPOS=0;
空進:REF(SP>1 AND SS,1) or BARPOS=0 colorgreen;
空出:=SP>1 AND BB or BARPOS=0;
進出:C*0 colorwhite; CC:=C; OO:=O;
Do價:C*0 colorcyan linethick;
盈虧:C*0 colorcyan;
//交易-迴圈
for i = 1 to DATACOUNT do begin
IF 多空=0 and 強出[i]=0 then begin
多空:=多進[i]-空進[i]; 進出[i]:=多空;
IF 多空<>0 then 進價:=OO[i];
盈虧[i]:=(CC[i]-進價)*多空;
end else IF 多空<>0 then begin
盈虧[i]:=(CC[i]-進價)*多空;
IF 強出[i] then begin
進出[i]:=多空*4; 多空:=0;
end else begin
IF 多空=多出[i] or 多空=-空出[i] then begin
進出[i]:=-多空*2; 多空:=0;
end else IF 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=多空*3; 多空:=-多空; 進價:=OO[i];
end;
end;
end;
IF 多空<>0 then Do價[i]:=進價;
end;
報告版主
1)上述程式,發現當每天1:45最後那一根K棒有訊號成立時,會造成隔天第一根K棒產生Do價
2)我的需求是,能每天從自己產生多空訊號後,才開始依多進/空進條件成立時,再啟動Do價....
3)自己弄好久還是無法解決,煩請版主再次幫忙...謝謝
__________________
chiu
引用:
最初由 a9681054 發表
//交易-條件
多空:0 colorgray; //1.多 -1.空 0.無
強出:TIME>=133000 colorgreen;
多進:REF(SP>1 AND BB,1) or BARPOS=0;
多出:=SP>1 AND SS or BARPOS=0;
空進:REF(SP>1 AND SS,1) or BARPOS=0 colorgreen;
空出:=SP>1 AND BB or BARPOS=0;
進出:C*0 colorwhite; CC:=C; OO:=O;
Do價:C*0 colorcyan linethick;
盈虧:C*0 colorcyan;
//交易-迴圈
for i = 1 to DATACOUNT do begin
IF 多空=0 and 強出[i]=0 then begin
多空:=多進[i]-空進[i]; 進出[i]:=多空;
IF 多空<>0 then 進價:=OO[i];
盈虧[i]:=(CC[i]-進價)*多空;
end else IF 多空<>0 then begin
盈虧[i]:=(CC[i]-進價)*多空;
IF 強出[i] then begin
進出[i]:=多空*4; 多空:=0;
end else begin
IF 多空=多出[i] or 多空=-空出[i] then begin
進出[i]:=-多空*2; 多空:=0;
end else IF 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=多空*3; 多空:=-多空; 進價:=OO[i];
end;
end;
end;
IF 多空<>0 then Do價[i]:=進價;
end;
報告版主
1)上述程式,發現當每天1:45最後那一根K棒有訊號成立時,會造成隔天第一根K棒產生Do價
2)我的需求是,能每天從自己產生多空訊號後,才開始依多進/空進條件成立時,再啟動Do價....
3)自己弄好久還是無法解決,煩請版主再次幫忙...謝謝
了解了....謝謝版主提醒
__________________
chiu
報告版主:
新的需求如下:
1)日盤原設1:30強出後,迴圈到收盤就不再運作
2)若想再操作夜盤與日盤區分開跑迴圈,其進出動作條件同日盤
3)夜盤強出設隔日上午4:30
4)盈虧統計,日/夜盤各分別統計(不共用),夜盤盈虧統計到隔日上午4:30止
以上新需求,再次麻煩版主幫忙....謝謝
__________________
chiu
引用:
最初由 a9681054 發表
報告版主:
新的需求如下:
1)日盤原設1:30強出後,迴圈到收盤就不再運作
2)若想再操作夜盤與日盤區分開跑迴圈,其進出動作條件同日盤
3)夜盤強出設隔日上午4:30
4)盈虧統計,日/夜盤各分別統計(不共用),夜盤盈虧統計到隔日上午4:30止
以上新需求,再次麻煩版主幫忙....謝謝
回覆:
可以了....感謝版主幫忙
__________________
chiu
全部時間均為台灣時間, 現在時間為05:39 | 在這個頁面顯示本主題全部的 64 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.