HSP程式交易論壇 >> 程式交易 >> 論壇主區 >> HSQL語言討論區 >> 單K計數器的用法問題
單K計數器的用法問題
hunt168,2009-07-31 02:16:34
版主您好...
在正準備進行丟由自動下單機的處理階段了,但目前程式在進行回測時發現,在加入"單K計數器"後,多單或空單出場點只會執行到第一個指令(13:25分出場),也就是說本來符合"elself"後的出場指令在加入"單k計數器"後變成完全不動作了,應該如何正確的使用"單k計數器"呢?
有勞版主指導了...感謝!!
880 // 空單出場
890 If 目前部位( 倉位多空 ) < 0 Then
900 If 前1_5分_K線時間 = 1325 Then
910 操作訊號( 空單平倉 , 1口 , Vb )
920 Show [ K線上方 , ◎ ]
930 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then
940 S1$ = '1'
950 輸出命令檔( c\1688.txt , [yyyy]/[mm]/[dd]□[hh]:[nn]:[ss]□[S1$] )
960 單K計數器( 目前K線 , 0 ) = 1
970
980 ElseIf .............. Then
990 操作訊號( 空單平倉 , 1口 , Vb )
1000 Show [ K線下方 , ◎ ]
1010 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then
1020 S1$ = '1'
1030 輸出命令檔( c\1688.txt , [yyyy]/[mm]/[dd]□[hh]:[nn]:[ss]□[S1$] )
1040 單K計數器( 目前K線 , 0 ) = 1
1050
1060 ElseIf ................ Then
1070 操作訊號( 空單平倉 , 1口 , Vb )
1080 Show [ K線下方 , ◎ ]
1090 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then
1100 S1$ = '1'
1110 輸出命令檔( c\1688.txt , [yyyy]/[mm]/[dd]□[hh]:[nn]:[ss]□[S1$] )
1120 單K計數器( 目前K線 , 0 ) = 1
1130
1140 ElseIf ......... Then
1150 操作訊號( 空單平倉 , 1口 , Vb )
1160 Show [ K線下方 , ◎ ]
1170 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then
1180 S1$ = '1'
1190 輸出命令檔( c\1688.txt , [yyyy]/[mm]/[dd]□[hh]:[nn]:[ss]□[S1$] )
1200 單K計數器( 目前K線 , 0 ) = 1
1210 End If
1220 End If
1230 End If
1240 End If
1250 End If
1260 End If
Hunta,2009-07-31 06:50:39
應該改寫成:
880 // 空單出場
890 If 目前部位( 倉位多空 ) < 0 Then
900 If 前1_5分_K線時間 = 1325 Then
910 操作訊號( 空單平倉 , 1口 , Vb )
920 Show [ K線上方 , ◎ ]
930 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then
940 S1$ = '1'
950 輸出命令檔( c\1688.txt , [yyyy]/[mm]/[dd]□[hh]:[nn]:[ss]□[S1$] )
960 單K計數器( 目前K線 , 0 ) = 1
970 End If
End If
980 If .............. Then
990 操作訊號( 空單平倉 , 1口 , Vb )
1000 Show [ K線下方 , ◎ ]
1010 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then
1020 S1$ = '1'
1030 輸出命令檔( c\1688.txt , [yyyy]/[mm]/[dd]□[hh]:[nn]:[ss]□[S1$] )
1040 單K計數器( 目前K線 , 0 ) = 1
1050 End If
End If
1060 If ................ Then
1070 操作訊號( 空單平倉 , 1口 , Vb )
1080 Show [ K線下方 , ◎ ]
1090 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then
1100 S1$ = '1'
1110 輸出命令檔( c\1688.txt , [yyyy]/[mm]/[dd]□[hh]:[nn]:[ss]□[S1$] )
1120 單K計數器( 目前K線 , 0 ) = 1
1130 End If
End If
1140 If ......... Then
1150 操作訊號( 空單平倉 , 1口 , Vb )
1160 Show [ K線下方 , ◎ ]
1170 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then
1180 S1$ = '1'
1190 輸出命令檔( c\1688.txt , [yyyy]/[mm]/[dd]□[hh]:[nn]:[ss]□[S1$] )
1200 單K計數器( 目前K線 , 0 ) = 1
1210 End If
1220 End If
1260 End If
hunt168,2009-08-01 00:32:23
版主您好...
依照您的方法修改後,加入了"單K計數器"所回測的資料與以往的紀錄完全符合了,但是可否請教;1.如此程式的寫法,與本來以"Elself"的寫法為何會相同呢? 2.可以解釋一下加入"單k計數器"後"End If"的用法嗎? 3.今天在盤中理應有訊號輸出但剛才在程式中發現"c:\"中少加上了":"號錯過了今天的行情...要請問版主的是今天盤中即時指標有看到訊號出現,但是盤後回測時今日卻是無任何買賣資料(可能是用均價趨勢指標的關係),那麼當時輸出命令檔在盤中是否會出現訊號呢? 4."S1$"的文字輸出是",1,7000"還是" 1 7000"呢?(下單機判讀的格式選擇)
不好意思問題繁雜,感謝版主!!...
Hunta,2009-08-01 16:04:43
1,2.其實你原本的寫法也可以,只是邏輯上有點錯誤,應該是:
If ... Then
If 最後K線 = 是 ... Then
End If
ElseIf ... Then
If 最後K線 = 是 ... Then
End If
ElseIf ... Then
If 最後K線 = 是 ... Then
End If
ElseIf ... Then
......
......
End If
你原本的End If擺的位置不太對!!
3.因為沒有看到你前端的程式,所以沒有辦法判斷。
4.都可以,若下單機命令檔格式可以自行選擇的話,那你就自己決定一種,然後記得策略中輸出命令檔的格式與下單機一致,即可。
97 1 8: 此主題共有4帖 此頁4帖 每頁12帖
[查看完整模式] LeadBBS 5.0 耗時62.5毫秒 請求2次
|