註冊  登入
 

 搜尋

迷你方式顯示論壇 RSS訂閱此版新訊息  

加入收藏 

使用幫助 

聯繫我們 
首頁 >> 程式交易 >> 論壇主區 >> HSQL語言討論區 >> 查看文章
 新帖 新投票 回覆文章 上篇 重新整理 下篇  


 97128: 此主題共有17帖 此頁12帖 每頁12帖
 


 主題:訊號異常? - 複製地址
 

帥哥,離線

kimoze1 



級別 騎士
積分 255
經驗 15589
文章 203
註冊 09-06-07 23:33
發表: 2010-01-26 12:26:18 人氣:111943樓主

訊號異常?

策略是設定紅線以上作空
所以紅線上會出現多單訊號我覺得很怪
畫面沒有動作的情況下訊號是正常的
[URL=http://f23.yahoofs.com/myper/PWcKb_CYHx9iZQmOlF1e.BuQ_g--/blog/F23_20100126121820386.jpg?TTAONYLB0Oq4V_0o]http://f23.yahoofs.com/myper/PWcKb_CYHx9iZQmOlF1e.BuQ_g--/blog/F23_20100126121820386.jpg?TTAONYLB0Oq4V_0o[/URL]

按下即時連線(或是應該說畫面移動後訊號就變了)
[URL=http://f23.yahoofs.com/myper/PWcKb_CYHx9iZQmOlF1e.BuQ_g--/blog/F23_20100126121820599.jpg?TTAONYLBO8mLMrl.]http://f23.yahoofs.com/myper/PWcKb_CYHx9iZQmOlF1e.BuQ_g--/blog/F23_20100126121820599.jpg?TTAONYLBO8mLMrl.[/URL]

策略程式碼架構如下
  10 If 1分_K線日期 <> 前1_1分_K線日期 Then 
  20  Vt = 0 
  30 End If 
  40 Vk = 1分_收盤價 
 
 100 Vz = 5分_轉折精靈一號 
 
 260 // 多單進場 
 270 If 目前部位( 倉位多空 ) <= 0 And Vt = 0 Then 
 280  If 單K計數器( 目前K線 , 0 ) = 0 Then 
 290   If (多單條件) Then 
 300    下單[ MTX 小台指期 , 操作價位:市價 , 最終部位:1 ] 
 310    Vk = 1分_收盤價 
 320    Show [ K線下方 , ◎ ] 
 330    操作訊號( 空單平倉 , 1口 , Vk ) 
 340    操作訊號( 多單建倉 , 1口 , Vk ) 
 350    Vt = 1 
 360    Vc = 1分_K線時間 
 370    Vl = Vk - 30 
 380    單K計數器( 目前K線 , 0 ) = 1 
 390   End If 
 400  Else 
 410   Show [ K線下方 , ◎ ] 
 420   操作訊號( 空單平倉 , 1口 , Vk ) 
 430   操作訊號( 多單建倉 , 1口 , Vk ) 
 440   Vt = 1 
 450   Vc = 1分_K線時間 
 460   Vl = Vk - 30 
 470  End If 
 480 End If 
 490 
 500 // 空單進場 
 510 If 目前部位( 倉位多空 ) >= 0 And Vt = 0 Then 
 520  If 單K計數器( 目前K線 , 0 ) = 0 Then 
 530   If (空單條件) Then 
 540    下單[ MTX 小台指期 , 操作價位:市價 , 最終部位:-1 ] 
 550    Vk = 1分_收盤價 
 560    Show [ K線上方 , ◎ ] 
 570    操作訊號( 多單平倉 , 1口 , Vk ) 
 580    操作訊號( 空單建倉 , 1口 , Vk ) 
 590    Vt = 1 
 600    Vh = Vk + 30 
 610    Vc = 1分_K線時間 
 620    單K計數器( 目前K線 , 0 ) = 1 
 630   End If 
 640  Else 
 650   Show [ K線上方 , ◎ ] 
 660   操作訊號( 多單平倉 , 1口 , Vk ) 
 670   操作訊號( 空單建倉 , 1口 , Vk ) 
 680   Vt = 1 
 690   Vh = Vk + 30 
 700   Vc = 1分_K線時間 
 710  End If 
 720 End If 
 730 
 740 If Vt = 1 And 1分_K線時間 > Vc Then 
 750  // 多單反手 
 760  If 目前部位( 倉位多空 ) > 0 And 1分_收盤價 < Vw Then 
 770   If 單K計數器( 目前K線 , 1 ) = 0 Then 
 780    If 條件觸發[ 單一筆單虧損30點 ] = 是 Then 
 790     下單[ MTX 小台指期 , 操作價位:市價 , 最終部位:-1 ] 
 800     Show [ K線上方 , ★ ] 
 810     操作訊號( 多單平倉 , 1口 , Vl ) 
 820     操作訊號( 空單建倉 , 1口 , Vl ) 
 830     Vt = 2 
 840     Vh = Vl + 30 
 850     Vc = 1分_K線時間 
 860     單K計數器( 目前K線 , 1 ) = 1 
 870    End If 
 880   Else 
 890    Show [ K線上方 , ★ ] 
 900    操作訊號( 多單平倉 , 1口 , Vl ) 
 910    操作訊號( 空單建倉 , 1口 , Vl ) 
 920    Vt = 2 
 930    Vh = Vl + 30 
 940    Vc = 1分_K線時間 
 950   End If 
 960   // 空單反手 
 970  Else 
 980   If 目前部位( 倉位多空 ) < 0 And 1分_收盤價 > Vm Then 
 990    If 單K計數器( 目前K線 , 1 ) = 0 Then 
1000     If 條件觸發[ 單一筆單虧損30點 ] = 是 Then 
1010      下單[ MTX 小台指期 , 操作價位:市價 , 最終部位:1 ] 
1020      Show [ K線下方 , ★ ] 
1030      操作訊號( 空單平倉 , 1口 , Vh ) 
1040      操作訊號( 多單建倉 , 1口 , Vh ) 
1050      Vt = 2 
1060      Vl = Vh - 30  
1070      Vc = 1分_K線時間 
1080      單K計數器( 目前K線 , 1 ) = 1 
1090     End If 
1100    Else 
1110     Show [ K線下方 , ★ ] 
1120     操作訊號( 空單平倉 , 1口 , Vh ) 
1130     操作訊號( 多單建倉 , 1口 , Vh ) 
1140     Vt = 2 
1150     Vl = Vh - 30  
1160     Vc = 1分_K線時間 
1170    End If 
1180   End If 
1190  End If 
1200 End If 
1210 
1220 // 反手停損 
1230 If Vt = 2 And 1分_K線時間 > Vc Then 
1240  If 目前部位( 倉位多空 ) > 0 Then 
1250   If 單K計數器( 目前K線 , 2 ) = 0 Then 
1260    If 條件觸發[ 單一筆單虧損30點 ] = 是 Then 
1270     下單[ MTX 小台指期 , 操作價位:市價 , 最終部位:0 ] 
1280     Show [ K線下方 , ※ ] 
1290     操作訊號( 多單平倉 , 1口 , Vl ) 
1300     Vt = 3 
1310     單K計數器( 目前K線 , 2 ) = 1 
1320    End If 
1330   Else 
1340    Show [ K線下方 , ※ ] 
1350    操作訊號( 多單平倉 , 1口 , Vl ) 
1360    Vt = 3 
1370   End If 
1380  Else 
1390   If 單K計數器( 目前K線 , 2 ) = 0 Then 
1400    If 條件觸發[ 單一筆單虧損30點 ] = 是 Then 
1410     下單[ MTX 小台指期 , 操作價位:市價 , 最終部位:0 ] 
1420     Show [ K線上方 , ※ ] 
1430     操作訊號( 空單平倉 , 1口 , Vh ) 
1440     Vt = 3 
1450     單K計數器( 目前K線 , 2 ) = 1 
1460    End If 
1470   Else 
1480    Show [ K線上方 , ※ ] 
1490    操作訊號( 空單平倉 , 1口 , Vh ) 
1500    Vt = 3 
1510   End If 
1520  End If 
1530 End If 
1540 
1550 // 收盤平倉 
1560 If 1分_K線時間 = 1340 Then 
1570  Vk = 1分_開盤價 
1580  If 目前部位( 倉位多空 ) > 0 Then 
1590   下單[ MTX 小台指期 , 操作價位:市價 , 最終部位:0 ] 
1600   Show [ K線上方 , ※ ] 
1610   操作訊號( 多單平倉 , 1口 , Vk ) 
1620   Vt = 3 
1630  End If 
1640  If 目前部位( 倉位多空 ) < 0 Then 
1650   下單[ MTX 小台指期 , 操作價位:市價 , 最終部位:0 ] 
1660   Show [ K線下方 , ※ ] 
1670   操作訊號( 空單平倉 , 1口 , Vk ) 
1680   Vt = 3 
1690  End If 
1700 End If 

[ 此帖最後由Hunta在2010/1/26 下午 01:26:41從 建議與錯誤回報 轉移過來 ]   


帥哥,離線

kimoze1 



級別 騎士
積分 255
經驗 15589
文章 203
註冊 09-06-07 23:33
發表: 2010-01-26 12:27:542

是否有程式碼有錯?
請版大協助修正
謝謝~~

帥哥,離線

Hunta 



門派 管理員
職務 總版主
級別 法老
聲望 +100000
財富 100002
積分 101915
經驗 642850
文章 1733
註冊 09-04-10 17:15
發表: 2010-01-26 13:43:283

請用Debug功能將重要變數記錄下來分析一下。

帥哥,離線

kimoze1 



級別 騎士
積分 255
經驗 15589
文章 203
註冊 09-06-07 23:33
發表: 2010-01-26 23:09:084

已發訊息在麻煩版主測試一下~~

帥哥,離線

kimoze1 



級別 騎士
積分 255
經驗 15589
文章 203
註冊 09-06-07 23:33
發表: 2010-01-27 11:39:145

已經MAIL了

帥哥,離線

TIGER  巨蟹座 寅虎



級別 騎士
積分 292
經驗 25137
文章 206
註冊 09-11-12 23:41
發表: 2010-01-27 13:59:496

我的建議,你可以參考一下
1.可以先用NEXT BAR 的方式先測試訊號是否如預期中的出現(好處是,程式碼可以少很多,較容易閱讀並找BUG)
  (一開始寫程式不要用THIS BAR的方式,否則找BUG會很辛苦的)
2.第二再透過畫面上檢查訊號出現的狀況,看看事簿是符合預期,看看有無需要改進的地方(甚至用DEBUG函數,將關鍵的數字SHOW在畫面上檢查)
3.回測一下,看看績效的表現,績效表現不好,在看看策略是否要修正(不需要一開始就使用"下單的函數")
4.修正到最後,績效仍舊表現不好,則先暫時拋棄此策略,重新開發一個新的

我個人也是這樣載這循環裡面轉阿轉的
提醒你要注意一點,用THIS BAR的策略,回測的績效會與實際有所出入,因為已經無法還原當時開盤的壯況
所以非常建議使用NEXT BAR的方式開發策略
這樣回測績效會與實際狀況較接近,也才能夠比較信任策略

以上希望對你有幫助


TIGER

帥哥,離線

gary09210217 



級別 騎士
積分 211
經驗 2863
文章 153
註冊 09-10-22 16:28
發表: 2010-01-27 14:41:597

請教TIGER大:

我一直有一個疑惑,就是停損點的設定也以NEXT BAR的方式處理,
就怕當根K的漲跌點數很大時在以次K開盤價出場這樣的風控是否較冒險?
還是您有更好的停損機制呢?

請指點迷津,感謝!

帥哥,離線

TIGER  巨蟹座 寅虎



級別 騎士
積分 292
經驗 25137
文章 206
註冊 09-11-12 23:41
發表: 2010-01-27 15:56:368

我個人絕得停損機制可以多幾道在程式碼裡面
可以有NSXT BAR的停損(型態或是乖離或背離的停損方式)
也可以有THIS BAR的停損(絕對點數的停損,面對快市的停損方式)  
一起搭配
THIS BAR的停損:條件觸發的函數很好用,在即時連線的情況都可以準確發出訊號
但是提醒一點 [自__根K線下跌或上漲__點數]的函數,回測的績效會與實際有誤差
誤差的比率要看設定的點數而定
(我之前設定50點,誤差比率約為 60/480 ,績效砍一半才符合實際狀況)


TIGER

帥哥,離線

kimoze1 



級別 騎士
積分 255
經驗 15589
文章 203
註冊 09-06-07 23:33
發表: 2010-01-27 18:13:159

所以只要把收盤價通通改成前一收盤價?
我今天再試試
有問題再請tiger大指點一下!
^^

帥哥,離線

Hunta 



門派 管理員
職務 總版主
級別 法老
聲望 +100000
財富 100002
積分 101915
經驗 642850
文章 1733
註冊 09-04-10 17:15
發表: 2010-01-28 11:18:4710

已找到問題點,只要將單K計數器全部給予不同編號即可,策略已修改好寄回給你了。
Sorry!!是我的範例寫錯,所以你也跟著錯。

帥哥,離線

kimoze1 



級別 騎士
積分 255
經驗 15589
文章 203
註冊 09-06-07 23:33
發表: 2010-01-31 08:35:2911

誤差比率60/480是什麼意思?是獲利點數480點有60點誤差?

帥哥,離線

TIGER  巨蟹座 寅虎



級別 騎士
積分 292
經驗 25137
文章 206
註冊 09-11-12 23:41
發表: 2010-01-31 11:31:3112

誤差比率60/480
意思是指  交易次數480次(一年)
我把這些資料轉出excel
將他與畫面上的資料作比對
約有60筆的資料的績效數字與excel不符(也就是出場點不對,造成績效不符)
為何出場點會不對,是因為我用了我提到的那個函數
這些不對的資料中,檢查之後都會有 獲利虛增  損失少報的情況(因為出場點都會延後)
所以最後excel的總績效需要砍一半,才比較符合實際跑出來的結果(砍一半是依照我的範例來說,不一定適用所有策略)

所以我的策略在上線前發現此問題,就沒有上線了
把語法改寫去驗證函數[自__根k線上漲或回跌__點]
驗證結果,績效真的都要砍掉一半才符合實際狀況
砍一半的績效不符我的期望  所以現在還在想辦法中!


TIGER


 97128: 此主題共有17帖 此頁12帖 每頁12帖
 

 新帖 新投票 回覆文章



回覆文章 注意: *為必填項
*驗證訊息
用戶名稱 密碼 註冊
*文章名稱 長度不得超過255字
內容(最大25K)

是否是UBB代碼

內容支持插入UBB標籤
使用方法請參考幫助
其它選項:  顯示簽名   鎖定文章  - 顏色表   Alt+S或Ctrl+Enter快速提交