HSP程式交易論壇 >> 程式交易 >> 論壇主區 >> HSQL語言討論區 >> 多空條件重複確立兩次??
多空條件重複確立兩次??
pop616,2009-07-28 12:31:13
10 Vf = 5分_SAR回補價( 20 , 0.02 , 0.2 )
20 Vg = 5分_SAR賣出價( 20 , 0.02 , 0.2 )
30
40 If 5分_K線時間 > 0855 And 5分_K線時間 < 1335 Then
50 If Vf = 0 And Vg > 0 Then
60 If 目前部位( 倉位多空 ) <= 0 Then
70 Show [ K線下方 , ↑ ]
80 Va = 5分_開盤價
90 Vb = 5分_最低價 - 15
100 S2$ = '多' + Cstr( Va )
110 顯示文字[ S2$ , 主畫面 , ( -3 , Vb ) , 字型: MS Sans Serif , 大小: 008 , 顏色: 16777215 ]
120 操作訊號( 空單平倉 , 1口 , Va )
130 操作訊號( 多單建倉 , 1口 , Va )
140 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then
150 S1$ = '1'
160 輸出命令檔( c:\cur_cmd.txt , [yyyy]/[mm]/[dd]□[hh]:[nn]□[S1$] )
170 單K計數器( 目前K線 , 0 ) = 1
180 End If
190 End If
200 End If
210 End If
220
230 If 5分_K線時間 > 0855 And 5分_K線時間 < 1335 Then
240 If Vg = 0 And Vf > 0 Then
250 If 目前部位( 倉位多空 ) >= 0 Then
260 Show [ K線上方 , ↓ ]
270 Va = 5分_開盤價
280 Vb = 5分_最高價 + 15
290 操作訊號( 多單平倉 , 1口 , Va )
300 操作訊號( 空單建倉 , 1口 , Va )
310 S2$ = '空' + Cstr( Va )
320 顯示文字[ S2$ , 主畫面 , ( -3 , Vb ) , 字型: MS Sans Serif , 大小: 008 , 顏色: 16777215 ]
330 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then
340 S1$ = '-1'
350 輸出命令檔( c:\cur_cmd.txt , [yyyy]/[mm]/[dd]□[hh]:[nn]□[S1$] )
360 單K計數器( 目前K線 , 0 ) = 1
370 End If
380 End If
390 End If
400 End If
版大請問,在實測過程中,常有此困擾∼
盤中訊號成立一閃就過,就會輸出文字檔....
但即時畫面是沒有箭頭訊號的∼
請問︰
1.這樣單k計數器沒有作用嗎?那為何箭頭會不見呢?
2.訊號已產生,這樣的單在會紀錄在單k計數器中嗎?
3.這樣程式會判斷此時為多單或空單嗎?
如我有停損機制,停損機制會成立嗎?
4.如果我想讓多空條件重複確立兩次,再輸出文字及箭頭訊號,
我該怎麼寫ㄋ?
以上問題,有勞版大了∼
Hunta,2009-07-28 16:17:19
1.你的單k計數器(0)是為了確保只在最後一根K線成立時才輸出命令檔,並且只輸出一次,當命令檔輸出後單k計數器(0)=1,與訊號出現沒有直接關係,而且我實際Run過程式,訊號似乎不會消失才對!!
2.訊號產生並且有執行輸出命令檔函數,單k計數器(0)就會等於1。
3.要判斷此時的多空狀態,可用目前部位(倉位多空)來判斷;可加入停損機制,欲停損時,只需下達多(空)單平倉訊號即可。
4.只要把程式改一下:
100 S2$ = '多' + Cstr( Va )
110 顯示文字[ S2$ , 主畫面 , ( -3 , Vb ) , 字型: 新細明體 , 大小: 009 , 顏色: 16777215 ]
120 操作訊號( 空單平倉 , 1口 , Va )
130 操作訊號( 多單建倉 , 1口 , Va )
140 [COLOR=#ff0000]單K計數器( 目前K線 , 0 ) = 單K計數器( 目前K線 , 0 ) + 1[/COLOR]
150 If 最後K線 = 是 And [COLOR=#ff0000]單K計數器( 目前K線 , 0 ) = 2[/COLOR] Then
160 S1$ = '1'
170 輸出命令檔( c:\cur_cmd.txt , [yyyy]/[mm]/[dd]□[hh]/[nn]□[S1$] )
180 End If
190 End If
200 End If
pop616,2009-07-28 17:06:49
多謝版大回答∼
1.程式執行時,我確實看到訊號消失,且輸出下單機文字檔∼
但在事後執行,卻都是沒問題的∼
關於這個問題,我會在觀察看看,如有疑問會在請教∼
2.所以版大的意思是,只要單k計數器等於1,
無論盤中show的訊號不見與否,並不會影響到程式的判斷嗎?
3.單k計數器再加1後=2,是否就是等於數據傳送第二次且符合才會成立???
跟之前另一位大大所提的訊號延遲3秒或4秒是否效果一樣呢??
這樣是否可以解決訊號跳動太快的問題呢??
謝謝∼
Hunta,2009-07-28 19:46:01
1.ok!!
2.訊號應該不可以不見,否則部位多空口數會出問題。
3.就是系統掃描至兩次訊號皆成立,即會輸出命令檔,但第3次之後並不會再重覆輸出命令檔,有點類似訊號延遲效果。
fkkshih,2009-07-28 21:27:53
看到這個討論群又引起我興趣了,
請問一下對於第三點
1.假設訊號只出現一次,是否就不會輸出訊號呢?因為掃描兩次才成立。
2.多久掃描一次?假設我設定掃描兩次,當下5分K線的訊號出現在第1分鐘跟第4分鐘,這樣訊號仍會輸出嗎?
Hunta,2009-07-28 22:52:54
1.是的!!
2.多久掃描一次?看策略平台右上方紅點(即時傳輸啟動)閃一次就是那麼久,平均約1秒左右吧!!
在1分鐘時一次,在4分鐘時又一次,此時會輸出!!若想要連續兩次才算的話,就必須在行號180之後加上:
Else
單K計數器( 目前K線 , 0 ) = 0
讓單K計數器(0)歸零。
pop616,2009-07-29 06:54:31
多謝說明~
問題再請問~
1.那我如何知道第一次成立的時間點跟第二次的時間點呢??
程式又該怎麼寫呢???
因為若照大大說明的~讓計數器歸零,會不會第一分鐘成立一次、第三分鐘又成立一次,
五分k棒成交多次呢???
2.是否在連續兩次成立後先讓計數器歸零,然後再讓計數器等於2,
讓這支5分k不再動作,不知這樣邏輯正確嗎?
一支五分k很可能就是50~100點的落差,對當沖很傷~
第一分鐘成交跟在第四分鐘成交,差異很大的~
所以之前才會有是否收費後推出一分k的疑問~
因為測試多日以來,訊號不穩定是個人最大的困擾~
自己的程式測試多天,每天幾乎都會發生~
在事後做測試或回測都不會有這個問題,而且績效是好的
我想若能解決這個問題~我會更有信心的~
多謝大大解答~
Hunta,2009-07-29 08:18:58
因為處理當根K線(This BAR)本來就屬於比較複雜(跟Next BAR比較),因為若是對於訊號控管不夠嚴謹,就很容易出差錯,就如你提到的是否會成交多次,或者訊號閃爍,其實大部份應該還是回歸到程式來討論,因為畢竟訊號是依照程式來產生的,訊號會出現是因為符合條件,訊號不出現是因為不符合條件,那為什麼訊號出現又消失了呢?是因為程式掃描第一次是符合條件的,但後續掃描時,又不符合條件,那為什麼後續會不符合呢?原因1.因為K線數值仍持續變動中,可能剛才的價位成立,現在價位不成立;原因2.某些因素已改變,例如單K計數器,第一次成立時可能單K計數器被設定一些數值,後續單K計數器的值就會持續存在,而直接影響程式的運作。
至於有關於昨天回答連續兩次訊號才算成立的問題,睡前回想發現會有漏洞,因為可能會造成訊號重複出現,所以必須再加1個單K計數器來控管,程式如下:
10 Vf = 5分_SAR回補價( 20 , 0.02 , 0.2 )
20 Vg = 5分_SAR賣出價( 20 , 0.02 , 0.2 )
30
40 If 5分_K線時間 > 855 And 5分_K線時間 < 1335 Then
50 If Vf = 0 And Vg > 0 Then
60 If 單K計數器( 目前K線 , 1 ) = 0 Then
70 If 目前部位( 倉位多空 ) <= 0 Then
80 Show [ K線下方 , ↑ ]
90 Va = 5分_開盤價
100 Vb = 5分_最低價 - 15
110 S2$ = '多' + Cstr( Va )
120 顯示文字[ S2$ , 主畫面 , ( -3 , Vb ) , 字型: 新細明體 , 大小: 009 , 顏色: 16777215 ]
130 操作訊號( 空單平倉 , 1口 , Va )
140 操作訊號( 多單建倉 , 1口 , Va )
150 單K計數器( 目前K線 , 0 ) = 單K計數器( 目前K線 , 0 ) + 1
160 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 2 Then
170 S1$ = '1'
180 輸出命令檔( c:\cur_cmd.txt , [yyyy]/[mm]/[dd]□[hh]/[nn]□[S1$] )
190 單K計數器( 目前K線 , 1 ) = 1
200 End If
210 End If
220 Else
230 單K計數器( 目前K線 , 0 ) = 0
240 End If
250 End If
260
270 If Vf > 0 And Vg = 0 Then
280 If 單K計數器( 目前K線 , 2 ) = 0 Then
290 If 目前部位( 倉位多空 ) >= 0 Then
300 Show [ K線上方 , ↓ ]
310 Va = 5分_開盤價
320 Vb = 5分_最高價 + 15
330 S2$ = '空' + Cstr( Va )
340 顯示文字[ S2$ , 主畫面 , ( -3 , Vb ) , 字型: 新細明體 , 大小: 009 , 顏色: 16777215 ]
350 操作訊號( 多單平倉 , 1口 , Va )
360 操作訊號( 空單建倉 , 1口 , Va )
370 單K計數器( 目前K線 , 0 ) = 單K計數器( 目前K線 , 0 ) + 1
380 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 2 Then
390 S1$ = '-1'
400 輸出命令檔( c:\cur_cmd.txt , [yyyy]/[mm]/[dd]□[hh]/[nn]□[S1$] )
410 單K計數器( 目前K線 , 2 ) = 1
420 End If
430 End If
440 Else
450 單K計數器( 目前K線 , 0 ) = 0
460 End If
470 End If
480 End If
Hunta,2009-07-30 14:54:16
Sorry,上一程式有誤,以下為修正程式:
10 Vf = 5分_SAR回補價( 20 , 0.02 , 0.2 )
20 Vg = 5分_SAR賣出價( 20 , 0.02 , 0.2 )
30
40 If 5分_K線時間 > 0855 And 5分_K線時間 < 1340 Then
50 If Vf = 0 And Vg > 0 Then
60 If 單K計數器( 目前K線 , 1 ) = 0 Then
70 If 目前部位( 倉位多空 ) <= 0 Then
80 Show [ K線下方 , ↑ ]
90 Va = 5分_開盤價
100 Vb = 5分_最低價 - 15
110 S2$ = '多' + Cstr( Va )
120 顯示文字[ S2$ , 主畫面 , ( 0 , Vb ) , 字型: MS Sans Serif , 大小: 008 , 顏色: 16777215 ]
130 操作訊號( 空單平倉 , 1口 , Va )
140 操作訊號( 多單建倉 , 1口 , Va )
150 單K計數器( 目前K線 , 0 ) = 單K計數器( 目前K線 , 0 ) + 1
160 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 2 Then
170 S1$ = '1'
180 輸出命令檔( c:\cur_cmd.txt , [yyyy]/[mm]/[dd]□[hh]:[nn]□[S1$] )
190 單K計數器( 目前K線 , 1 ) = 1
200 End If
210 End If
220 Else
230 Va = 5分_開盤價
240 Show [ K線下方 , ↑ ]
250 操作訊號( 多單平倉 , 1口 , Va )
260 操作訊號( 多單建倉 , 1口 , Va )
270 End If
280 Else
290 單K計數器( 目前K線 , 0 ) = 0
300 End If
310
320 If Vf > 0 And Vg = 0 Then
330 If 單K計數器( 目前K線 , 2 ) = 0 Then
340 If 目前部位( 倉位多空 ) >= 0 Then
350 Show [ K線上方 , ↓ ]
360 Va = 5分_開盤價
370 Vb = 5分_最高價 + 15
380 S2$ = '空' + Cstr( Va )
390 顯示文字[ S2$ , 主畫面 , ( 0 , Vb ) , 字型: MS Sans Serif , 大小: 008 , 顏色: 16777215 ]
400 操作訊號( 多單平倉 , 1口 , Va )
410 操作訊號( 空單建倉 , 1口 , Va )
420 單K計數器( 目前K線 , 0 ) = 單K計數器( 目前K線 , 0 ) + 1
430 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 2 Then
440 S1$ = '-1'
450 輸出命令檔( c:\cur_cmd.txt , [yyyy]/[mm]/[dd]□[hh]:[nn]□[S1$] )
460 單K計數器( 目前K線 , 2 ) = 1
470 End If
480 End If
490 Else
500 Va = 5分_開盤價
510 Show [ K線上方 , ↓ ]
520 操作訊號( 多單平倉 , 1口 , Va )
530 操作訊號( 空單建倉 , 1口 , Va )
540 End If
550 Else
560 單K計數器( 目前K線 , 0 ) = 0
570 End If
580 End If
pop616,2009-07-31 12:33:50
大大∼
測試了一整天∼
單K計數器都是維持在1跟0(我增加右側資訊欄)
根本不會到2∼
所以根本不會輸出命令檔
連行號230∼260跟510∼530
都走不到(你把符號改掉就知道)
這語法好像有問題∼
煩請大大在試試∼
Hunta,2009-07-31 13:09:22
Sorry!!
策略有點問題!!
我已經重新寄了一個新的策略0040.rda給你了,請收信!!
97 1 8: 此主題共有11帖 此頁11帖 每頁12帖
[查看完整模式] LeadBBS 5.0 耗時62毫秒 請求2次
|