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

奇狐社區論壇 (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=15763)


由 AA0753 在 2011-06-22 23:52 發表:

設定出場

5分k 當沖交易
如何設定一條出場線 讓低點跌破出場線多單出場
多單進場
1...獲利20點內設定賠20點出場
2.. 獲利21-50 設定進場後的高點回檔30點出場
3..獲利51-80 設定進場後的高點回檔1/2出場
4...獲利81點以上 設定進場後的高點回檔1/3出場


由 cgjj 在 2011-06-23 09:07 發表:

回覆: 設定出場

引用:
最初由 AA0753 發表
5分k 當沖交易
如何設定一條出場線 讓低點跌破出場線多單出場
多單進場
1...獲利20點內設定賠20點出場
2.. 獲利21-50 設定進場後的高點回檔30點出場
3..獲利51-80 設定進場後的高點回檔1/2出場
4...獲利81點以上 設定進場後的高點回檔1/3出場



這樣的控盈損方式
您必需寫在訊號處理當中唷(當賣出訊), 而非用 TBS 去做設定

做法大致如下:

進SP:=barslast(進場訊);
進價:=ref(c,進SP);
獲利:=C-進價;
Max利:=HHV(獲利,進SP+1);
MaxHH:=HHV(H,進SP+1);
Max高距:=MaxHH-進價;

出價:=MaxHH-Max高距/3;
出價:=if(Max利<=80,MaxHH-Max高距/2,出價);
出價:=if(Max利<=50,MaxHH-30,出價);
出價:=if(Max利<=20,進價-20,出價);


由 AA0753 在 2011-06-23 10:38 發表:

回覆: 回覆: 設定出場

引用:
最初由 cgjj 發表
這樣的控盈損方式
您必需寫在訊號處理當中唷(當賣出訊), 而非用 TBS 去做設定

做法大致如下:

進SP:=barslast(進場訊);
進價:=ref(c,進SP);
獲利:=C-進價;
Max利:=HHV(獲利,進SP+1);
MaxHH:=HHV(H,進SP+1);
Max高距:=MaxHH-進價;

出價:=MaxHH-Max高距/3;
出價:=if(Max利<=80,MaxHH-Max高距/2,出價);
出價:=if(Max利<=50,MaxHH-30,出價);
出價:=if(Max利<=20,進價-20,出價);



Max利 不是就= Max高距?


由 cgjj 在 2011-06-23 11:03 發表:

回覆: 回覆: 回覆: 設定出場

引用:
最初由 AA0753 發表
Max利 不是就= Max高距?


兩者是有差異的
一個是用收盤價算, 一個是用最高價算

若您都要採最高價算
可將 Max利 置換為 Max高距


由 AA0753 在 2011-06-23 11:49 發表:

回覆: 回覆: 回覆: 回覆: 設定出場

引用:
最初由 cgjj 發表
兩者是有差異的
一個是用收盤價算, 一個是用最高價算

若您都要採最高價算
可將 Max利 置換為 Max高距



了解

那我該如何限定一天只進場2次 就不再進場


由 cgjj 在 2011-06-23 11:58 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 設定出場

引用:
最初由 AA0753 發表
了解

那我該如何限定一天只進場2次 就不再進場



CKDE:=date<>ref(date,1);
DESP:=barslast(CKDE)+1;
進場訊:=進場訊 and sum(進場訊,DESP)<=2;


由 AA0753 在 2011-06-23 15:33 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 設定出場

引用:
最初由 cgjj 發表
CKDE:=date<>ref(date,1);
DESP:=barslast(CKDE)+1;
進場訊:=進場訊 and sum(進場訊,DESP)<=2;




假使交易有多有空
如何限定一天最多停損2次


由 cgjj 在 2011-06-23 17:29 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 設定出場

引用:
最初由 AA0753 發表
假使交易有多有空
如何限定一天最多停損2次



方法一樣呀

CKDE:=date<>ref(date,1);
DESP:=barslast(CKDE)+1;
停損訊:=停損訊 and sum(停損訊,DESP)<=2;


由 AA0753 在 2011-06-24 10:18 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 設定出場

引用:
最初由 cgjj 發表
方法一樣呀

CKDE:=date<>ref(date,1);
DESP:=barslast(CKDE)+1;
停損訊:=停損訊 and sum(停損訊,DESP)<=2;



我該如何把當天停損不超過2次 以及不超過80點
加入以下整合完的買賣動作

CKU2:=(H>賣壓 or barpos=0)-(L<買支 or barpos=0);
CKU3:=(H>壓力 or barpos=0)-(L<支撐 or barpos=0);
強平:=Time=134500;
買1:=買訊 and 強平=0 or barpos=0;
賣1:=賣訊 and 強平=0 or barpos=0;
買賣:=買1-賣1; CC:=C;
進出:C*0 NOAXIS; 多空:=0;
for i=1 to datacount do begin
if 強平[i] then begin
if 多空<>0 then begin
進出[i]:=SGN(多空)*-4; 多空:=0; 強平價:=CC[i];
end;
end else begin
if 買賣[i]<>0 and 買賣[i]<>SGN(多空) then begin
多空:=買賣[i]; 進出[i]:=多空; 進價:=CC[i];
end else if 多空<>0 then begin
if CKU2[i]=-多空 then begin
進出[i]:=-多空*2; 多空:=CKU2[i]*2;
end else if CKU3[i]*2=-多空 then begin
進出[i]:=CKU3[i]*3; 多空:=0;
end;
end;
end;
end;


由 AA0753 在 2011-06-24 10:34 發表:

回覆: 回覆: 設定出場

引用:
最初由 cgjj 發表
這樣的控盈損方式
您必需寫在訊號處理當中唷(當賣出訊), 而非用 TBS 去做設定

做法大致如下:

進SP:=barslast(進場訊);
進價:=ref(c,進SP);
獲利:=C-進價;
Max利:=HHV(獲利,進SP+1);
MaxHH:=HHV(H,進SP+1);
Max高距:=MaxHH-進價;

出價:=MaxHH-Max高距/3;
出價:=if(Max利<=80,MaxHH-Max高距/2,出價);
出價:=if(Max利<=50,MaxHH-30,出價);
出價:=if(Max利<=20,進價-20,出價);



我發現這行 出價:=if(Max利<=50,MaxHH-30,出價);
因為多出場:=L<=出價:
如果當根K棒是40點的紅K且高點為進場後的最高點
那不是反而變成當根K棒就會出場


由 cgjj 在 2011-06-24 10:55 發表:

回覆: 回覆: 回覆: 設定出場

引用:
最初由 AA0753 發表
我發現這行 出價:=if(Max利<=50,MaxHH-30,出價);
因為多出場:=L<=出價:
如果當根K棒是40點的紅K且高點為進場後的最高點
那不是反而變成當根K棒就會出場



那很正常呀
若當根 H 先到, 當根之收盤的價格又跌回 H-30
或符合您定義之 多出場:=L<=出價:
那麼按您的邏輯是應該出場的(當根回檔)


由 AA0753 在 2011-06-24 12:08 發表:

回覆: 回覆: 回覆: 回覆: 設定出場

引用:
最初由 cgjj 發表
那很正常呀
若當根 H 先到, 當根之收盤的價格又跌回 H-30
或符合您定義之 多出場:=L<=出價:
那麼按您的邏輯是應該出場的(當根回檔)




一...如果不設收盤出場而設固定點位(h-30)
在當根K棒中
那至高點回檔就會出場 還是等當K收定才執行出場
二 TBS中 如果當K為進場後最高 且高低>30
如果當K是拉回那出場是正確的
但是如果是收最高根本沒拉回 但是 多出場:=L<=出價:
就怪怪的 績效不對


由 cgjj 在 2011-06-24 12:39 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 設定出場

引用:
最初由 AA0753 發表
一...如果不設收盤出場而設固定點位(h-30)
在當根K棒中
那至高點回檔就會出場 還是等當K收定才執行出場
二 TBS中 如果當K為進場後最高 且高低>30
如果當K是拉回那出場是正確的
但是如果是收最高根本沒拉回 但是 多出場:=L<=出價:
就怪怪的 績效不對



沒有什麼好奇怪的, 也沒有對不對的問題

別忘了, 評測是評估測試
評估測試是不可能與 100% 與事實相符的

沒有任何一套評測系統
能夠做到與事實相符 100% 的準確的績效

因為僅從歷史K棒中, 您無法得知 H價 和 L價 那個價先碰觸

您可能會想, 若用Tick 可知道那個價先來
但過程中價可能會來回超過一次以上
用Tick 最大問題是在於過度理想化
(該 Tick 絕非是您必定所能搶的到的)

千萬要記住 評測<>事實

要如何客觀評測, 每個人拿捏尺度不同
評測沒有標準, 做法不同細節處理不同, 績效表現就會有落差
沒有對錯問題
重點是, 您自己能否接受, 自己選擇的方式
對於自己選擇的方式是否有清楚的了解認識

若採嚴格的方式來看待評測(最大風險)
若該根 H價 或 L價有達盈損出場條件, 就應該出場


由 AA0753 在 2011-06-24 12:51 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 設定出場

引用:
最初由 cgjj 發表
沒有什麼好奇怪的, 也沒有對不對的問題

別忘了, 評測是評估測試
評估測試是不可能與 100% 與事實相符的

沒有任何一套評測系統
能夠做到與事實相符 100% 的準確的績效

因為僅從歷史K棒中, 您無法得知 H價 和 L價 那個價先碰觸

您可能會想, 若用Tick 可知道那個價先來
但過程中價可能會來回超過一次以上
用Tick 最大問題是在於過度理想化
(該 Tick 絕非是您必定所能搶的到的)

千萬要記住 評測<>事實

要如何客觀評測, 每個人拿捏尺度不同
評測沒有標準, 做法不同細節處理不同, 績效表現就會有落差
沒有對錯問題
重點是, 您自己能否接受, 自己選擇的方式
對於自己選擇的方式是否有清楚的了解認識

若採嚴格的方式來看待評測(最大風險)
若該根 H價 或 L價有達盈損出場條件, 就應該出場




版主所言我能理解
問題二中 是因為當根拉長紅 並沒有拉回30點
我該如何修正我的寫法ㄋ


由 cgjj 在 2011-06-24 12:57 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 設定出場

引用:
最初由 AA0753 發表
版主所言我能理解
問題二中 是因為當根拉長紅 並沒有拉回30點
我該如何修正我的寫法ㄋ



只看長紅那根, 您怎知 100% 沒有拉回30 點過呢
行情有時是振盪盤


由 AA0753 在 2011-06-24 13:13 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 設定出場

引用:
最初由 cgjj 發表
只看長紅那根, 您怎知 100% 沒有拉回30 點過呢
行情有時是振盪盤



的確沒辦法100%

上面有一篇還沒回覆 請幫忙
我該如何把當天停損不超過2次 以及不超過80點
加入以下整合完的買賣動作

CKU2:=(H>賣壓 or barpos=0)-(L<買支 or barpos=0);
CKU3:=(H>壓力 or barpos=0)-(L<支撐 or barpos=0);
強平:=Time=134500;
買1:=買訊 and 強平=0 or barpos=0;
賣1:=賣訊 and 強平=0 or barpos=0;
買賣:=買1-賣1; CC:=C;
進出:C*0 NOAXIS; 多空:=0;
for i=1 to datacount do begin
if 強平[i] then begin
if 多空<>0 then begin
進出[i]:=SGN(多空)*-4; 多空:=0; 強平價:=CC[i];
end;
end else begin
if 買賣[i]<>0 and 買賣[i]<>SGN(多空) then begin
多空:=買賣[i]; 進出[i]:=多空; 進價:=CC[i];
end else if 多空<>0 then begin
if CKU2[i]=-多空 then begin
進出[i]:=-多空*2; 多空:=CKU2[i]*2;
end else if CKU3[i]*2=-多空 then begin
進出[i]:=CKU3[i]*3; 多空:=0;
end;
end;
end;
end;


由 cgjj 在 2011-06-27 11:15 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 設定出場

引用:
最初由 AA0753 發表
的確沒辦法100%

上面有一篇還沒回覆 請幫忙
我該如何把當天停損不超過2次 以及不超過80點
加入以下整合完的買賣動作

CKU2:=(H>賣壓 or barpos=0)-(L<買支 or barpos=0);
CKU3:=(H>壓力 or barpos=0)-(L<支撐 or barpos=0);
強平:=Time=134500;
買1:=買訊 and 強平=0 or barpos=0;
賣1:=賣訊 and 強平=0 or barpos=0;
買賣:=買1-賣1; CC:=C;
進出:C*0 NOAXIS; 多空:=0;
for i=1 to datacount do begin
if 強平[i] then begin
if 多空<>0 then begin
進出[i]:=SGN(多空)*-4; 多空:=0; 強平價:=CC[i];
end;
end else begin
if 買賣[i]<>0 and 買賣[i]<>SGN(多空) then begin
多空:=買賣[i]; 進出[i]:=多空; 進價:=CC[i];
end else if 多空<>0 then begin
if CKU2[i]=-多空 then begin
進出[i]:=-多空*2; 多空:=CKU2[i]*2;
end else if CKU3[i]*2=-多空 then begin
進出[i]:=CKU3[i]*3; 多空:=0;
end;
end;
end;
end;



您原來的 CKU2 和 CKU3 已具備 出場(反手) 或平倉的控制
若再加入前面您說的 "當天停損不超過2次 以及不超過80點"

會影響原來的規則非常大唷


由 AA0753 在 2011-06-27 15:34 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 設定出場

引用:
最初由 cgjj 發表
您原來的 CKU2 和 CKU3 已具備 出場(反手) 或平倉的控制
若再加入前面您說的 "當天停損不超過2次 以及不超過80點"

會影響原來的規則非常大唷



我知道
因為我要當執行到CKU2 和 CKU3 時還不對時當天就不再執行了


由 cgjj 在 2011-06-28 13:20 發表:

把範例程式看懂
再去調整修改細節, 更動為自己想要的方式, 再去使用

原碼:

DECK
:=date<>ref(date,1) or barpos=1
DESP:=barslast(DECK);
強平:=Time=134500;
買1:=買訊 and 強平=or barpos=0;
賣1:=賣訊 and 強平=or barpos=0;
控反:=(H>賣壓 or barpos=0)-(L<買支 or barpos=0); //CKU2
控平:=(H>壓力 or barpos=0)-(L<支撐 or barpos=0); //CKU3
買賣:=買1-賣1
進出:C*0 NOAXIS
多空:=0進價:=0出價:=0CC:=CHH:=HLL:=L;
for 
i=1 to datacount do begin
  
if DECK[ithen 停損次:=0;
  if 
強平[ithen begin
    
if 多空<>0 then begin
      進出
[i]:=SGN(多空)*-4多空:=0;
    
end;
  
end else begin
    
if 買賣[i]<>and 買賣[i]<>SGN(多空) and 停損次<2 then begin
      多空
:=買賣[i]; 進出[i]:=多空
      
進價:=CC[i]; MaxHLSP:=0出價:=進價-SGN(多空)*20;
    
end else if 多空<>0 then begin
      
if 控反[i]=-多空 then begin
        進出
[i]:=-多空*2多空:=控反[i]*2;
        
進價:=CC[i]; MaxHLSP:=0出價:=進價-SGN(多空)*20;
      
end else if 控平[i]*2=-多空 then begin
        進出
[i]:=控平[i]*3多空:=0;
      
end else begin
        盈虧
:=(CC[i]-進價)*SGN(多空);
        
HL:=HH[i]; if 多空<0 then HL:=LL[i];
        
HLSP:=(HL-進價)*SGN(多空); //Max盈虧
        
if HLSP>MaxHLSP then MaxHLSP:=HLSP;
        if 
MaxHLSP>80 then begin
          出價
:=進價+MaxHLSP*(2/3)*SGN(多空);
        
end else if MaxHLSP>50 then begin
          出價
:=進價+MaxHLSP*(1/2)*SGN(多空);
        
end else if MaxHLSP>20 then begin
          出價
:=進價+(MaxHLSP-30)*SGN(多空);
        
end else begin
          出價
:=進價-20*SGN(多空);
        
end;
        if (
CC[i]-出價)<0 then begin
          進出
[i]:=5*SGN(多空); 多空:=0; if 盈虧<0 then 停損次:=停損次+1;
        
end;
      
end;
    
end;
  
end;
end;


由 AA0753 在 2011-06-28 16:33 發表:

下標越界

引用:
最初由 cgjj 發表
把範例程式看懂
再去調整修改細節, 更動為自己想要的方式, 再去使用

原碼:

DECK
:=date<>ref(date,1) or barpos=1
DESP:=barslast(DECK);
強平:=Time=134500;
買1:=買訊 and 強平=or barpos=0;
賣1:=賣訊 and 強平=or barpos=0;
控反:=(H>賣壓 or barpos=0)-(L<買支 or barpos=0); //CKU2
控平:=(H>壓力 or barpos=0)-(L<支撐 or barpos=0); //CKU3
買賣:=買1-賣1
進出:C*0 NOAXIS
多空:=0進價:=0出價:=0CC:=CHH:=HLL:=L;
for 
i=1 to datacount do begin
  
if DECK[ithen 停損次:=0;
  if 
強平[ithen begin
    
if 多空<>0 then begin
      進出
[i]:=SGN(多空)*-4多空:=0;
    
end;
  
end else begin
    
if 買賣[i]<>and 買賣[i]<>SGN(多空) and 停損次<2 then begin
      多空
:=買賣[i]; 進出[i]:=多空
      
進價:=CC[i]; MaxHLSP:=0出價:=進價-SGN(多空)*20;
    
end else if 多空<>0 then begin
      
if 控反[i]=-多空 then begin
        進出
[i]:=-多空*2多空:=控反[i]*2;
        
進價:=CC[i]; MaxHLSP:=0出價:=進價-SGN(多空)*20;
      
end else if 控平[i]*2=-多空 then begin
        進出
[i]:=控平[i]*3多空:=0;
      
end else begin
        盈虧
:=(CC[i]-進價)*SGN(多空);
        
HL:=HH[i]; if 多空<0 then HL:=LL[i];
        
HLSP:=(HL-進價)*SGN(多空); //Max盈虧
        
if HLSP>MaxHLSP then MaxHLSP:=HLSP;
        if 
MaxHLSP>80 then begin
          出價
:=進價+MaxHLSP*(2/3)*SGN(多空);
        
end else if MaxHLSP>50 then begin
          出價
:=進價+MaxHLSP*(1/2)*SGN(多空);
        
end else if MaxHLSP>20 then begin
          出價
:=進價+(MaxHLSP-30)*SGN(多空);
        
end else begin
          出價
:=進價-20*SGN(多空);
        
end;
        if (
CC[i]-出價)<0 then begin
          進出
[i]:=5*SGN(多空); 多空:=0; if 盈虧<0 then 停損次:=停損次+1;
        
end;
      
end;
    
end;
  
end;
end;




請教
數組下標越界或超出有效數據區間
是哪裡要更改


由 cgjj 在 2011-06-28 16:52 發表:

回覆: 下標越界

引用:
最初由 AA0753 發表
請教
數組下標越界或超出有效數據區間
是哪裡要更改



這段程式我驗證過, 不會有此問題唷

請檢查您更動或添加的部份

並請注意
訊號要經 or barpos=0 處理 (讓有效位置自1開始)
才能帶入迴圈當中唷 (因為 i=1 to datacount )


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


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

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