bacardi 發表於 13-3-31 20:12

s8726413 發表於 13-3-31 18:13 static/image/common/back.gif
"由上往下執行"的說法是有問題的,
例如:
if date=1130329 and time=1000 then buy next bar market;


當根K棒平倉賣出時,MARKETPOSITION的狀態還是1啦,不會是0,為什麼?去問設計MC的作者,不要問我

即使你平倉了還是一樣,這是MC的問題(大BUG),到8.5都還在存著...我也不太想反應給凱衛知道了...

小弟是另外在程式內使用一個變數來解決, 所以當根K bar的平倉條件成立時, 雖然next bar還沒出現, 這個變數值已經先改變了

K7774 發表於 13-3-31 21:28

s8726413 發表於 13-3-31 18:13 static/image/common/back.gif
"由上往下執行"的說法是有問題的,
例如:
if date=1130329 and time=1000 then buy next bar market;


程式碼由上往下"一行一行"執行稱為"直譯",
而MC的執行並非"直譯"而是"編譯",
以底下程式碼為例, 在進出訊號前和後分別加上print,

Print(date,time,marketposition,entryprice,"***");
if date=1130329 and time=1000 then buy next bar market;
if date=1130329 and time=1200 and marketposition=1 then sell next bar market;
if date=1130329 and time=1200 and marketposition=1 then sellshort next bar market;
Print(date,time,marketposition,entryprice);

您會發現輸出的結果是
1130329.001200.00   1.007878.00***
1130329.001200.00   1.007878.00
1130329.001205.00-1.007884.00***
1130329.001205.00-1.007884.00
1130329.001210.00-1.007884.00***
1130329.001210.00-1.007884.00

而非
1130329.001200.00   1.007878.00***
1130329.001200.00   1.007878.00
1130329.001205.00   1.007878.00***
1130329.001205.00-1.007884.00
1130329.001210.00-1.007884.00***
1130329.001210.00-1.007884.00

另外, MC在圖表視窗的訊號和下單訊號是分開處理的,
您可以想成訊號是分開丟給圖表視窗運算和丟給下單機洗價,
A. 訊號成立時, 圖表視窗出現買賣箭頭
B. 下單機洗價符合條件則丟單給券商
而A和B是分開平行執行的,
最常見的問題就是明明圖表視窗的買賣箭頭都正確,
但實際下單機洗價丟單卻不一致.
以上論述我的用語可能不是說得很精準,
但基本上概念應該是正確的.
MC和TS在這部分的處理方式並不一樣.

MC 內建了IB等"國外券商"下單機,
但您想TSSUPPORT會為"台灣各券商"去內建下單機嗎?
注意喔, 是各券商喔, 而不是商品(台指)喔.
下單大師和MC是直接透過我上述A的管道,
這和凱衛下單機是透過B管道也是不一樣的.

=================================================
假如條件同時成立時,
進場訊號(BUY, SELLSHORT)會比出場訊號(SELL, BUYTOCOVER)優先執行,
而BUY 和 SELLSHORT哪個先動作, 就看哪個寫在前面.

if date=1130329 and time=1000 then buy ("LE") next bar market;
if date=1130329 and time=1000 then sell ("LX") next bar market;
if date=1130329 and time=1000 then buytocover ("SX") next bar market;
if date=1130329 and time=1000 then sellshort ("SE") next bar market;
setexitonclose;

以上面這個程式碼為例,
您會發現執行的順序是 LE -> SE -> SX

Power Language, Easy Language應該沒有S大說的優先權指令,
但實際上其一定有其執行順序的邏輯,
這邏輯一定不是隨機, 否則早就天下大亂了,
手冊上可能沒有解釋清楚,
最簡單的方法就是寫些測試碼看看其執行順序.
很可惜好像很少有人分享這方面的議題研究,
很高興今天能和S大討論此問題.


K7774 發表於 13-4-4 08:27

凱衛有更新行情元件和下單元件
提醒大家趕快去更新

alfiefly 發表於 13-4-20 00:55

請問大大這問題解決了嗎??
我今天也遇到類似問題

同一時間有四個策略發出買進訊號
理論上四個策略由空翻多
共要送出八口委託多單
但實際卻只送出兩口委託多單
(我查了一下它只送出其中一個訊號的兩口多單,另外三個訊號完全沒反應)

極度懷疑是否因為開啟SMART OCO設定
官方說一籃子單會選價格怎樣優先成交啥的
會不會是因為開啟SMART OCO   
一籃子訊號產生   
某個訊號價格較佳優先成交了
就忽略其他訊號??

頁: 1 [2]
查看完整版本: 程式第71天, 無妄之災