HSP程式交易論壇 >> 程式交易 >> 論壇主區 >> HSQL語言討論區 >> 訊號異常?
訊號異常?
kimoze1,2010-01-26 12:26:18
策略是設定紅線以上作空
所以紅線上會出現多單訊號我覺得很怪
畫面沒有動作的情況下訊號是正常的
[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
kimoze1,2010-01-26 12:27:54
是否有程式碼有錯?
請版大協助修正
謝謝~~
Hunta,2010-01-26 13:43:28
請用Debug功能將重要變數記錄下來分析一下。
kimoze1,2010-01-26 23:09:08
已發訊息在麻煩版主測試一下~~
kimoze1,2010-01-27 11:39:14
已經MAIL了
TIGER,2010-01-27 13:59:49
我的建議,你可以參考一下
1.可以先用NEXT BAR 的方式先測試訊號是否如預期中的出現(好處是,程式碼可以少很多,較容易閱讀並找BUG)
(一開始寫程式不要用THIS BAR的方式,否則找BUG會很辛苦的)
2.第二再透過畫面上檢查訊號出現的狀況,看看事簿是符合預期,看看有無需要改進的地方(甚至用DEBUG函數,將關鍵的數字SHOW在畫面上檢查)
3.回測一下,看看績效的表現,績效表現不好,在看看策略是否要修正(不需要一開始就使用"下單的函數")
4.修正到最後,績效仍舊表現不好,則先暫時拋棄此策略,重新開發一個新的
我個人也是這樣載這循環裡面轉阿轉的
提醒你要注意一點,用THIS BAR的策略,回測的績效會與實際有所出入,因為已經無法還原當時開盤的壯況
所以非常建議使用NEXT BAR的方式開發策略
這樣回測績效會與實際狀況較接近,也才能夠比較信任策略
以上希望對你有幫助
gary09210217,2010-01-27 14:41:59
請教TIGER大:
我一直有一個疑惑,就是停損點的設定也以NEXT BAR的方式處理,
就怕當根K的漲跌點數很大時在以次K開盤價出場這樣的風控是否較冒險?
還是您有更好的停損機制呢?
請指點迷津,感謝!
TIGER,2010-01-27 15:56:36
我個人絕得停損機制可以多幾道在程式碼裡面
可以有NSXT BAR的停損(型態或是乖離或背離的停損方式)
也可以有THIS BAR的停損(絕對點數的停損,面對快市的停損方式)
一起搭配
THIS BAR的停損:條件觸發的函數很好用,在即時連線的情況都可以準確發出訊號
但是提醒一點 [自__根K線下跌或上漲__點數]的函數,回測的績效會與實際有誤差
誤差的比率要看設定的點數而定
(我之前設定50點,誤差比率約為 60/480 ,績效砍一半才符合實際狀況)
kimoze1,2010-01-27 18:13:15
所以只要把收盤價通通改成前一收盤價?
我今天再試試
有問題再請tiger大指點一下!
^^
Hunta,2010-01-28 11:18:47
已找到問題點,只要將單K計數器全部給予不同編號即可,策略已修改好寄回給你了。
Sorry!!是我的範例寫錯,所以你也跟著錯。
kimoze1,2010-01-31 08:35:29
誤差比率60/480是什麼意思?是獲利點數480點有60點誤差?
TIGER,2010-01-31 11:31:31
誤差比率60/480
意思是指 交易次數480次(一年)
我把這些資料轉出excel
將他與畫面上的資料作比對
約有60筆的資料的績效數字與excel不符(也就是出場點不對,造成績效不符)
為何出場點會不對,是因為我用了我提到的那個函數
這些不對的資料中,檢查之後都會有 獲利虛增 損失少報的情況(因為出場點都會延後)
所以最後excel的總績效需要砍一半,才比較符合實際跑出來的結果(砍一半是依照我的範例來說,不一定適用所有策略)
所以我的策略在上線前發現此問題,就沒有上線了
把語法改寫去驗證函數[自__根k線上漲或回跌__點]
驗證結果,績效真的都要砍掉一半才符合實際狀況
砍一半的績效不符我的期望 所以現在還在想辦法中!
97 1 2 8: 此主題共有17帖 此頁12帖 每頁12帖
[查看完整模式] LeadBBS 5.0 耗時63.5毫秒 請求2次
|