COCO研究院

 找回密碼
 註冊
搜索
12
返回列表 發新帖
樓主: K7774

程式第71天, 無妄之災

[複製鏈接]
發表於 13-3-31 20:12 | 顯示全部樓層
s8726413 發表於 13-3-31 18:13
"由上往下執行"的說法是有問題的,
例如:
if date=1130329 and time=1000 then buy next bar market;

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

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


小弟是另外在程式內使用一個變數來解決, 所以當根K bar的平倉條件成立時, 雖然next bar還沒出現, 這個變數值已經先改變了
 樓主| 發表於 13-3-31 21:28 | 顯示全部樓層
s8726413 發表於 13-3-31 18:13
"由上往下執行"的說法是有問題的,
例如:
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大討論此問題.

順序.png
 樓主| 發表於 13-4-4 08:27 | 顯示全部樓層
凱衛有更新行情元件和下單元件
提醒大家趕快去更新
發表於 13-4-20 00:55 | 顯示全部樓層
請問大大這問題解決了嗎??
我今天也遇到類似問題

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

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

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-11-24 05:01

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |