同一根K線同時滿足開空開多條件的時候出現問題 [金字塔]
- 咨詢內容:
程序運行于后臺1秒鐘輪詢,開倉語句如下:
IF THOLDING=0 AND THOLDING2=0 AND 開多1 THEN
開多A:TBUY(1,手數,LMT,SP1);
IF THOLDING=0 AND THOLDING2=0 AND 開空1 THEN
開空A:TBUYSHORT(1,手數,LMT,BP1);IF THOLDING=0 AND THOLDING2=0 AND 開多2 THEN
開多B:TBUY(1,手數,LMT,SP1);
IF THOLDING=0 AND THOLDING2=0 AND 開空2 THEN
開空B:TBUYSHORT(1,手數,LMT,BP1);在某些情況下可能出現既滿足開空A,又滿足開多B的情況,按道理我在開倉之前用THOLDING=0 AND THOLDING2=0進行了限制
如果前面已經開倉,無論是否成交后面都不應該再繼續開倉. 而實際情況不是這樣的, 如果前面開倉,后面還會繼續開, 資金不夠的
話會報告資金不足, 但是如果資金有多的,就會出現多空雙開的情況
而圖表K線走完模式下不會出現這個問題,所以很明顯這個應該是THOLDING出了問題,它沒能及時變更數值,對于這種情況該怎么辦?
- 金字塔客服:
1,仔細理解下THODLING和THOLIDNG2的機制,只有成交后才會返回值
代碼從上往下運行,來了tick可能條件同時滿足。報單后未及時成交導致值沒有返回是很正常的情況
條件里加個未成交判斷
- 用戶回復:
THODLING2是成交了才生效,THODLING不是訂單發出以后就立即生效了嗎? 如果都是成交了才生效那么THODLING2存在的意義何在?
你說檢查未成交單,你看我這樣改可以解決問題嗎?
IF THOLDING=0 AND THOLDING2=0 AND TREMAINQTY(0,'','')=0 AND 開多1 THEN
開多A:TBUY(1,手數,LMT,SP1);
IF THOLDING=0 AND THOLDING2=0 AND TREMAINQTY(0,'','')=0 AND 開空1 THEN
開空A:TBUYSHORT(1,手數,LMT,BP1);IF THOLDING=0 AND THOLDING2=0 AND TREMAINQTY(0,'','')=0 AND 開多2 THEN
開多B:TBUY(1,手數,LMT,SP1);
IF THOLDING=0 AND THOLDING2=0 AND TREMAINQTY(0,'','')=0 AND 開空2 THEN
開空B:TBUYSHORT(1,手數,LMT,BP1); - 網友回復:
http://www.weistock.com/bbs/dispbbs.asp?BoardID=2&ID=49371&skin=0 看下這個帖子
TISREMAIN( ) 用這個函數比較好,具體情況實際驗證下。也有可能一比tick過來值未刷新的情況,另外勾選下高頻
- 網友回復:
從我觀察應該不是屬于tick過來值未刷新,就是因為同時滿足條件前面的開倉沒有立即成交而后面的又開了,我改成這樣,你看如何?
IF THOLDING=0 AND THOLDING2=0 AND TISREMAIN(0)=0 AND 開多1 THEN
開多A:TBUY(1,手數,LMT,SP1);
IF THOLDING=0 AND THOLDING2=0 AND TISREMAIN(0)=0 AND 開空1 THEN
開空A:TBUYSHORT(1,手數,LMT,BP1);IF THOLDING=0 AND THOLDING2=0 AND TISREMAIN(0)=0 AND 開多2 THEN
開多B:TBUY(1,手數,LMT,SP1);
IF THOLDING=0 AND THOLDING2=0 AND TISREMAIN(0)=0 AND 開空2 THEN
開空B:TBUYSHORT(1,手數,LMT,BP1);
如果這樣還不行,我干脆加個變量,在開倉之前置為0,只要經過一個開平條件就把它設置為1, 然后每次開倉前檢查它是不是為0
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容