註冊  登入
 

 搜尋

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

加入收藏 

使用幫助 

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


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


 主題:測試問題請教 - 複製地址
 

帥哥,離線

TIGER  巨蟹座 寅虎



級別 騎士
積分 292
經驗 25137
文章 206
註冊 09-11-12 23:41
發表: 2009-12-14 20:32:50 人氣:43718樓主

測試問題請教

[SIZE=3]版主你好:[/SIZE]
[SIZE=3]    這是我多單進場的程式碼[/SIZE]
[SIZE=3][/SIZE]
[SIZE=3]    今日測試,轉折精靈多單有出現訊號[/SIZE]
[SIZE=3][/SIZE]
[SIZE=3]    訊號出現之後,有發簡訊出來[/SIZE]
[SIZE=3][/SIZE]
[SIZE=3]    此時我認為系統應該有去執行第180行的程式 操作訊號( 多單建倉 , 1口 , Ve ) [/SIZE]
[SIZE=3][/SIZE]
[SIZE=3]    系統應該會記錄目前部位=1才對[/SIZE]
[SIZE=3][/SIZE]
[SIZE=3]    但是轉折精靈多單訊號又馬上自畫面上消失了[/SIZE]
[SIZE=3]   [/SIZE]
[SIZE=3]    後來盤勢一如預期往上走,結果上漲30多點之後,又發一通簡訊 多單進場[/SIZE]
[SIZE=3][/SIZE]
[SIZE=3]    我比較好奇的是 我的多單進場條件是150行[/SIZE]
[SIZE=3][/SIZE]
[SIZE=3]    如果第一個訊號有發簡訊有多單建倉,正常來說目前部位應該是=1而不是<=0 所以應該不符行進場條件[/SIZE]
[SIZE=3][/SIZE]
[SIZE=3]    後續應該是平倉的動作而不是繼續建倉[/SIZE]
[SIZE=3]    [/SIZE]
[SIZE=3][/SIZE]
[SIZE=3]  60 Vz = 5分_轉折精靈一號 
  70 Ve = 5分_開盤價[/SIZE]
[SIZE=3] 140 // 多單進場 
[B] 150 If 目前部位( 倉位多空 ) <= 0 And (其他條件) And Vz= 1 Then[/B] 
 160  
 170  操作訊號( 空單平倉 , 1口 , Ve ) 
 180  操作訊號( 多單建倉 , 1口 , Ve ) 
 190  Show [ K線下方 , ▲ ] 
 200  Vf = 目前部位( 第 1 次成本價位 ) 
 210  S1$ = '多單' 
 220  S2$ = 'T3--' + Cstr( Vt ) + ':' + Cstr( Vu ) + ':' + Cstr( Vv ) + S1$ + Cstr( Ve ) 
 230  發送簡訊[ 0911222333 , S2$ , 單次 ] 
 240  
 250 End If[/SIZE]
[SIZE=3][/SIZE]
[SIZE=3]     所以我想請教版主的是,我是不是必須用 單K計數器將訊號鎖定,是不是鎖定之後,系統才會認定有進倉,不然訊號消失之後,系統會當作一切沒有發生(除了簡訊有發出去以外)[/SIZE]
[SIZE=3][/SIZE]
[SIZE=3]     我比較擔心的是,訊號出現又消失之後,系統有發簡訊,有寫入檔案,有下單,但是就是沒有紀錄目前部位的動作,這樣會造成後續動作失去依據[/SIZE]
[SIZE=3][/SIZE]
[SIZE=3]     可以請版主指導一下單計數器要如何加在程式中(我看範例,單K計數器的程式碼都會有[/SIZE]
[SIZE=3]     (IF [/SIZE]
[SIZE=3]         ...(這裡的程式碼我了解)[/SIZE]
[SIZE=3]     ELSE [/SIZE]
[SIZE=3]         ...(這裡的我就不了解了,不了解為何還需要ELSE的程式碼?)[/SIZE]
[SIZE=3]     END IF)[/SIZE]
[SIZE=3][/SIZE]
[SIZE=3]     第二點想請教版主,如果我想要在訊號出現之後,要系統等個1分鐘,1分鐘之後再確定訊號還存不存在,程式碼該如何寫?[/SIZE]
[SIZE=3][/SIZE]
[SIZE=3]     [/SIZE]
[SIZE=3]     我最近提了很多問題,還煩請版主解惑!感謝![/SIZE]
[SIZE=3][/SIZE]
[SIZE=3]     [/SIZE]
[SIZE=3]     [/SIZE]


TIGER

帥哥,離線

Hunta 



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

沒錯!!
可以用單K計數器鎖住,語法架構如下:

If 單K計數器 = 0 Then
  Show
  操作訊號
  輸出命令檔(或下單)
  單K計數器 = 1
Else
  Show
  操作訊號
End If

上半段是第1次成立時的處理,而下半段Else的部份是第2次以後成立時的處理。
大部份人對於下半段Else的部份比較搞不懂為什麼,在此說明一下:
因為在即時的時候,系統會不斷的重覆執行策略,由第一根K線掃描到最後一根K線,然後再重頭開始,當策略發現條件成立時,我們可將該根K線的單K計數器設定為1,表示這根K線曾經送出訊號(單K計數器內容不會因為從頭掃描而被清除掉),如此一來,就算後來訊號消失了,系統仍可依據單K計數器的內容來判斷是否應該出現訊號,並且做出倉位變化。

若要晚1分鐘判斷,建議可配合「目前時間」函數來處理。

帥哥,離線

TIGER  巨蟹座 寅虎



級別 騎士
積分 292
經驗 25137
文章 206
註冊 09-11-12 23:41
發表: 2009-12-15 15:40:173

版主:
     第一:
         我想了很久終於想通了單K計數器的用法了
         版主有提到:(單K計數器內容不會因為從頭掃描而被清除掉)
         那也就是說其他的紀錄都會被清掉,包括建倉與平倉的紀錄
         只有掃描到最後一次,要跳至 次 根 K 線 的時候,才會去紀錄,對嗎?
     第二:
         所以除了轉折精靈之外
         其他只要是用目前K線的狀態作為判斷的策略
         還有 條件觸發的函數,也必須加入單K計數器,降說對嗎?
     
     煩請版主解惑!謝謝!


TIGER

帥哥,離線

Hunta 



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

1.是的
2.應該說,用This Bar在做判斷者,最好加上單K計數器來控管,以免發生訊號不見的問題。


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

 新帖 新投票 回覆文章



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

是否是UBB代碼

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