註冊  登入
 

 搜尋

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

加入收藏 

使用幫助 

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


 97128: 此主題共有20帖 此頁8帖 每頁12帖
 


 主題:HSQL程式語言--策略實作範例(一) - 複製地址
 

帥哥,離線

Hunta 



門派 管理員
職務 總版主
級別 法老
聲望 +100000
財富 100002
積分 101915
經驗 642850
文章 1733
註冊 09-04-10 17:15
發表: 2009-06-16 19:09:0713

[QUOTE][B]下面引用由[U]mingyi1973[/U]發表的內容:[/B]

例如380行你應該一併判斷單K計數器是否為0,若是0才往下執行,否則依照你的程式,會連續平倉兩次,等於全出了。

請教減碼程式的部份該怎麼寫?[/QUOTE]
就是:
380 If 目前部位( 倉位多空 ) > 0 And 單K計數器( 目前K線 , 0 ) = 0 Then

帥哥,離線

Hunta 



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

[QUOTE][B]下面引用由[U]mingyi1973[/U]發表的內容:[/B]

還要請教一個問題如果我每日都要在收盤前將口數平掉的話,那我是這樣寫嗎?但是這樣不一定是兩口啊!

  10 If 目前部位( 倉位多空 ) > 0 Then 
  20 If 前1_5分_K線時...[/QUOTE]
[SIZE=3] [COLOR=#bb0025] 10  Ve = 目前部位( 第 1 次剩餘口數 )[/SIZE][/COLOR]
[SIZE=3]  20[/SIZE]
[SIZE=3]  30 If 目前部位( 倉位多空 ) > 0 Then 
  40 If 前1_5分_K線時間 = 1335 Then 
  50 操作訊號( 多單平倉 , Ve口, Va ) 
  60 Show [ K線下方 , 收 ] 
  70 End If 
  80 End If 
  90 
 100 If 目前部位( 倉位多空 ) < 0 Then 
 110 If 前1_5分_K線時間 = 1335 Then 
 120 操作訊號( 空單平倉 , Ve口 , Va ) 
 130 Show [ K線上方 , 收 ] 
 140 End If 
 150 End If [/SIZE]

帥哥,離線

mingyi1973 



級別 職業俠客
積分 72
經驗 1777
文章 64
註冊 09-06-15 13:52
發表: 2009-06-16 19:25:3515

太感謝!!!!!!!!!!!!!!!!!!!!

帥哥,離線

mingyi1973 



級別 職業俠客
積分 72
經驗 1777
文章 64
註冊 09-06-15 13:52
發表: 2009-06-20 16:01:3716

版大這是我自己硬著頭皮寫的三口操作策略但是不知問題出在那裡?請您幫我看一下為什麼第二口的停利一直顯示不出來?還有沒有其他問題?謝謝!!!

  10 Va = 5分_開盤價 
  20 Vl = 目前部位( 第 1 次剩餘口數 ) 
  30 
  40 // 多單進場 
  50 If 目前部位( 倉位多空 ) <= 0 Then 
  60 If 5分_均線交叉( 5 , 40 ) = 是 And 交叉類型 = 1 Then 
  70 Vb = 1 
  80 If 目前部位( 倉位多空 ) <= 0 Then 
  90 Vb = K線序號( 目前K線 ) - 目前部位( 第 1 次建倉K線序號 ) 
 100 End If 
 110 If Vb >= 1 Then 
 120 Vi = 5分_最低價 - 1 
 130 S4$ = '3多' + Cstr( Va ) 
 140 顯示文字[ S4$ , 主畫面 , ( 0 , Vi ) , 字型: 新細明體 , 大小: 010 , 顏色: 12615935 ] 
 150 操作訊號( 空單平倉 , Vl口 , Va ) 
 160 操作訊號( 多單建倉 , 3口 , Va ) 
 170 K線顏色( 棒身 16744703 , 加框 16777215 , 影線 16777215 ) 
 180 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
 190 播放聲音( C:\huntap\up01.wav ) 
 200 GoSub date_time  
 210 S1$ = S1$ + '1' 
 220 輸出文字檔( R:\cur_cmd.txt , S1$ ) 
 230 單K計數器( 目前K線 , 0 ) = 1 
 240 End If 
 250 End If 
 260 End If 
 270 End If 
 280 
 290 // 多單如漲超過35停利一口 
 300 If 目前部位( 倉位多空 ) > 0 Then 
 310 If 單K計數器( 目前K線 , 0 ) = 0 Then 
 320 Vd = 5分_最高價 - 目前部位( 第 1 次成本價位 ) 
 330 Vg = 5分_收盤價 
 340 If Vd >= 35 Then 
 350 Vi = 5分_最低價 - 4 
 360 S10$ = '2多' + Cstr( Vg ) 
 370 顯示文字[ S10$ , 主畫面 , ( 0 , Vi ) , 字型: 新細明體 , 大小: 010 , 顏色: 16711935 ] 
 380 操作訊號( 多單平倉 , 1口 , Vg ) 
 390 K線顏色( 棒身 16711935 , 加框 16777215 , 影線 16777215 ) 
 400 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
 410 GoSub date_time  
 420 S1$ = S1$ + '-1' 
 430 輸出文字檔( R:\cur_cmd.txt , S1$ ) 
 440 單K計數器( 目前K線 , 0 ) = 1 
 450 End If 
 460 End If 
 470 End If 
 480 End If 
 490 
 500 // 多單如果5分均線5和20死亡交叉停利第二口-這部份無法顯示 
 510 If 目前部位( 倉位多空 ) > 0 Then 
 520 If 5分_均線交叉( 5 , 20 ) = 是 And 交叉類型 = -1 Then 
 530 Vb = 1 
 540 If 目前部位( 倉位多空 ) > 0 Then 
 550 Vb = K線序號( 目前K線 ) - 目前部位( 第 1 次建倉K線序號 ) 
 560 End If 
 570 If Vb >= 1 Then 
 580 Vi = 5分_最低價 - 4 
 590 S7$ = '1多' + Cstr( Va ) 
 600 顯示文字[ S7$ , 主畫面 , ( 0 , Vi ) , 字型: 新細明體 , 大小: 010 , 顏色: 16776960 ] 
 610 操作訊號( 多單平倉 , 1口 , Va ) 
 620 K線顏色( 棒身 12845252 , 加框 16777215 , 影線 16777215 ) 
 630 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
 640 播放聲音( C:\huntap\up01.wav ) 
 650 GoSub date_time  
 660 S1$ = S1$ + '1' 
 670 輸出文字檔( R:\cur_cmd.txt , S1$ ) 
 680 單K計數器( 目前K線 , 0 ) = 1 
 690 End If 
 700 End If 
 710 End If 
 720 End If 
 730 
 740 
 750 // 空單進場 
 760 If 目前部位( 倉位多空 ) >= 0 Then 
 770 If 5分_均線交叉( 5 , 40 ) = 是 And 交叉類型 = -1 Then 
 780 Vb = 1 
 790 If 目前部位( 倉位多空 ) >= 0 Then 
 800 Vb = K線序號( 目前K線 ) - 目前部位( 第 1 次建倉K線序號 ) 
 810 End If 
 820 If Vb >= 1 Then 
 830 Vj = 5分_最高價 + 1 
 840 S5$ = '3空' + Cstr( Va ) 
 850 顯示文字[ S5$ , 主畫面 , ( 0 , Vj ) , 字型: 新細明體 , 大小: 010 , 顏色: 16777088 ] 
 860 操作訊號( 多單平倉 , Vl口 , Va ) 
 870 操作訊號( 空單建倉 , 3口 , Va ) 
 880 K線顏色( 棒身 16777088 , 加框 16777215 , 影線 16777215 ) 
 890 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
 900 播放聲音( C:\huntap\down01.wav ) 
 910 GoSub date_time  
 920 S1$ = S1$ + '1' 
 930 輸出文字檔( R:\cur_cmd.txt , S1$ ) 
 940 單K計數器( 目前K線 , 0 ) = 1 
 950 End If 
 960 End If 
 970 End If 
 980 End If 
 990 
1000 // 空單如果跌超過35停利第一口 
1010 If 目前部位( 倉位多空 ) < 0 Then 
1020 If 單K計數器( 目前K線 , 0 ) = 0 Then 
1030 Ve = 目前部位( 第 1 次成本價位 ) - 5分_最低價 
1040 Vg = 5分_收盤價 
1050 If Ve >= 35 Then 
1060 Vj = 5分_最高價 + 1 
1070 S9$ = '2空' + Cstr( Vg ) 
1080 顯示文字[ S9$ , 主畫面 , ( 0 , Vj ) , 字型: 新細明體 , 大小: 010 , 顏色: 12895232 ] 
1090 操作訊號( 空單平倉 , 1口 , Vg ) 
1100 K線顏色( 棒身 16776960 , 加框 16777215 , 影線 16777215 ) 
1110 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
1120 GoSub date_time  
1130 S1$ = S1$ + '-1' 
1140 輸出文字檔( R:\cur_cmd.txt , S1$ ) 
1150 單K計數器( 目前K線 , 0 ) = 1 
1160 End If 
1170 End If 
1180 End If 
1190 End If 
1200 
1210 // 空單如果5分均線5和20黃金交叉停利第二口-這部份無法顯示 
1220 If 目前部位( 倉位多空 ) < 0 Then 
1230 If 5分_均線交叉( 5 , 20 ) = 是 And 交叉類型 = 1 Then 
1240 Vb = 1 
1250 If 目前部位( 倉位多空 ) < 0 Then 
1260 Vb = K線序號( 目前K線 ) - 目前部位( 第 1 次建倉K線序號 ) 
1270 End If 
1280 If Vb >= 1 Then 
1290 Vj = 5分_最高價 + 1 
1300 S8$ = '1空' + Cstr( Va ) 
1310 顯示文字[ S8$ , 主畫面 , ( 0 , Vj ) , 字型: 新細明體 , 大小: 010 , 顏色: 12895232 ] 
1320 操作訊號( 空單平倉 , 1口 , Va ) 
1330 K線顏色( 棒身 12895232 , 加框 16777215 , 影線 16777215 ) 
1340 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
1350 播放聲音( C:\huntap\down01.wav ) 
1360 GoSub date_time  
1370 S1$ = S1$ + '1' 
1380 輸出文字檔( R:\cur_cmd.txt , S1$ ) 
1390 單K計數器( 目前K線 , 0 ) = 1 
1400 End If 
1410 End If 
1420 End If 
1430 End If 
1440 
1450 Vl = 目前部位( 第 1 次剩餘口數 ) 
1460 
1470 // 多單停損 
1480 If 目前部位( 倉位多空 ) > 0 Then 
1490 If 單K計數器( 目前K線 , 0 ) = 0 Then 
1500 Vf = 5分_最低價 - 目前部位( 第 1 次成本價位 ) 
1510 Vg = 5分_收盤價 
1520 If Vf <= -30 Then 
1530 Vi = 5分_最低價 - 4 
1540 S2$ = '損' + Cstr( Vg ) 
1550 顯示文字[ S2$ , 主畫面 , ( 0 , Vi ) , 字型: 新細明體 , 大小: 010 , 顏色: 8454143 ] 
1560 操作訊號( 多單平倉 , Vl口 , Vg ) 
1570 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
1580 GoSub date_time  
1590 S1$ = S1$ + '-1' 
1600 輸出文字檔( R:\cur_cmd.txt , S1$ ) 
1610 單K計數器( 目前K線 , 0 ) = 1 
1620 End If 
1630 End If 
1640 End If 
1650 End If 
1660 
1670 // 空單停損 
1680 If 目前部位( 倉位多空 ) < 0 Then 
1690 If 單K計數器( 目前K線 , 0 ) = 0 Then 
1700 Vh = 目前部位( 第 1 次成本價位 ) - 5分_最高價 
1710 Vg = 5分_收盤價 
1720 If Vh <= -30 Then 
1730 Vj = 5分_最高價 + 4 
1740 S2$ = '損' + Cstr( Vg ) 
1750 顯示文字[ S2$ , 主畫面 , ( 0 , Vj ) , 字型: 新細明體 , 大小: 010 , 顏色: 8454143 ] 
1760 操作訊號( 空單平倉 , Vl口 , Vg ) 
1770 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
1780 GoSub date_time  
1790 S1$ = S1$ + '-1' 
1800 輸出文字檔( R:\cur_cmd.txt , S1$ ) 
1810 單K計數器( 目前K線 , 0 ) = 1 
1820 End If 
1830 End If 
1840 End If 
1850 End If 
1860 
1870 Vl = 目前部位( 第 1 次剩餘口數 ) 
1880 
1890 // 多單收盤平倉 
1900 If 目前部位( 倉位多空 ) > 0 Then 
1910 If 前1_5分_K線時間 = 1340 Then 
1920 操作訊號( 多單平倉 , Vl口 , Va ) 
1930 Vi = 5分_最低價 - 2 
1940 S3$ = '收' + Cstr( Va ) 
1950 顯示文字[ S3$ , 主畫面 , ( 0 , Vi ) , 字型: 新細明體 , 大小: 010 , 顏色: 16777215 ] 
1960 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
1970 GoSub date_time  
1980 S1$ = S1$ + '-1' 
1990 輸出文字檔( R:\cur_cmd.txt , S1$ ) 
2000 單K計數器( 目前K線 , 0 ) = 1 
2010 End If 
2020 End If 
2030 End If 
2040 
2050 // 空單收盤平倉 
2060 If 目前部位( 倉位多空 ) < 0 Then 
2070 If 前1_5分_K線時間 = 1340 Then 
2080 操作訊號( 空單平倉 , Vl口 , Va ) 
2090 Vj = 5分_最高價 + 2 
2100 S3$ = '收' + Cstr( Va ) 
2110 顯示文字[ S3$ , 主畫面 , ( 0 , Vj ) , 字型: 新細明體 , 大小: 010 , 顏色: 16777215 ] 
2120 If 最後K線 = 是 And 單K計數器( 目前K線 , 0 ) = 0 Then 
2130 GoSub date_time  
2140 S1$ = S1$ + '-1' 
2150 輸出文字檔( R:\cur_cmd.txt , S1$ ) 
2160 單K計數器( 目前K線 , 0 ) = 1 
2170 End If 
2180 End If 
2190 End If 
2200 
2210 // 輸出至下單機 
2220 Sub date_time  
2230 Vc = 目前時間( 西元年4碼 ) 
2240 S1$ = Cstr( Vc ) + '/' 
2250 Vc = 目前時間( 月 ) 
2260 If Vc < 10 Then 
2270 S1$ = S1$ + '0' + Cstr( Vc ) + '/' 
2280 Else 
2290 S1$ = S1$ + Cstr( Vc ) + '/' 
2300 End If 
2310 Vc = 目前時間( 日 ) 
2320 If Vc < 10 Then 
2330 S1$ = S1$ + '0' + Cstr( Vc ) + '' 
2340 Else 
2350 S1$ = S1$ + Cstr( Vc ) + '' 
2360 End If 
2370 Vc = 目前時間( 時 ) 
2380 If Vc < 10 Then 
2390 S1$ = S1$ + '0' + Cstr( Vc ) + ':' 
2400 Else 
2410 S1$ = S1$ + Cstr( Vc ) + ':' 
2420 End If 
2430 Vc = 目前時間( 分 ) 
2440 If Vc < 10 Then 
2450 S1$ = S1$ + '0' + Cstr( Vc ) + '' 
2460 Else 
2470 S1$ = S1$ + Cstr( Vc ) + '' 
2480 End If 
2490 End Sub 

帥哥,離線

mingyi1973 



級別 職業俠客
積分 72
經驗 1777
文章 64
註冊 09-06-15 13:52
發表: 2009-06-20 16:28:2517

還有為什麼聲音也出不來?

帥哥,離線

Hunta 



門派 管理員
職務 總版主
級別 法老
聲望 +100000
財富 100002
積分 101915
經驗 642850
文章 1733
註冊 09-04-10 17:15
發表: 2009-06-20 20:02:1818

要加上
播放聲音(alarm.wav)
其中alarm.wav可以自行更改檔名,聲音檔必須存放在huntap/wav/資料匣內。

帥哥,離線

mingyi1973 



級別 職業俠客
積分 72
經驗 1777
文章 64
註冊 09-06-15 13:52
發表: 2009-06-20 20:57:5919

了解!!!那請你幫我看看上面這個三口操作那裡出問題了,為什麼多單如果5分均線5和20死亡交叉停利第二口-這部份無法顯示,空單如果5分均線5和20黃金交叉停利第二口-這部份也無法顯示? 

帥哥,離線

Hunta 



門派 管理員
職務 總版主
級別 法老
聲望 +100000
財富 100002
積分 101915
經驗 642850
文章 1733
註冊 09-04-10 17:15
發表: 2009-06-20 22:09:4320

這支程式是以Next Bar方式來寫This Bar程式,其實就算解決了第二口無法顯示的問題,實際Run起來還是會有問題。

建議你是不是先以Next Bar方式先寫,不要直接就玩This Bar,因為This Bar的寫法真的需要豐富的實戰經驗,才比較容易完成。

另外,當遇到問題時,可以以Debug函數來幫忙找出問題,因為你可以透過各個變數的變化找出問題的癥結。


 97128: 此主題共有20帖 此頁8帖 每頁12帖
 

 新帖 新投票 回覆文章



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

是否是UBB代碼

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