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

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


由 co2 在 2012-09-12 07:37 發表:

求助 二口單交易

總版主 以及各位先進,大家早安!

請教:期指當沖交易,用以下條件該如何表達?

買訊:=多訊; 賣訊:=空訊;

【A: 作多】 以 買訊為例,二口單交易

交易時間: Time:8:50 ∼13:35; //開盤後 08:50 開始執行,收盤前 13:35所有單平倉出清。
限制進場: Time:13:10; //若有單僅可平倉不反手,有訊號也不作單。
限停損次:= 2。 //進場後未盈利即停損者算一次。

1.進場後盈利未達20點時:
(a)若回檔,設定賠 18 點(觸價)出場後空手,等待反轉訊號。
(b)若回檔即觸及反轉訊,平倉並反手二口。

2.盈利 21~40:
(a)設定進場後的高點回檔 16 點(觸價),先平一口單。
(b)若再回檔 16 點(觸價),則全部清倉空手,等待反轉訊號。
(c)若回檔即觸反轉訊,全部平倉並反手二口。

3.盈利 41~70:
(a)設定進場後的高點(觸價)回檔 30%(百分比請取整數),
若手中有二口單則停利一口,若手中只有一口單則清倉空手,等待反轉訊號。
(b)若再回檔 30% (觸價),則全部清倉空手,等待反轉訊號。
(c)若回檔即觸反轉訊,全部平倉並反手二口。

4.若盈利達 55 點時(觸價),即停利一口單。

5.若盈利 71點以上:
如果:回檔 25% 或 連續五根黑K 出清所有多單,空手等待反轉訊號。

【B: 作空】賣訊 (作空) 反之。

以上,能否請 總版主示範一個完整的雙向範例。
上述條件不知是否合理,若有不妥還請總版主賜教訂正,多謝。


由 cgjj 在 2012-09-12 16:42 發表:

回覆: 求助 二口單交易

引用:
最初由 co2 發表
總版主 以及各位先進,大家早安!

請教:期指當沖交易,用以下條件該如何表達?

買訊:=多訊; 賣訊:=空訊;

【A: 作多】 以 買訊為例,二口單交易

交易時間: Time:8:50 ∼13:35; //開盤後 08:50 開始執行,收盤前 13:35所有單平倉出清。
限制進場: Time:13:10; //若有單僅可平倉不反手,有訊號也不作單。
限停損次:= 2。 //進場後未盈利即停損者算一次。

1.進場後盈利未達20點時:
(a)若回檔,設定賠 18 點(觸價)出場後空手,等待反轉訊號。
(b)若回檔即觸及反轉訊,平倉並反手二口。

2.盈利 21~40:
(a)設定進場後的高點回檔 16 點(觸價),先平一口單。
(b)若再回檔 16 點(觸價),則全部清倉空手,等待反轉訊號。
(c)若回檔即觸反轉訊,全部平倉並反手二口。

3.盈利 41~70:
(a)設定進場後的高點(觸價)回檔 30%(百分比請取整數),
若手中有二口單則停利一口,若手中只有一口單則清倉空手,等待反轉訊號。
(b)若再回檔 30% (觸價),則全部清倉空手,等待反轉訊號。
(c)若回檔即觸反轉訊,全部平倉並反手二口。

4.若盈利達 55 點時(觸價),即停利一口單。

5.若盈利 71點以上:
如果:回檔 25% 或 連續五根黑K 出清所有多單,空手等待反轉訊號。

【B: 作空】賣訊 (作空) 反之。

以上,能否請 總版主示範一個完整的雙向範例。
上述條件不知是否合理,若有不妥還請總版主賜教訂正,多謝。



Q1. 前面說的 4. 與 3. 組合上可能很易混淆, 請確認點數寫的是否正確?
Q2. 算盈利、算高點、算回檔時
  是以那一個價去與基準價比較? 又基準價採用何價?
Q3. 連續五根是包含當根? 還是不包含當根?
Q4. 限停損次達到後, 當日是否就不再進場?
Q5. "再回檔" 請解釋清楚, 您的再回檔定義為何? (最好以圖說明,以免有模糊地帶)


由 co2 在 2012-09-14 09:56 發表:

回覆: 回覆: 求助 二口單交易

引用:
最初由 cgjj 發表
Q1. 前面說的 4. 與 3. 組合上可能很易混淆, 請確認點數寫的是否正確?
Q2. 算盈利、算高點、算回檔時
  是以那一個價去與基準價比較? 又基準價採用何價?
Q3. 連續五根是包含當根? 還是不包含當根?
Q4. 限停損次達到後, 當日是否就不再進場?
Q5. "再回檔" 請解釋清楚, 您的再回檔定義為何? (最好以圖說明,以免有模糊地帶)


謝謝 總版主關愛,茲逐條回答如下:

Q3. 連續五根是包含當根? 還是不包含當根?
答:要包括當根,但收盤後執行(下一根開盤),因為收盤才能確定紅黑K。

Q4. 限停損次達到後, 當日是否就不再進場?
答:是的,若當日已達停損次數後即不再進場。

Q1. 前面說的 4. 與 3. 組合上可能很易混淆, 請確認點數寫的是否正確?
答:不好意思,這裡有點筆誤及混淆,茲將後段修正如下:
---------------------------------------------------------------------------------------------------------
3.盈利 41~60:
(a)設定進場後的高點(觸價)回檔 30%(百分比請取整數),
若手中有二口單則停利一口,若手中只有一口單則清倉空手,等待反轉訊號。
(b)若再回檔 30% (觸價),則全部清倉空手,等待反轉訊號。
(c)若回檔即觸反轉訊,全部平倉並反手二口。
(原來的第4項取消)
4.若盈利 61點以上:
如果:回檔 25% 或 連續五根黑K 出清所有多單,空手等待反轉訊號。

【B: 作空】賣訊 (作空) 反之。
---------------------------------------------------------------------------------------------------------
〔未完•續下一頁〕


由 co2 在 2012-09-14 10:03 發表:

回覆: 回覆: 求助 二口單交易

引用:
最初由 cgjj 發表
Q1. 前面說的 4. 與 3. 組合上可能很易混淆, 請確認點數寫的是否正確?
Q2. 算盈利、算高點、算回檔時
  是以那一個價去與基準價比較? 又基準價採用何價?
Q3. 連續五根是包含當根? 還是不包含當根?
Q4. 限停損次達到後, 當日是否就不再進場?
Q5. "再回檔" 請解釋清楚, 您的再回檔定義為何? (最好以圖說明,以免有模糊地帶)


〔接上一頁〕

Q2. 算盈利、算高點、算回檔時
Q5. "再回檔" 請解釋清楚, 您的再回檔定義為何? (最好以圖說明,以免有模糊地帶)

這二項請見二張附圖說明:圖一


由 co2 在 2012-09-14 10:06 發表:

回覆: 回覆: 回覆: 求助 二口單交易

引用:
最初由 co2 發表
〔接上一頁〕

Q2. 算盈利、算高點、算回檔時
Q5. "再回檔" 請解釋清楚, 您的再回檔定義為何? (最好以圖說明,以免有模糊地帶)

這二項請見二張附圖說明:圖一


圖二


由 cgjj 在 2012-09-16 23:05 發表:

回覆: 回覆: 回覆: 求助 二口單交易

引用:
最初由 co2 發表
〔接上一頁〕

Q2. 算盈利、算高點、算回檔時
Q5. "再回檔" 請解釋清楚, 您的再回檔定義為何? (最好以圖說明,以免有模糊地帶)

這二項請見二張附圖說明:圖一



Q6. 價的部份尚不清楚
進場價用開盤價嗎?
算盈利用何價?、算高點用High價?、算回檔又用何價比較呢?


由 co2 在 2012-09-17 07:17 發表:

回覆: 回覆: 回覆: 回覆: 求助 二口單交易

引用:
最初由 cgjj 發表
Q6. 價的部份尚不清楚
進場價用開盤價嗎?
算盈利用何價?、算高點用High價?、算回檔又用何價比較呢?


不好意思,還勞駕 總版主假日沒得休息!
關於:1.進場價是以收盤(等於是下一根開盤進場),2.盈利、虧損或回檔都是以盤中價為準,就是只要最高價或最低價觸及條件就算成立。 謝謝!


由 cgjj 在 2012-09-18 11:09 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 求助 二口單交易

引用:
最初由 co2 發表
不好意思,還勞駕 總版主假日沒得休息!
關於:1.進場價是以收盤(等於是下一根開盤進場),2.盈利、虧損或回檔都是以盤中價為準,就是只要最高價或最低價觸及條件就算成立。 謝謝!



這問題需花費較多時間
最近較忙, 預計下週之後才有空答覆您


由 co2 在 2012-09-18 11:42 發表:

回覆: 回覆: 求助 二口單交易

引用:
最初由 cgjj 發表
這問題需花費較多時間
最近較忙, 預計下週之後才有空答覆您


沒關係,不急不急,等 總版主有空再說。


由 cgjj 在 2012-09-28 14:33 發表:

回覆: 回覆: 回覆: 求助 二口單交易

引用:
最初由 co2 發表
沒關係,不急不急,等 總版主有空再說。


先重新整理一下, 您前面所提出的如下:

交易時間: Time:8:50 ∼13:35; //開盤後 08:50 開始執行,收盤前 13:35所有單平倉出清。
限制進場: Time:13:10; //若有單,僅可平倉不反手,有訊號也不作單。
限停損次:= 2。 //進場後未盈利即停損者算一次。(若當日已達停損次數後即不再進場。)

1.進場後盈利未達20點時:
(a)若回檔,設定賠 18 點(觸價)出場後空手,等待反轉訊號。
(b)若回檔即觸及反轉訊,平倉並反手二口。

2.盈利 21~40:
(a)設定進場後的高點回檔 16 點(觸價),先平一口單。
(b)若再回檔 16 點(觸價),則全部清倉空手,等待反轉訊號。
(c)若回檔即觸反轉訊,全部平倉並反手二口。

3.盈利 41~60:
(a)設定進場後的高點(觸價)回檔 30%(百分比請取整數),
若手中有二口單則停利一口,若手中只有一口單則清倉空手,等待反轉訊號。
(b)若再回檔 30% (觸價),則全部清倉空手,等待反轉訊號。
(c)若回檔即觸反轉訊,全部平倉並反手二口。

4.若盈利 61點以上:
如果:回檔 25% 或 連續五根黑K 出清所有多單,空手等待反轉訊號。

5.若盈利 71點以上:
如果:回檔 25% 或 連續五根黑K 出清所有多單,空手等待反轉訊號。
要包括當根,但收盤後執行(下一根開盤),因為收盤才能確定紅黑K


由 cgjj 在 2012-09-28 14:36 發表:

1.進場後盈利未達20點時:
(a)若回檔,設定賠 18 點(觸價)出場後空手,等待反轉訊號。


這部份與圖一所畫的狀況, 並不一致
圖一是描述回檔18點, 並非是進場後賠18點
麻煩請釐清

另外
圖一的再回檔可以視為無論有無回檔
也就是自HH回落18點時先出一口
後續再落達38點時(自HH算), 全出


由 co2 在 2012-09-30 15:25 發表:

引用:
最初由 cgjj 發表
1.進場後盈利未達20點時:
(a)若回檔,設定賠 18 點(觸價)出場後空手,等待反轉訊號。


這部份與圖一所畫的狀況, 並不一致
圖一是描述回檔18點, 並非是進場後賠18點
麻煩請釐清
……………………………………



關於
1.進場後盈利未達20點時:
(a)若回檔,設定賠 18 點(觸價)出場後空手,等待反轉訊號。

之補充說明請見下圖:【圖一】之補充圖說


由 co2 在 2012-09-30 15:41 發表:

引用:
最初由 cgjj 發表
[b]
………………………………
………………………………
另外
圖一的再回檔可以視為無論有無回檔
也就是自HH回落18點時先出一口
後續再落達38點時(自HH算), 全出



是的,就是這個意思。
真抱歉,文字敘述始終不夠完整,勞駕 版主費神了。

順祝 版主 中秋佳節愉快!


由 cgjj 在 2012-10-02 10:57 發表:

引用:
最初由 co2 發表
是的,就是這個意思。
真抱歉,文字敘述始終不夠完整,勞駕 版主費神了。

順祝 版主 中秋佳節愉快!



謝謝, 不客氣 ^^

4.若盈利 61點以上:
如果:回檔 25% 或 連續五根黑K 出清所有多單,空手等待反轉訊號。

5.若盈利 71點以上:
如果:回檔 25% 或 連續五根黑K 出清所有多單,空手等待反轉訊號。

這邊的 5. 是多餘的, 處理時將會忽略掉


由 co2 在 2012-10-02 11:33 發表:

引用:
最初由 cgjj 發表
謝謝, 不客氣 ^^

4.若盈利 61點以上:
如果:回檔 25% 或 連續五根黑K 出清所有多單,空手等待反轉訊號。

5.若盈利 71點以上:
如果:回檔 25% 或 連續五根黑K 出清所有多單,空手等待反轉訊號。

這邊的 5. 是多餘的, 處理時將會忽略掉


歹勢,又出包。
是的,條件重覆,取消掉一個即可。
多謝!


由 cgjj 在 2012-10-02 13:29 發表:

原碼:

StDoTime
:=085000;
多進:=多進 and time>=StDoTime or barpos=0;
空進:=空進 and time>=StDoTime or barpos=0;
進場:=多進-空進;
強出:=time>=133500;
限進:=time>=131000;
限停損次:=2//每日
損控點數:=18;
黑五:=sum(C<O,5)=5;
OO:=OCC:=CHH:=HLL:=L;
StDE:=barpos=or time=StDoTime;
DoBS:C*0 NOAXIS;
多空:=0//1.多 -1.空 0.無
for i=1 to datacount do begin
  
if StDE[ithen 累停損次:=0;
  if 
多空=and 強出[i]=and 限進[i]=and 累停損次<限停損次 then begin
    多空
:=進場[i]*2
    if 
多空<>0 then begin 
      進價
:=OO[i]; Max盈:=0PreTN:=0;
    
end;
  
end else if 多空<>0 then begin
    NowDir
:=SGN(多空);
    if 
強出[ithen begin
      多空
:=0;
    
end else if NowDir=-進場[ithen begin
      多空
:=-NowDir*2*(限進[i]=0); //反手
      
if 多空<>0 then begin
        進價
:=OO[i]; Max盈:=0PreTN:=0;
      
end;
    
end else begin      
      損HL
:=LL[i]*(NowDir=1)+HH[i]*(NowDir=-1);
      
盈HL:=HH[i]*(NowDir=1)+LL[i]*(NowDir=-1);
      
盈利L:=(損HL-進價)*NowDir;
      if (
損HL-進價)*NowDir<=-損控點數 then begin
        多空
:=0累停損次:=累停損次+1//停損
      
end else if Max盈>=61 then begin
        
if 黑五[i] or 盈利L<Max盈*0.75 then 多空:=0;
      
end else if Max盈>=41 then begin
        
if 盈利L<=Max盈*0.4 then begin
          多空
:=0;
        
end else if 盈利L<=Max盈*0.7 and PreTN<>0.7 then begin
          多空
:=多空-NowDirPreTN:=0.7;
        
end;
      
end else if Max盈>=21 then begin
        
if 盈利L<=Max盈-32 then begin
          多空
:=0;
        
end else if 盈利L<Max盈-16 and PreTN<>16 then begin
          多空
:=多空-NowDirPreTN:=16;
        
end;
      
end;
      
盈利H:=(盈HL-進價)*NowDir;
      if 
盈利H>Max盈 then Max盈:=盈利H;
    
end;
  
end;
  
DoBS[i]:=多空;
end;



請自行帶入 多進 和空進 訊號於前( 盤中訊號不可浮動)
此段程式其以開盤價在訊號成立當根進場
(請自行視需要決定帶入訊號是否要右偏一根)

DoBS 變數
其為該根動作完成後所持有的口數


由 co2 在 2012-10-02 16:49 發表:

引用:
最初由 cgjj 發表
原碼:

StDoTime
:=085000;
多進:=多進 and time>=StDoTime or barpos=0;
空進:=空進 and time>=StDoTime or barpos=0;
進場:=多進-空進;
強出:=time>=133500;
限進:=time>=131000;
限停損次:=2//每日
損控點數:=18;
黑五:=sum(C<O,5)=5;
OO:=OCC:=CHH:=HLL:=L;
StDE:=barpos=or time=StDoTime;
DoBS:C*0 NOAXIS;
多空:=0//1.多 -1.空 0.無
for i=1 to datacount do begin
  
if StDE[ithen 累停損次:=0;
  if 
多空=and 強出[i]=and 限進[i]=and 累停損次<限停損次 then begin
    多空
:=進場[i]*2
    if 
多空<>0 then begin 
      進價
:=OO[i]; Max盈:=0PreTN:=0;
    
end;
  
end else if 多空<>0 then begin
    NowDir
:=SGN(多空);
    if 
強出[ithen begin
      多空
:=0;
    
end else if NowDir=-進場[ithen begin
      多空
:=-NowDir*2*(限進[i]=0); //反手
      
if 多空<>0 then begin
        進價
:=OO[i]; Max盈:=0PreTN:=0;
      
end;
    
end else begin      
      損HL
:=LL[i]*(NowDir=1)+HH[i]*(NowDir=-1);
      
盈HL:=HH[i]*(NowDir=1)+LL[i]*(NowDir=-1);
      
盈利L:=(損HL-進價)*NowDir;
      if (
損HL-進價)*NowDir<=-損控點數 then begin
        多空
:=0累停損次:=累停損次+1//停損
      
end else if Max盈>=61 then begin
        
if 黑五[i] or 盈利L<Max盈*0.75 then 多空:=0;
      
end else if Max盈>=41 then begin
        
if 盈利L<=Max盈*0.4 then begin
          多空
:=0;
        
end else if 盈利L<=Max盈*0.7 and PreTN<>0.7 then begin
          多空
:=多空-NowDirPreTN:=0.7;
        
end;
      
end else if Max盈>=21 then begin
        
if 盈利L<=Max盈-32 then begin
          多空
:=0;
        
end else if 盈利L<Max盈-16 and PreTN<>16 then begin
          多空
:=多空-NowDirPreTN:=16;
        
end;
      
end;
      
盈利H:=(盈HL-進價)*NowDir;
      if 
盈利H>Max盈 then Max盈:=盈利H;
    
end;
  
end;
  
DoBS[i]:=多空;
end;



請自行帶入 多進 和空進 訊號於前( 盤中訊號不可浮動)
此段程式其以開盤價在訊號成立當根進場
(請自行視需要決定帶入訊號是否要右偏一根)

DoBS 變數
其為該根動作完成後所持有的口數



感謝 總版主,辛苦了!
經套用約略檢查一下,初步發現:以作多為例,如果作多,第二次停利之後的下一根K還會再進場作一次多單(DOBS=2),不知我有沒有看錯?請 總版主指教。謝謝!


由 cgjj 在 2012-10-02 17:24 發表:

引用:
最初由 co2 發表
感謝 總版主,辛苦了!
經套用約略檢查一下,初步發現:以作多為例,如果作多,第二次停利之後的下一根K還會再進場作一次多單(DOBS=2),不知我有沒有看錯?請 總版主指教。謝謝!



第二次停利的停利當根 DOBS 會等於 0

若第二次停利的下一根, 有 [多進] 訊號成立, DOBS 才會等於2
請檢查第二次停利的下一根K棒, 其 [多進] 訊號是否成立
若為成立, 其會執行 "多進" 的動作

停利不會影響當日進場次數
停損才會讓當日進場次數受限


由 co2 在 2012-10-02 20:30 發表:

引用:
最初由 cgjj 發表
第二次停利的停利當根 DOBS 會等於 0

若第二次停利的下一根, 有 [多進] 訊號成立, DOBS 才會等於2
請檢查第二次停利的下一根K棒, 其 [多進] 訊號是否成立
若為成立, 其會執行 "多進" 的動作

停利不會影響當日進場次數
停損才會讓當日進場次數受限



大家晚安!

引用條件2:
2.盈利 21~40:
(a)設定進場後的高點回檔 16 點(觸價),先平一口單。
(b)若再回檔 16 點(觸價),則全部清倉空手,等待反轉訊號。
(c)若回檔即觸反轉訊,全部平倉並反手二口。

當停利二次後我希望以 (b) 的條件等待反轉訊號再反空,請見附圖說明:


由 cgjj 在 2012-10-03 10:22 發表:

引用:
最初由 co2 發表
大家晚安!

引用條件2:
2.盈利 21~40:
(a)設定進場後的高點回檔 16 點(觸價),先平一口單。
(b)若再回檔 16 點(觸價),則全部清倉空手,等待反轉訊號。
(c)若回檔即觸反轉訊,全部平倉並反手二口。

當停利二次後我希望以 (b) 的條件等待反轉訊號再反空,請見附圖說明:



圖中的 (5) 是因為該根K棒有 [多進] 訊號成立, 所以又進場做多

您希望的意思是
做多停利兩次後, 等待 [空進] 的訊號, 等待途中若觸及 [多進] 訊號不理它嗎?

其他 "等待反轉訊號" 也都是如此處理嗎?

也就是 多空多空多空.... 反向輪流做
不會有 多多空多空空多 這種狀態囉??


由 co2 在 2012-10-03 11:11 發表:

引用:
最初由 cgjj 發表
圖中的 (5) 是因為該根K棒有 [多進] 訊號成立, 所以又進場做多

您希望的意思是
做多停利兩次後, 等待 [空進] 的訊號, 等待途中若觸及 [多進] 訊號不理它嗎?

其他 "等待反轉訊號" 也都是如此處理嗎?

也就是 多空多空多空.... 反向輪流做
不會有 多多空多空空多 這種狀態囉??



是的,當作多時若停利後(不管是一次停或兩次停)又遇上多訊也不再作多,因為目前所使用的買賣訊似乎不太適合這樣做。

另外,能否麻煩將 "DOBS" 執行訊號以 類似 下列方式呈現,方便檢視之用:

//DoLS (DOBS)意義:
1=多進 (空手時作多),
2=多出 (作多停利二口後空手),
3=空翻多 (作空停損二口同時作多二口),
4=多盈衰出 (作多時停利一口),
5=多損出 (停損二口,出清空手),
6=時間到 (出清所有手中多單),

-1=空進 (空手時作空),
-2=空出 (作空停利二口後空手),
-3=多翻空 (作多停損二口同時作空二口),
-4=空盈衰出 (作空時停利一口),
-5=空損出 (停損二口,出清空手),
-6=時間到 (出清所有手中空單),

當然,其中若有重疊或多餘的,就麻煩 總版主費神處理了。


由 cgjj 在 2012-10-03 15:17 發表:

引用:
最初由 co2 發表
是的,當作多時若停利後(不管是一次停或兩次停)又遇上多訊也不再作多,因為目前所使用的買賣訊似乎不太適合這樣做。



已改OK, 先給改過的程式碼

原碼:

StDoTime
:=085000;
多進:=多進 and time>=StDoTime or barpos=0;
空進:=空進 and time>=StDoTime or barpos=0;
進場:=多進-空進;
強出:=time>=133500;
限進:=time>=131000;
限停損次:=2//每日
損控點數:=18;
黑五:=sum(C<O,5)=5;
OO:=OCC:=CHH:=HLL:=L;
StDE:=barpos=or time=StDoTime;
DoBS:C*0 NOAXIS;
多空:=0//1.多 -1.空 0.無
for i=1 to datacount do begin
  
if StDE[ithen begin
    累停損次
:=0WaitBS:=0;
  
end;
  if 
多空=and 強出[i]=and 限進[i]=and 累停損次<限停損次 then begin
    
if WaitBS=or WaitBS=進場[ithen begin
      多空
:=進場[i]*2;
      if 
多空<>0 then begin
        進價
:=OO[i]; Max盈:=0PreTN:=0WaitBS:=-SGN(多空);
      
end;
    
end;
  
end else if 多空<>0 then begin
    NowDir
:=SGN(多空);
    if 
強出[ithen begin
      多空
:=0;
    
end else if NowDir=-進場[ithen begin
      多空
:=-NowDir*2*(限進[i]=0); //反手
      
if 多空<>0 then begin
        進價
:=OO[i]; Max盈:=0PreTN:=0WaitBS:=-SGN(多空);
      
end;
    
end else begin
      損HL
:=LL[i]*(NowDir=1)+HH[i]*(NowDir=-1);
      
盈HL:=HH[i]*(NowDir=1)+LL[i]*(NowDir=-1);
      
盈利L:=(損HL-進價)*NowDir;
      if (
損HL-進價)*NowDir<=-損控點數 then begin
        多空
:=0累停損次:=累停損次+1//停損
      
end else if Max盈>=61 then begin
        
if 黑五[i] or 盈利L<Max盈*0.75 then 多空:=0;
      
end else if Max盈>=41 then begin
        
if 盈利L<=Max盈*0.4 then begin
          多空
:=0;
        
end else if 盈利L<=Max盈*0.7 and PreTN<>0.7 then begin
          多空
:=多空-NowDirPreTN:=0.7;
        
end;
      
end else if Max盈>=21 then begin
        
if 盈利L<=Max盈-32 then begin
          多空
:=0;
        
end else if 盈利L<Max盈-16 and PreTN<>16 then begin
          多空
:=多空-NowDirPreTN:=16;
        
end;
      
end;
      
盈利H:=(盈HL-進價)*NowDir;
      if 
盈利H>Max盈 then Max盈:=盈利H;
    
end;
  
end;
  
DoBS[i]:=多空;
end;


引用:
最初由 co2 發表
另外,能否麻煩將 "DOBS" 執行訊號以 類似 下列方式呈現,方便檢視之用

這部份會再另外添入程式, 用另一數列去記錄, 不會拿 DOBS 數列來記錄


由 cgjj 在 2012-10-03 15:41 發表:

以 RecDO 數列, 來另外記錄前面提的需求

原碼:

StDoTime
:=085000;
多進:=多進 and time>=StDoTime or barpos=0;
空進:=空進 and time>=StDoTime or barpos=0;
進場:=多進-空進;
強出:=time>=133500;
限進:=time>=131000;
限停損次:=2//每日
損控點數:=18;
黑五:=sum(C<O,5)=5;
OO:=OCC:=CHH:=HLL:=L;
StDE:=barpos=or time=StDoTime;
DoBS:C*0 NOAXISRecDO:C*0 linethick;
多空:=0//1.多 -1.空 0.無
for i=1 to datacount do begin
  
if StDE[ithen begin
    累停損次
:=0WaitBS:=0;
  
end;
  if 
多空=and 強出[i]=and 限進[i]=and 累停損次<限停損次 then begin
    
if WaitBS=or WaitBS=進場[ithen begin
      多空
:=進場[i]*2;
      if 
多空<>0 then begin
        進價
:=OO[i]; Max盈:=0PreTN:=0WaitBS:=-SGN(多空);
        
RecDO[i]:=SGN(多空);
      
end;
    
end;
  
end else if 多空<>0 then begin
    NowDir
:=SGN(多空);
    if 
強出[ithen begin
      多空
:=0RecDO[i]:=NowDir*6;
    
end else if NowDir=-進場[ithen begin
      多空
:=-NowDir*2*(限進[i]=0); //反手
      
if 多空<>0 then begin
        進價
:=OO[i]; Max盈:=0PreTN:=0WaitBS:=-SGN(多空);
        
RecDO[i]:=-NowDir*4;
      
end;
    
end else begin
      損HL
:=LL[i]*(NowDir=1)+HH[i]*(NowDir=-1);
      
盈HL:=HH[i]*(NowDir=1)+LL[i]*(NowDir=-1);
      
盈利L:=(損HL-進價)*NowDir;
      if (
損HL-進價)*NowDir<=-損控點數 then begin
        多空
:=0累停損次:=累停損次+1//停損
        
RecDO[i]:=NowDir*5;
      
end else if Max盈>=61 then begin
        
if 黑五[i] or 盈利L<Max盈*0.75 then begin
          多空
:=0RecDO[i]:=NowDir*2;
        
end;
      
end else if Max盈>=41 then begin
        
if 盈利L<=Max盈*0.4 then begin
          多空
:=0RecDO[i]:=NowDir*2;
        
end else if 盈利L<=Max盈*0.7 and PreTN<>0.7 then begin
          多空
:=多空-NowDirPreTN:=0.7RecDO[i]:=NowDir*3;
        
end;
      
end else if Max盈>=21 then begin
        
if 盈利L<=Max盈-32 then begin
          多空
:=0RecDO[i]:=NowDir*2;
        
end else if 盈利L<Max盈-16 and PreTN<>16 then begin
          多空
:=多空-NowDirPreTN:=16RecDO[i]:=NowDir*3;
        
end;
      
end;
      
盈利H:=(盈HL-進價)*NowDir;
      if 
盈利H>Max盈 then Max盈:=盈利H;
    
end;
  
end;
  
DoBS[i]:=多空;
end;



RecDO意義:
1 多進, 2 多盈餘出, 3 多盈衰出, 4 空翻多, 5 多損出, 6 多強出
-1 空進,-2 空盈餘出,-3 空盈衰出,-4 多翻空,-5 空損出,-6 空強出
其中 "衰出" 是指達到盈衰之條件停利一口的狀況
其中 "餘出" 是指達到盈衰之條件全部清倉的狀況

DoBS 數列
其仍為該根動作完成後所持有的口數


由 co2 在 2012-10-03 16:03 發表:

引用:
最初由 cgjj 發表
以 RecDO 數列, 來另外記錄前面提的需求

原碼:

StDoTime
:=085000;
多進:=多進 and time>=StDoTime or barpos=0;
空進:=空進 and time>=StDoTime or barpos=0;
進場:=多進-空進;
強出:=time>=133500;
限進:=time>=131000;
限停損次:=2//每日
損控點數:=18;
黑五:=sum(C<O,5)=5;
OO:=OCC:=CHH:=HLL:=L;
StDE:=barpos=or time=StDoTime;
DoBS:C*0 NOAXISRecDO:C*0 linethick;
多空:=0//1.多 -1.空 0.無
for i=1 to datacount do begin
  
if StDE[ithen begin
    累停損次
:=0WaitBS:=0;
  
end;
  if 
多空=and 強出[i]=and 限進[i]=and 累停損次<限停損次 then begin
    
if WaitBS=or WaitBS=進場[ithen begin
      多空
:=進場[i]*2;
      if 
多空<>0 then begin
        進價
:=OO[i]; Max盈:=0PreTN:=0WaitBS:=-SGN(多空);
        
RecDO[i]:=SGN(多空);
      
end;
    
end;
  
end else if 多空<>0 then begin
    NowDir
:=SGN(多空);
    if 
強出[ithen begin
      多空
:=0RecDO[i]:=NowDir*6;
    
end else if NowDir=-進場[ithen begin
      多空
:=-NowDir*2*(限進[i]=0); //反手
      
if 多空<>0 then begin
        進價
:=OO[i]; Max盈:=0PreTN:=0WaitBS:=-SGN(多空);
        
RecDO[i]:=-NowDir*4;
      
end;
    
end else begin
      損HL
:=LL[i]*(NowDir=1)+HH[i]*(NowDir=-1);
      
盈HL:=HH[i]*(NowDir=1)+LL[i]*(NowDir=-1);
      
盈利L:=(損HL-進價)*NowDir;
      if (
損HL-進價)*NowDir<=-損控點數 then begin
        多空
:=0累停損次:=累停損次+1//停損
        
RecDO[i]:=NowDir*5;
      
end else if Max盈>=61 then begin
        
if 黑五[i] or 盈利L<Max盈*0.75 then begin
          多空
:=0RecDO[i]:=NowDir*2;
        
end;
      
end else if Max盈>=41 then begin
        
if 盈利L<=Max盈*0.4 then begin
          多空
:=0RecDO[i]:=NowDir*2;
        
end else if 盈利L<=Max盈*0.7 and PreTN<>0.7 then begin
          多空
:=多空-NowDirPreTN:=0.7RecDO[i]:=NowDir*3;
        
end;
      
end else if Max盈>=21 then begin
        
if 盈利L<=Max盈-32 then begin
          多空
:=0RecDO[i]:=NowDir*2;
        
end else if 盈利L<Max盈-16 and PreTN<>16 then begin
          多空
:=多空-NowDirPreTN:=16RecDO[i]:=NowDir*3;
        
end;
      
end;
      
盈利H:=(盈HL-進價)*NowDir;
      if 
盈利H>Max盈 then Max盈:=盈利H;
    
end;
  
end;
  
DoBS[i]:=多空;
end;



RecDO意義:
1 多進, 2 多盈餘出, 3 多盈衰出, 4 空翻多, 5 多損出, 6 多強出
-1 空進,-2 空盈餘出,-3 空盈衰出,-4 多翻空,-5 空損出,-6 空強出
其中 "衰出" 是指達到盈衰之條件停利一口的狀況
其中 "餘出" 是指達到盈衰之條件全部清倉的狀況

DoBS 數列
其仍為該根動作完成後所持有的口數



總版主,辛苦您了,謝謝您。


由 co2 在 2012-10-03 21:18 發表:

不好意思,再記一次缺點!是我沒講清楚。

關於:
----------------------------------------------------------------------------------------------------------------
4.若盈利 61點以上:
如果:回檔 25% 或 連續五根黑K 出清所有多單,空手等待反轉訊號。
----------------------------------------------------------------------------------------------------------------

所謂連續五根黑K指的是 在作多情況下逆轉向下時出現連續五根黑K之意。
若是作空,則應該改為連續五根紅K才對,我在條件描述中沒說清楚甚感抱歉。

這一部份我想再做一個小修正:
若是黑K:除了全部是黑K之外還要 5<3<1 (越走越低)
若是紅K:除了全部是紅K之外還要 5>3>1 (越走越高)

以上就麻煩 總版主幫忙修正,多謝!


由 cgjj 在 2012-10-04 09:46 發表:

引用:
最初由 co2 發表
不好意思,再記一次缺點!是我沒講清楚。

關於:
----------------------------------------------------------------------------------------------------------------
4.若盈利 61點以上:
如果:回檔 25% 或 連續五根黑K 出清所有多單,空手等待反轉訊號。
----------------------------------------------------------------------------------------------------------------

所謂連續五根黑K指的是 在作多情況下逆轉向下時出現連續五根黑K之意。
若是作空,則應該改為連續五根紅K才對,我在條件描述中沒說清楚甚感抱歉。



請將
黑五:=sum(C<O,5)=5;

改為
黑五:=sum(C<O,5)=5 or barpos=0;
紅五:=sum(C>O,5)=5 or barpos=0;

再將
if 黑五[i] or 盈利L<Max盈*0.75 then ................

改為
五根:=黑五[i]*(NowDir=1)+紅五[i]*(NowDir=-1);
if 五根 or 盈利L<Max盈*0.75 then ................


由 cgjj 在 2012-10-04 09:51 發表:

引用:
最初由 co2 發表
這一部份我想再做一個小修正:
若是黑K:除了全部是黑K之外還要 5<3<1 (越走越低)
若是紅K:除了全部是紅K之外還要 5>3>1 (越走越高)



這部份讓您自己去改了
只需動到 黑五 和 紅五 的條件定義即可
迴圈內的程式不需動到


由 co2 在 2012-10-04 10:24 發表:

引用:
最初由 cgjj 發表
這部份讓您自己去改了
只需動到 黑五 和 紅五 的條件定義即可
迴圈內的程式不需動到



了解,我就試試看囉。
其餘正在上線測試中,恐需要一點時間才能向您回報。


由 co2 在 2012-10-11 16:24 發表:

回覆: 回覆: 回覆: 回覆: 求助 二口單交易

引用:
最初由 cgjj 發表
1.進場後盈利未達20點時:
(a)若回檔,設定賠 18 點(觸價)出場後空手,等待反轉訊號。
(b)若回檔即觸及反轉訊,平倉並反手二口。

2.盈利 21~40:
(a)設定進場後的高點回檔 16 點(觸價),先平一口單。
(b)若再回檔 16 點(觸價),則全部清倉空手,等待反轉訊號。
(c)若回檔即觸反轉訊,全部平倉並反手二口。



總版主,下午安!

觀察數日後,總覺得好像有點問題,不知我有沒有看錯?
當 條件1. 尚未滿足即回檔【 "(a)若回檔,設定賠 18 點(觸價)出場後空手"………】

這個 賠18 點的計算基礎,是以進場價為之,
舉例:若如 7000 作多,那麼 7020 即為 1. 的滿足點,若未達此價而回檔,即以7000-18=6982 為停損價位。


由 cgjj 在 2012-10-11 17:02 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 求助 二口單交易

引用:
最初由 co2 發表
總版主,下午安!

觀察數日後,總覺得好像有點問題,不知我有沒有看錯?
當 條件1. 尚未滿足即回檔【 "(a)若回檔,設定賠 18 點(觸價)出場後空手"………】

這個 賠18 點的計算基礎,是以進場價為之,
舉例:若如 7000 作多,那麼 7020 即為 1. 的滿足點,若未達此價而回檔,即以7000-18=6982 為停損價位。



那一段程式, 無論是否為回檔
只要賠達18點就出場(與進場價比較)
注意:
1.進場價是開盤價
2.算賠:多是以L算, 空是以H算

判斷處理的式子為 (損HL-進價)*NowDir<=-損控點數
多損出 RecDO 為 5
空損出 RecDO 為 -5


由 co2 在 2012-10-11 18:02 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 求助 二口單交易

引用:
最初由 cgjj 發表
那一段程式, 無論是否為回檔
只要賠達18點就出場(與進場價比較)
注意:
1.進場價是開盤價
2.算賠:多是以L算, 空是以H算

判斷處理的式子為 (損HL-進價)*NowDir<=-損控點數
多損出 RedDO 為 5
空損出 RedDO 為 -5



原來如此,難怪我覺得每次的停損點有時會不一樣,看不懂式子真的很頭痛。

可是這樣一來,跟理想會有很大出入,您幫我完成的式子,經套用在我所使用的系統裡,當任何觸及買賣價格時
就會立即發出訊號並送單,即為觸價單做法,如果買賣價為觸價,而停損卻以高低價扣抵,這將造成很大誤差。


請問,有沒辦法做到以觸價為停損依据(即我的實際買進價),停利亦然。

另外,再回檔 (就是再創低之後的回檔) 的 RedDO 訊號好像有點不太對,應該是 RedDO =-2 ,而不是 RedDO =-3 ,因為這裡是要空手了。

謝謝您了,晚安。


由 cgjj 在 2012-10-11 18:49 發表:

回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 回覆: 求助 二口單交易

引用:
最初由 co2 發表
原來如此,難怪我覺得每次的停損點有時會不一樣,看不懂式子真的很頭痛。

可是這樣一來,跟理想會有很大出入,您幫我完成的式子,經套用在我所使用的系統裡,當任何觸及買賣價格時
就會立即發出訊號並送單,即為觸價單做法,如果買賣價為觸價,而停損卻以高低價扣抵,這將造成很大誤差。


請問,有沒辦法做到以觸價為停損依据(即我的實際買進價),停利亦然。

另外,再回檔 (就是再創低之後的回檔) 的 RedDO 訊號好像有點不太對,應該是 RedDO =-2 ,而不是 RedDO =-3 ,因為這裡是要空手了。

謝謝您了,晚安。



盤中當根之 L 只會越來越低或保持原位不動
盤中當根之 H 只會越來越高或保持原位不動
只要價達到停損條件, 即使該K棒尚未終了
停損這訊號狀態是不會再變動的了
該根K棒最終之HL, 並非 "停損之出場價"
在該根停損訊號剛成立的那一刻就出場了
而非等到該根K棒行情終了才出場

程式是決定停損訊號, 並未決定停損之出場價
停損之出場價: 您要用HL去算, 或是用進場價-18點算
那是您後面接的程式算績效時自行去決定的
對於停損訊號處理而言, 應該並無誤差

RedDO =-2 ,而不是 RedDO =-3
這部份請您再仔細核對
有三種狀態 RedDO 絕對值會等於 2
有兩種狀態 RedDO 絕對值會等於 3

請留意我所給予的RecDO意義:
1 多進, 2 多盈餘出, 3 多盈衰出, 4 空翻多, 5 多損出, 6 多強出
-1 空進,-2 空盈餘出,-3 空盈衰出,-4 多翻空,-5 空損出,-6 空強出
其中 "衰出" 是指達到盈衰之條件停利一口的狀況
其中 "餘出" 是指達到盈衰之條件全部清倉的狀況


由 co2 在 2012-10-11 19:15 發表:

回覆: 求助 二口單交易

引用:
最初由 cgjj 發表
盤中當根之 L 只會越來越低或保持原位不動
盤中當根之 H 只會越來越高或保持原位不動
只要價達到停損條件, 即使該K棒尚未終了
停損這訊號狀態是不會再變動的了
該根K棒最終之HL, 並非 "停損之出場價"
在該根停損訊號剛成立的那一刻就出場了
而非等到該根K棒行情終了才出場

程式是決定停損訊號, 並未決定停損之出場價
停損之出場價: 您要用HL去算, 或是用進場價-18點算
那是您後面接的程式算績效時自行去決定的
對於停損訊號處理而言, 應該並無誤差
…………………………
…………………………


謝謝您,受教了,繼續學習中。
若有疑問當再上來請教您了。


由 cgjj 在 2012-10-11 23:03 發表:

回覆: 回覆: 求助 二口單交易

引用:
最初由 co2 發表
謝謝您,受教了,繼續學習中。
若有疑問當再上來請教您了。



不客氣, 如仍有疑惑請再提出


由 co2 在 2012-10-12 11:09 發表:

總版主:

已煩 總版主這麼久,真的很過意不去,離功德圓滿只差臨門一腳,只好又來煩您囉。
俗話說得好:送佛送上天,幫人幫到底,正所謂能者多勞嘛。

本程式係以 "即時盤" 中 為檢測時機,非盤後回測看績效。前段多空條件採用狐友們經常討論之簡單的台指開盤前
五分鐘內之高、低為多空依据,作順勢單,突破進場,條件就這麼單純,所以其他一切盈虧損益就交給 版大的式
子來幫忙處理,若還需要在程式裡或後端再加油添醋,非個人能力所及,這是當初請求協助之初衷。

是不是在程式裡所有訊號之產生,都是基於當條件成立之當下瞬間所擊發,而無法抓取當時的價位?
因此,當需要取用觸發點之價位時,只能以已收盤當K之 O, H, L, C 取代。

若 無法取得實際 "進場價位" ,那麼請取消式子裡的 "損控點數" (條件 1.),可以的話,改用下列二選一處理。

(A) 已在前段增加二個條件:
1. 多停 (多停:=進場價-18; )
2. 空停 (空停:=進場價+18; )
增設二條多空停損線,請以 "多停"、"空停" 為停損價位。

(B) 取消 "條件1.",改為:若未達盈利 20 點目標,若遇反手訊號才停損並反手。

以上不知可行否?若可行,敬請幫忙修正。不情之請,尚祈見諒!


由 cgjj 在 2012-10-15 15:15 發表:

引用:
最初由 co2 發表
總版主:

已煩 總版主這麼久,真的很過意不去,離功德圓滿只差臨門一腳,只好又來煩您囉。
俗話說得好:送佛送上天,幫人幫到底,正所謂能者多勞嘛。

本程式係以 "即時盤" 中 為檢測時機,非盤後回測看績效。前段多空條件採用狐友們經常討論之簡單的台指開盤前
五分鐘內之高、低為多空依据,作順勢單,突破進場,條件就這麼單純,所以其他一切盈虧損益就交給 版大的式
子來幫忙處理,若還需要在程式裡或後端再加油添醋,非個人能力所及,這是當初請求協助之初衷。

是不是在程式裡所有訊號之產生,都是基於當條件成立之當下瞬間所擊發,而無法抓取當時的價位?
因此,當需要取用觸發點之價位時,只能以已收盤當K之 O, H, L, C 取代。

若 無法取得實際 "進場價位" ,那麼請取消式子裡的 "損控點數" (條件 1.),可以的話,改用下列二選一處理。

(A) 已在前段增加二個條件:
1. 多停 (多停:=進場價-18; )
2. 空停 (空停:=進場價+18; )
增設二條多空停損線,請以 "多停"、"空停" 為停損價位。

(B) 取消 "條件1.",改為:若未達盈利 20 點目標,若遇反手訊號才停損並反手。

以上不知可行否?若可行,敬請幫忙修正。不情之請,尚祈見諒!



這麼說好了
歷史K棒僅有記載 O,H,L,C,V, 並無每一筆 Tick 的價量
故僅用歷史K棒, 並無法斷定條件成立當刻, 當時之價位是多少

這就如同算:
當價位達到多少以上時KD黃金會交叉(價設為7500以上)
那麼首次觸發成立之價不一定是 7500
可能是 7503 或 7501 或其他比7500大的價(由當時行情決定)

實際 "進場價位", 是在券商下單實際成交的價位
就算是以市價單自動去觸發下單
進場實際下單成交的價位, 也不一定會等於條件成立當下Tick之價位
但會趨近, 行情慢可能兩者差異不大, 行情快可能兩者差異很大

前段程式, 既然是進場是以開盤價做為基準 (非在券商下單實際成交價位)
當然進場價就會取動作那根的開盤價來算

以做多為例
盤中只要 當時最新之L價-進場價<=18點 就會觸發停損動作
例如:
進場那根的開盤價為 7018
當前K棒 L 價為 6990, H價為 7007
該K棒總共歷經6個Tick, [7007=>7003=>7001=>6998=>6995=>6990]
那麼當6998這價的Tick收到時, 停損訊號就成立了(就已觸發)
並不會等到 6990 這個 Tick 到達時才成立(觸發)
當然 6998 也不會是等於 "實際在券商下單停損成交之價位"

觸發點之價位, 若想知道, 可以去算觸發成立所需達到之價
例如: 7018-18=7000, 7000就是達到停損條件成立之價
也就是實際在券商下單停損價會落在7000附近

基本上
除非軟體本身, 就已經和券商系統緊密整合良好
否則公式是不可能知道您實際下單成交之價位

想清楚您再決定如何處理吧


由 co2 在 2012-10-16 07:47 發表:

引用:
最初由 cgjj 發表

……………………………………………
……………………………………………
觸發點之價位, 若想知道, 可以去算觸發成立所需達到之價
例如: 7018-18=7000, 7000就是達到停損條件成立之價
也就是實際在券商下單停損價會落在7000附近
……………………………………………


早安!感謝 總版主不厭其煩的詳細說明。

我要的就是這個:
用取得的 "多進" 條件觸發時買進價位,並定義為:買進價
用取得的 "空進" 條件觸發時賣出價位,並定義為:賣出價
以之作為多空觸發點價位為盈虧運算之依据,至少在 "1. 項" 的停損處理上可以做到。

※特別說明:這兩個不能直接用來當作買賣訊,因為買賣訊還有其他條件存在。

其他的就不再嚕嗦,若尚有不明處,請再賜教,麻煩你啦。


由 cgjj 在 2012-10-16 09:04 發表:

引用:
最初由 co2 發表
早安!感謝 總版主不厭其煩的詳細說明。

我要的就是這個:
用取得的 "多進" 條件觸發時買進價位,並定義為:買進價
用取得的 "空進" 條件觸發時賣出價位,並定義為:賣出價
以之作為多空觸發點價位為盈虧運算之依据,至少在 "1. 項" 的停損處理上可以做到。

※特別說明:這兩個不能直接用來當作買賣訊,因為買賣訊還有其他條件存在。

其他的就不再嚕嗦,若尚有不明處,請再賜教,麻煩你啦。



這根本就不會是個問題呀 ....

按照您先前所說
引用:
最初由 co2 發表
關於:1.進場價是以收盤(等於是下一根開盤進場)......


也就是
依據前一根的進場訊號是否成立
決定這一根是否進場(開盤進場故用開盤價)

所以根本不需去求 "條件觸發時買進價位"
因為它是下根開盤進場
所以價位就是下根 "開盤價", 根本不需要另做計算

以 KD 黃金交叉當多方進場訊號, 為例來說:

多進訊:=cross(K,D); //判別訊號是否成立
多進:=ref(多進訊,1); //取前一根的訊號進場

再續接前段之程式
StDoTime:=085000;
多進:=多進 and time>=StDoTime or barpos=0;
空進:=空進 and time>=StDoTime or barpos=0;
進場:=多進-空進;
..........................................

想想, "下一根開盤進場"
當然是用下一根開盤價當進場價計算, 會比較貼近當時市價


由 co2 在 2012-10-16 10:04 發表:

關於:1.進場價是以收盤(等於是下一根開盤進場)......

原來是這一句惹的禍,當時沒注意,我答錯了。

一直以來,我都一再重覆提到 "觸價" 這個字眼,沒想到一時大意,造成不必要的麻煩,個人深感愧疚,謹致歉意。

這個問題就到此結束吧!太累了。

感謝您喔!


由 cgjj 在 2012-10-16 12:23 發表:

引用:
最初由 co2 發表
關於:1.進場價是以收盤(等於是下一根開盤進場)......

原來是這一句惹的禍,當時沒注意,我答錯了。

一直以來,我都一再重覆提到 "觸價" 這個字眼,沒想到一時大意,造成不必要的麻煩,個人深感愧疚,謹致歉意。

這個問題就到此結束吧!太累了。

感謝您喔!



您客氣了 ^^

進場條件是您自行決定的
您把在 "那個價" 會讓進場條件成立, 將其算出
取代原來用的開盤價即可


由 co2 在 2012-10-16 17:34 發表:

引用:
最初由 cgjj 發表
…………………………………………………………………
…………………………………………………………………
…………………………………………………………………
損HL:=LL[i]*(NowDir=1)+HH[i]*(NowDir=-1);
盈HL:=HH[i]*(NowDir=1)+LL[i]*(NowDir=-1);
盈利L:=(損HL-進價)*NowDir;
if (損HL-進價)*NowDir<=-損控點數 then begin
多空:=0; 累停損次:=累停損次+1; //停損
RecDO[i]:=NowDir*5;
…………………………………………………………………
…………………………………………………………………


還是不死心,再來煩您囉!

多謝 總版主指導,找了半天也不知道要改那裡?
經過多方嚐試,將下列這一段 盈利L:=(損HL-進價)*NowDir;
的 "進價" 改為想要的 "賣出價",
再經過一番檢查,感覺好像還有點像!

損HL:=LL[i]*(NowDir=1)+HH[i]*(NowDir=-1);
盈HL:=HH[i]*(NowDir=1)+LL[i]*(NowDir=-1);
盈利L:=(損HL-進價)*NowDir;
if (損HL-賣出價[i])*NowDir<=-損控點數 then begin
多空:=0; 累停損次:=累停損次+1; //停損
RecDO[i]:=NowDir*5;

請問 總版主,這樣改正確嗎?因為只能針對特定位置檢查,
不知會不會影響到整體結構?

這一部份只是空方的,如果正確的話,那還少一樣東西,就是
多方使用的 "買進價" ,我搞不定它,要再麻煩您大大您指導了。


由 cgjj 在 2012-10-17 08:43 發表:

引用:
最初由 co2 發表
還是不死心,再來煩您囉!

多謝 總版主指導,找了半天也不知道要改那裡?
經過多方嚐試,將下列這一段 盈利L:=(損HL-進價)*NowDir;
的 "進價" 改為想要的 "賣出價",
再經過一番檢查,感覺好像還有點像!

損HL:=LL[i]*(NowDir=1)+HH[i]*(NowDir=-1);
盈HL:=HH[i]*(NowDir=1)+LL[i]*(NowDir=-1);
盈利L:=(損HL-進價)*NowDir;
if (損HL-賣出價[i])*NowDir<=-損控點數 then begin
多空:=0; 累停損次:=累停損次+1; //停損
RecDO[i]:=NowDir*5;

請問 總版主,這樣改正確嗎?因為只能針對特定位置檢查,
不知會不會影響到整體結構?

這一部份只是空方的,如果正確的話,那還少一樣東西,就是
多方使用的 "買進價" ,我搞不定它,要再麻煩您大大您指導了。



先將這行
OO:=O; CC:=C; HH:=H; LL:=L;
改為
CC:=C; HH:=H; LL:=L;
進做價:=if(多進,買進價,if(空進,賣出價,0));

再將迴圈中的
進價:=OO[i];
改為
進價:=進做價[i];
註:迴圈內共有兩個地方要改


由 co2 在 2012-10-17 09:10 發表:

引用:
最初由 cgjj 發表
先將這行
OO:=O; CC:=C; HH:=H; LL:=L;
改為
CC:=C; HH:=H; LL:=L;
進做價:=if(多進,買進價,if(空進,賣出價,0));

再將迴圈中的
進價:=OO[i];
改為
進價:=進做價[i];
註:迴圈內共有兩個地方要改



總版主:早安!

已經遵照指示改好正在線上測試中,下午再向您回報。

有感謝喔!


由 co2 在 2012-10-17 13:44 發表:

向 總版主回報:

目前測試OK,非常滿意,若有疑問當再來向 您請益。

多謝,再感謝。


由 cgjj 在 2012-10-17 14:00 發表:

引用:
最初由 co2 發表
向 總版主回報:

目前測試OK,非常滿意,若有疑問當再來向 您請益。

多謝,再感謝。



不客氣


由 wqew2002 在 2012-10-27 12:45 發表:

^^


由 co2 在 2013-01-28 21:57 發表:

[QUOTE]最初由 cgjj 發表
[B]

原碼:

StDoTime
:=085000;
多進:=多進 and time>=StDoTime or barpos=0;
空進:=空進 and time>=StDoTime or barpos=0;
進場:=多進-空進;
強出:=time>=133500;
限進:=time>=131000;
限停損次:=2//每日
損控點數:=18;
黑五:=sum(C<O,5)=5;
OO:=OCC:=CHH:=HLL:=L;
StDE:=barpos=or time=StDoTime;
DoBS:C*0 NOAXIS;
多空:=0//1.多 -1.空 0.無
for i=1 to datacount do begin
  
if StDE[ithen 累停損次:=0;
  if 
多空=and 強出[i]=and 限進[i]=and 累停損次<限停損次 then begin
    多空
:=進場[i]*2
    if 
多空<>0 then begin 
      進價
:=OO[i]; Max盈:=0PreTN:=0;
    
end;
  
end else if 多空<>0 then begin
    NowDir
:=SGN(多空);
    if 
強出[ithen begin
      多空
:=0;
    
end else if NowDir=-進場[ithen begin
      多空
:=-NowDir*2*(限進[i]=0); //反手
      
if 多空<>0 then begin
        進價
:=OO[i]; Max盈:=0PreTN:=0;
      
end;
    
end else begin      
      損HL
:=LL[i]*(NowDir=1)+HH[i]*(NowDir=-1);
      
盈HL:=HH[i]*(NowDir=1)+LL[i]*(NowDir=-1);
      
盈利L:=(損HL-進價)*NowDir;
      if (
損HL-進價)*NowDir<=-損控點數 then begin
        多空
:=0累停損次:=累停損次+1//停損
      
end else if Max盈>=61 then begin
        
if 黑五[i] or 盈利L<Max盈*0.75 then 多空:=0;
      
end else if Max盈>=41 then begin
        
if 盈利L<=Max盈*0.4 then begin
          多空
:=0;
        
end else if 盈利L<=Max盈*0.7 and PreTN<>0.7 then begin
          多空
:=多空-NowDirPreTN:=0.7;
        
end;
      
end else if Max盈>=21 then begin
        
if 盈利L<=Max盈-32 then begin
          多空
:=0;
        
end else if 盈利L<Max盈-16 and PreTN<>16 then begin
          多空
:=多空-NowDirPreTN:=16;
        
end;
      
end;
      
盈利H:=(盈HL-進價)*NowDir;
      if 
盈利H>Max盈 then Max盈:=盈利H;
    
end;
  
end;
  
DoBS[i]:=多空;
end;



總版主您好!
經過一段時間試用,發現有一點不甚理想之處,因此再來求教:
是關於:"限停損次:=2; //每日" 的問題
想改成:每日限制交易次數(二次),來回算一次(進場之後反手即算一次),
這樣在實際操作上比較合乎現實要求。謝謝您!


由 cgjj 在 2013-01-29 09:05 發表:

引用:
最初由 co2 發表

總版主您好!
經過一段時間試用,發現有一點不甚理想之處,因此再來求教:
是關於:"限停損次:=2; //每日" 的問題
想改成:每日限制交易次數(二次),來回算一次(進場之後反手即算一次),
這樣在實際操作上比較合乎現實要求。謝謝您!



您帶入的多空訊號必定是正反輪換延續嗎? 例如:
多進,空進,多進,空進,多進,空進,多進,空進 .... 共四次
空進,多進,空進,多進,空進,多進 .... 共三次
多進,多停,空進,多進,空進,空停,多進,空進 ........ 共三次

若非正反輪換, 則您要如何算? 例如:
多進,空進,多進,多停,多進,空進,多進,空進,空停,多進,空進 ...算幾次?


由 co2 在 2013-01-29 10:22 發表:

引用:
最初由 cgjj 發表
您帶入的多空訊號必定是正反輪換延續嗎? 例如:
多進,空進,多進,空進,多進,空進,多進,空進 .... 共四次
空進,多進,空進,多進,空進,多進 .... 共三次
多進,多停,空進,多進,空進,空停,多進,空進 ........ 共三次

若非正反輪換, 則您要如何算? 例如:
多進,空進,多進,多停,多進,空進,多進,空進,空停,多進,空進 ...算幾次?



早安!
抱歉,怱忙中忘了提,這個式子我土法煉鋼已經簡化改為一口單,正在
測試中,因為有些點位不會很快出現,所以正確與否尚在觀察中。

我的作法大致如下:

1. 開盤後若先有多訊:則 多、空、多、空………循環作單,一多一空就是交易一次。
    或先有空訊:則 空、多、空、多………循環作單,一空一多也是交易一次。

2. 不論作多或作空,遇 "停利點" 則平倉空手,此一來回即視為限制交易次數的 "一次"。
 停利後如果沒有超過限制交易次數的話,就等待 "反向" 作單機會。

3. 改成一口單後已暫時將 "停損" 關閉 (放大損控點數至9999),
 所以 "反手點" 等於是 "停損點" 。

4. 若作單後一路順風,則時間到【強出】平倉空手。

補充說明如上,當中若有不妥,請不吝賜教指正。


由 cgjj 在 2013-01-29 21:41 發表:

引用:
最初由 co2 發表
總版主您好!
經過一段時間試用,發現有一點不甚理想之處,因此再來求教:
是關於:"限停損次:=2; //每日" 的問題
想改成:每日限制交易次數(二次),來回算一次(進場之後反手即算一次),
這樣在實際操作上比較合乎現實要求。謝謝您!



剛要答覆您新的需求時
發現原來回應的這段程式碼, 有遺漏一個地方

限制停損次數只對一般進場有用, 反手的進場並無被限制到

需將此行
多空:=-NowDir*2*(限進[i]=0); //反手

修正為:
多空:=-NowDir*2*(限進[i]=0 and 累停損次<限停損次); //反手


由 cgjj 在 2013-01-29 21:42 發表:

引用:
最初由 co2 發表
早安!
抱歉,怱忙中忘了提,這個式子我土法煉鋼已經簡化改為一口單,正在
測試中,因為有些點位不會很快出現,所以正確與否尚在觀察中。

我的作法大致如下:

1. 開盤後若先有多訊:則 多、空、多、空………循環作單,一多一空就是交易一次。
    或先有空訊:則 空、多、空、多………循環作單,一空一多也是交易一次。

2. 不論作多或作空,遇 "停利點" 則平倉空手,此一來回即視為限制交易次數的 "一次"。
 停利後如果沒有超過限制交易次數的話,就等待 "反向" 作單機會。

3. 改成一口單後已暫時將 "停損" 關閉 (放大損控點數至9999),
 所以 "反手點" 等於是 "停損點" 。

4. 若作單後一路順風,則時間到【強出】平倉空手。

補充說明如上,當中若有不妥,請不吝賜教指正。



試試看這樣是否為您要的

原碼:

StDoTime
:=085000;
多進:=多進 and time>=StDoTime or barpos=0;
空進:=空進 and time>=StDoTime or barpos=0;
進場:=多進-空進;
強出:=time>=133500;
限進:=time>=131000;
限制趟數:=2//每日
損控點數:=18;
黑五:=sum(C<O,5)=5;
OO:=OCC:=CHH:=HLL:=L;
StDE:=barpos=or time=StDoTime;
DoBS:C*0 NOAXIS;
多空:=0//1.多 -1.空 0.無
for i=1 to datacount do begin
  
if StDE[ithen begin
    累計趟數
:=0RecChgDir:=0;
  
end;
  if 
多空=and 強出[i]=and 限進[i]=and 累計趟數<限制趟數 then begin
    多空
:=進場[i]*2;
    if 
多空<>0 then begin 
      進價
:=OO[i]; Max盈:=0PreTN:=0NowDir:=SGN(多空);
      if 
RecChgDir=0 then begin
        RecChgDir
:=NowDir;
      
end else if RecChgDir=-NowDir then begin
        累計趟數
:=累計趟數+1RecChgDir:=0;
      
end;
    
end;
  
end else if 多空<>0 then begin
    NowDir
:=SGN(多空);
    if 
強出[ithen begin
      多空
:=0;
    
end else if NowDir=-進場[ithen begin
      多空
:=-NowDir*2*(限進[i]=and 累計趟數<限制趟數); //反手
      
if 多空<>0 then begin
        進價
:=OO[i]; Max盈:=0PreTN:=0;
        if 
RecChgDir=0 then begin
          RecChgDir
:=SGN(多空);
        
end else if RecChgDir=-SGN(多空then begin
          累計趟數
:=累計趟數+1RecChgDir:=0;
        
end;
      
end;
    
end else begin      
      損HL
:=LL[i]*(NowDir=1)+HH[i]*(NowDir=-1);
      
盈HL:=HH[i]*(NowDir=1)+LL[i]*(NowDir=-1);
      
盈利L:=(損HL-進價)*NowDir;
      if (
損HL-進價)*NowDir<=-損控點數 then begin
        多空
:=0//停損
      
end else if Max盈>=61 then begin
        
if 黑五[i] or 盈利L<Max盈*0.75 then 多空:=0;
      
end else if Max盈>=41 then begin
        
if 盈利L<=Max盈*0.4 then begin
          多空
:=0;
        
end else if 盈利L<=Max盈*0.7 and PreTN<>0.7 then begin
          多空
:=多空-NowDirPreTN:=0.7;
        
end;
      
end else if Max盈>=21 then begin
        
if 盈利L<=Max盈-32 then begin
          多空
:=0;
        
end else if 盈利L<Max盈-16 and PreTN<>16 then begin
          多空
:=多空-NowDirPreTN:=16;
        
end;
      
end;
      
盈利H:=(盈HL-進價)*NowDir;
      if 
盈利H>Max盈 then Max盈:=盈利H;
    
end;
  
end;
  
DoBS[i]:=多空
end;


由 co2 在 2013-01-30 07:44 發表:

早安!
多謝,套用測試中,有結果再回報。


由 co2 在 2013-01-30 09:45 發表:

請問:
1. 輸出表達式可以用類似以下的方式表達嗎?
//[進出] 這變數值代表意義如下:
//1.多單進場, 2.多單出場, 3.多控利出, 4.多控損出, 5.強制出場, 6.空出轉多
//-1.空單進場,-2.空單出場,-3.空控利出, -4.空控損出, -5.強制出場, -6.多出轉空
※若可簡化則簡化之。

2. 當停利後隔筆好像同向的訊號又再出現(如:作多盈出後下一根又出現多訊)。

以上為初步發現的小問題,其餘則等收盤後再研究。謝謝!


由 cgjj 在 2013-01-30 10:33 發表:

引用:
最初由 co2 發表
請問:
2. 當停利後隔筆好像同向的訊號又再出現(如:作多盈出後下一根又出現多訊)。



DoBS 變數
其為該根動作完成後所持有的口數, 本身不是代表進場訊

若非誤看
請幫忙確認一下, 原始訊號是不是一正一反?
還是有 多多空多空空多 類似這種情況

若是用兩條線交叉去做正反, 應該不會如此唷
除非您是用 A>B 和 A<B 類似這種去做訊號


由 co2 在 2013-01-30 13:35 發表:

引用:
最初由 cgjj 發表
DoBS 變數
其為該根動作完成後所持有的口數, 本身不是代表進場訊

若非誤看
請幫忙確認一下, 原始訊號是不是一正一反?
還是有 多多空多空空多 類似這種情況

若是用兩條線交叉去做正反, 應該不會如此唷
除非您是用 A>B 和 A<B 類似這種去做訊號



了解,原來 DoBS 是持有的口數而不是進場訊。

我目前使用的原始訊號就是當許多條件都成立時才產生(成立時就是 =1 )

※我想用這樣來說明應該比較清楚:
多訊:= if(條件A and 條件B and 條件C and 條件D,1,0) ;
空訊:= if(條件A and 條件B and 條件C and 條件D,1,0);

簡單的說,就是作多後就等著有空訊再反空或者是停利、停損。

這套用在您的範例式子裡就類似:進出:= 多訊-空訊;
不知道這樣是否適合您現在所示範的式子?

※若只要作一口單,修改那一部份最簡單。


由 cgjj 在 2013-01-30 15:07 發表:

引用:
最初由 co2 發表
了解,原來 DoBS 是持有的口數而不是進場訊。

我目前使用的原始訊號就是當許多條件都成立時才產生(成立時就是 =1 )

※我想用這樣來說明應該比較清楚:
多訊:= if(條件A and 條件B and 條件C and 條件D,1,0) ;
空訊:= if(條件A and 條件B and 條件C and 條件D,1,0);

簡單的說,就是作多後就等著有空訊再反空或者是停利、停損。

這套用在您的範例式子裡就類似:進出:= 多訊-空訊;
不知道這樣是否適合您現在所示範的式子?

※若只要作一口單,修改那一部份最簡單。



這樣的多空訊
可能就會有 多多空多空空多 這種情況
(條件規則決定特性, 將多空訊輸出檢視就可觀察現象)
會導致有連續同方向的進場訊號
需用程式濾訊
可先在迴圈外先濾訊後, 再帶入運算
亦可於迴圈內去加程式處理
通常選擇在迴圈外處理比較好(可先觀察濾訊後的結果)

不是怎麼改比較簡單的問題
您原先的相關定義是基於兩口單的規則
規則沒被重新調整定義, 是無法修改的


由 co2 在 2013-01-30 15:23 發表:

了解,再研究囉。謝謝。


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


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

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