HSP程式交易論壇 >> 程式交易 >> 論壇主區 >> HSQL語言討論區 >> 請問三口操作的問題
請問三口操作的問題 mingyi1973,2009-07-01 15:50:39

版大我想請教我想以三口操作
1.如果5MA與40MA黃金交叉則做多三口
2.如果漲超過35點先獲利平倉一口
3.如果5MA與20MA死亡交叉則再獲利平倉一口
但是2或3不一定那一個先發生
所以我就這樣寫,可是第二口一直無法出現
請幫我看一下問題出在那裡?謝謝!!!
 
 350 // 多單進場 
 360 If 目前部位( 倉位多空 ) <= 0 Then 
 370 If 5分_均線交叉( 5 , 40 ) = 是 And 交叉類型 = 1 Then 
 380 Vb = 1 
 390 If 目前部位( 倉位多空 ) < 0 Then 
 400 Vb = K線序號( 目前K線 ) - 目前部位( 第 1 次建倉K線序號 ) 
 410 End If 
 420 If Vb >= 1 Then 
 430 Vi = 5分_最低價 - 10 
 440 S4$ = '多' + Cstr( Va ) 
 450 顯示文字[ S4$ , 主畫面 , ( 0 , Vi ) , 字型: 新細明體 , 大小: 010 , 顏色: 12615935 ] 
 460 操作訊號( 空單平倉 , 3口 , Va ) 
 470 操作訊號( 多單建倉 , 3口 , Va ) 
 480 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
 490 GoSub date_time  
 500 S1$ = S1$ + '3' + ' ' + Cstr( Va ) 
 510 輸出文字檔( R:\hsp01.txt , S1$ ) 
 520 單K計數器( 目前K線 , 0 ) = 1 
 530 End If 
 540 End If 
 550 End If 
 560 End If 
 570 
 580 // 多單停利一 
 590 If 目前部位( 倉位多空 ) > 0 Then 
 600 If 單K計數器( 目前K線 , 0 ) = 0 Then 
 610 Vf = 5分_最高價 - 目前部位( 第 1 次成本價位 ) 
 620 Vg = 5分_收盤價 
 630 If Vf >= 35 Then 
 640 Vi = 5分_最低價 - 10 
 650 S2$ = '1利' + Cstr( Vg ) 
 660 顯示文字[ S2$ , 主畫面 , ( 0 , Vi ) , 字型: 新細明體 , 大小: 010 , 顏色: 8454143 ] 
 670 操作訊號( 多單平倉 , 1口 , Vg ) 
 680 單K計數器( 目前K線 , 0 ) = 1 
 690 ElseIf 5分_均線交叉( 5 , 20 ) = 是 And 交叉類型 = -1 Then 
 700 Vi = 5分_最低價 - 10 
 710 S2$ = '1利' + Cstr( Vg ) 
 720 顯示文字[ S2$ , 主畫面 , ( 0 , Vi ) , 字型: 新細明體 , 大小: 010 , 顏色: 8454143 ] 
 730 操作訊號( 多單平倉 , 1口 , Vg ) 
 740 單K計數器( 目前K線 , 0 ) = 1 
 750 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
 760 GoSub date_time  
 770 S1$ = S1$ + '2' + ' ' + Cstr( Vg ) 
 780 輸出文字檔( R:\hsp01.txt , S1$ ) 
 790 End If 
 800 End If 
 810 End If 
 820 End If 
 830 
 840 // 多單停利二 
 850 If 目前部位( 倉位多空 ) > 0 Then 
 860 If 單K計數器( 目前K線 , 0 ) = 0 Then 
 870 Vf = 5分_最高價 - 目前部位( 第 1 次成本價位 ) 
 880 Vg = 5分_收盤價 
 890 If Vf >= 35 Then 
 900 Vi = 5分_最低價 - 10 
 910 S10$ = '2利' + Cstr( Vg ) 
 920 顯示文字[ S10$ , 主畫面 , ( 0 , Vi ) , 字型: 新細明體 , 大小: 010 , 顏色: 8454143 ] 
 930 操作訊號( 多單平倉 , 1口 , Vg ) 
 940 單K計數器( 目前K線 , 0 ) = 1 
 950 ElseIf 5分_均線交叉( 5 , 20 ) = 是 And 交叉類型 = -1 Then 
 960 Vi = 5分_最低價 - 10 
 970 S10$ = '2利' + Cstr( Vg ) 
 980 顯示文字[ S10$ , 主畫面 , ( 0 , Vi ) , 字型: 新細明體 , 大小: 010 , 顏色: 8454143 ] 
 990 操作訊號( 多單平倉 , 1口 , Vg ) 
1000 單K計數器( 目前K線 , 0 ) = 1 
1010 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
1020 GoSub date_time  
1030 S1$ = S1$ + '1' + ' ' + Cstr( Vg ) 
1040 輸出文字檔( R:\hsp01.txt , S1$ ) 
1050 End If 
1060 End If 
1070 End If 
1080 End If 

Hunta,2009-07-01 22:31:44

建議把行號860、940、1000之「單K計數器( 目前K線 , 0 )」改為「單K計數器( 目前K線 , 1 )」試試看。
mingyi1973,2009-07-02 00:18:45

謝謝您的回答,雖然出現了但是全部亂跑。
我始終搞不懂下面這句是什麼意思,您可以用白話文解釋一下嗎?

單K計數器( 目前K線 , 0 ) = 0
單K計數器( 目前K線 , 0 ) = 1
單K計數器( 目前K線 , 1 ) = 1
單K計數器( 目前K線 , 1 ) = 0

這些各代表什麼?謝謝!!!




Hunta,2009-07-02 11:21:08

已另外PO文說明!!
mingyi1973,2009-07-03 18:11:11

請問我以下的買訊為何一直重複出現?謝謝!
 350 // 多單進場 
 360 If 目前部位( 倉位多空 ) <= 0 Then 
 370  If 5分_均線趨勢( 20 ) = 1 Then 
 380   Vb = 1 
 390   If 目前部位( 倉位多空 ) <= 0 Then 
 400    Vb = K線序號( 目前K線 ) - 目前部位( 第 1 次建倉K線序號 ) 
 410   End If 
 420   If Vb >= 1 Then 
 430    Vi = 5分_最低價 - 10 
 440    S4$ = '多' + Cstr( Va ) 
 450    顯示文字[ S4$ , 主畫面 , ( 0 , Vi ) , 字型: 新細明體 , 大小: 010 , 顏色: 12615935 ] 
 460    操作訊號( 空單平倉 , 2口 , Va ) 
 470    操作訊號( 多單建倉 , 2口 , Va ) 
 480    If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
 490     GoSub date_time  
 500     S1$ = S1$ + '2' + ' ' + Cstr( Va ) 
 510     輸出文字檔( R:\hsp01.txt , S1$ ) 
 520     單K計數器( 目前K線 , 0 ) = 1 
 530    End If 
 540   End If 
 550  End If 
 560 End If 

Hunta,2009-07-03 20:25:52

行號520改放在行號410之後
mingyi1973,2009-07-04 03:55:50

原來因為依照我的程式減碼時,會連續平倉兩次,等於全出了,所以才會一再出現買訊,請教版大正確的方式該怎麼寫?這單K計數器的應用實在搞不太懂,麻煩您指導一下。謝謝!
  10 Va = 5分_開盤價 
  20 
  30 // 多單進場 
  40 If 目前部位( 倉位多空 ) <= 0 Then 
  50 If 5分_均線趨勢( 20 ) = 1 Then 
  60 Vb = 1 
  70 If 目前部位( 倉位多空 ) < 0 Then 
  80 Vb = K線序號( 目前K線 ) - 目前部位( 第 1 次建倉K線序號 ) 
  90 End If 
 100 If Vb >= 1 Then 
 110 單K計數器( 目前K線 , 0 ) = 1 
 120 Vi = 5分_最低價 - 10 
 130 S4$ = '多' + Cstr( Va ) 
 140 顯示文字[ S4$ , 主畫面 , ( 0 , Vi ) , 字型: 新細明體 , 大小: 010 , 顏色: 12615935 ] 
 150 操作訊號( 空單平倉 , 2口 , Va ) 
 160 操作訊號( 多單建倉 , 2口 , Va ) 
 170 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
 180 GoSub date_time  
 190 S1$ = S1$ + '2' + ' ' + Cstr( Va ) 
 200 輸出文字檔( R:\hsp01.txt , S1$ ) 
 210 End If 
 220 End If 
 230 End If 
 240 End If 
 250 
 260 // 空單進場 
 270 If 目前部位( 倉位多空 ) >= 0 Then 
 280 If 5分_均線趨勢( 20 ) = -1 Then 
 290 Vb = 1 
 300 If 目前部位( 倉位多空 ) > 0 Then 
 310 Vb = K線序號( 目前K線 ) - 目前部位( 第 1 次建倉K線序號 ) 
 320 End If 
 330 If Vb >= 1 Then 
 340 單K計數器( 目前K線 , 0 ) = 1 
 350 Vj = 5分_最高價 + 10 
 360 S5$ = '空' + Cstr( Va ) 
 370 顯示文字[ S5$ , 主畫面 , ( 0 , Vj ) , 字型: 新細明體 , 大小: 010 , 顏色: 8454016 ] 
 380 操作訊號( 多單平倉 , 2口 , Va ) 
 390 操作訊號( 空單建倉 , 2口 , Va ) 
 400 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
 410 GoSub date_time  
 420 S1$ = S1$ + '-2' + ' ' + Cstr( Va ) 
 430 輸出文字檔( R:\hsp01.txt , S1$ ) 
 440 End If 
 450 End If 
 460 End If 
 470 End If 
 480 
 490 // 多單停利 
 500 If 目前部位( 倉位多空 ) > 0 And 單K計數器( 目前K線 , 0 ) = 0 Then 
 510 Vf = 5分_最高價 - 目前部位( 第 1 次成本價位 ) 
 520 Vg = 5分_收盤價 
 530 If Vf >= 35 Then 
 540 操作訊號( 多單平倉 , 1口 , Vg ) 
 550 Show [ K線下方 , 利 ] 
 560 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
 570 GoSub date_time  
 580 S1$ = S1$ + '1' + ' ' + Cstr( Vg ) 
 590 輸出文字檔( R:\hsp01.txt , S1$ ) 
 600 單K計數器( 目前K線 , 0 ) = 1 
 610 End If 
 620 End If 
 630 End If 
 640 
 650 // 空單停利 
 660 If 目前部位( 倉位多空 ) < 0 And 單K計數器( 目前K線 , 0 ) = 0 Then 
 670 Vh = 目前部位( 第 1 次成本價位 ) - 5分_最低價 
 680 Vg = 5分_收盤價 
 690 If Vh >= 35 Then 
 700 操作訊號( 空單平倉 , 1口 , Vg ) 
 710 Show [ K線上方 , 利 ] 
 720 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
 730 GoSub date_time  
 740 S1$ = S1$ + '-1' + ' ' + Cstr( Vg ) 
 750 輸出文字檔( R:\hsp01.txt , S1$ ) 
 760 單K計數器( 目前K線 , 0 ) = 1 
 770 End If 
 780 End If 
 790 End If 

mingyi1973,2009-07-04 04:04:53

單K計數器您PO的文我看了,已經了解它的功能,但是實際的應用真是不太了解。
Hunta,2009-07-04 08:48:56

行號600 單K計數器( 目前K線 , 0 ) = 1 改放在行號550之後
行號760 單K計數器( 目前K線 , 0 ) = 1 改放在行號710之後

mingyi1973,2009-07-04 12:41:46

改了還是出現同樣的情形,而且我沒有勾選EMA,但是卻出現EMA的結果,請問版大這是為什麼?
而且無論用
5分_均價( 20 ) > 前1_5分_均價( 20 ) 
5分_均線步差( 20 ) > 0.1 
5分_均線趨勢( 20 ) = 1 
結果都會產生同樣的情況

Hunta,2009-07-04 18:30:11

這個跟MA、EMA沒有什麼關係,而是你程式邏輯的問題。
依據你的程式邏輯,不論多空單進場一律進兩口;而出場部份,只要獲利超過35點就出場一口,所以可能會出現連續兩根K線出現出場訊號。

 97 1 8: 此主題共有11帖 此頁11帖 每頁12帖 

[查看完整模式]

LeadBBS 5.0 耗時62.5毫秒 請求2次