交易

  •   352 
  • 最後發表   XQYi  2024 五月 03
XQYi 發文於   2023/12/08

實際帳號交易,都有庫存,用日逐筆、依庫存 (1513、1582、2382、2492、4979),有勾選庫存異動時自動加入執行
策略啟動時間2023/12/08 09:05:32,

1.在這之前手動委賣了2382,尚未成交,之後成交了(09:07:15),當買訊發生時(09:15:28)為何沒執行 ?

2.另4979(09:06:12),1582(09:17:54)應有買進訊號,卻沒委託,2382也是所以又自行手動委買,4979價格回檔到了賣出訊號則有賣出委託,為何?

3.腳本中的Open 會跟著變? 還是會固定今日的開盤價?

4. 如果依開盤價,就把委買委賣的固定價格送出去,是否condition不寫,直接在SetPosition內的close改為open*(1-x1/100)

5.另外庫存中有6筆股票,其中一筆已下市(見下圖),但交易中心中依庫存顯示6筆,其中一筆股票名稱重複,部位=0 均價=0,不見已下市的這檔股票,為何 ? 這樣是否會影響交易?

交易有的正常有的出乎意料   苦惱啊!

 

以下為腳本內容

var:plratio(0),InCondition(false),OutCondition(false); 

input:x1(0.5,"百分比");

//plratio為「計算損益(%)」 

 //註:FilledAvgPrice是「商品目前的未平倉成本」 

if FilledAvgPrice <> 0 then 

 plratio = 100 * (Close - FilledAvgPrice) / FilledAvgPrice 

else 

 plratio = 0;

 

InCondition = close < open*(1-x1/100); 

OutCondition = close > open* (1+x1/100);

if position = 0 and InCondition then setposition(1,close,label:="買1");//買

if position <> 0 and OutCondition then setposition(0,close,label:="賣1"); //賣

以下庫存與實際不符 ?

 

排序方式: 標準 | 最新
XQYi 發文於   2023/12/08

https://www.xq.com.tw/lesson/xsat/xsat_center

在這個畫面的上半部,可以看到每個商品的以下欄位:

策略部位:顯示商品目前的Position數值 =>"策略"二字已改目標。 如果程式碼中寫Position=-2 ,這邊會顯示-2 ?

實際部位:顯示商品目前的Filled數值,也就是成交的部位 =>不是SetPosition執行後的庫存?
如上交易,1513/1582都沒有交易,何來成交?
腳本設定頁面內依庫存中的欄內"部位"也就是庫存,對應商品監控中頁面的實際部位?

教學區中的 "部位" 一詞,都是等於 "庫存" 的意思?

買進(賣出)成交:買進(賣出)的成交數量=> 反而覺得才是Filled 的回饋?

 

 

XQYi 發文於   2023/12/11

今天12/11日逐筆洗價的,腳本內容同上
情況之1

華新科依訊號09:00:23委託賣出並於09:01:11賣出成交一張136,因為等久了

在11:31:06,在其他電腦手動買進委託一張134.5,並於11:51:22買進成交一張

但系統在12:12:53訊號發生時自動又下了一張買進委託(有啟用庫存異動時自動加入執行)

如何避免這種情況?

 

情況之2

中興電開盤價127,09:04:07開始即時洗價之後,127.6的價格已過,但High=128仍高於觸發價127.6(不會下單?),
InCondition = close < open*(1-x1/100);
if position = 0 and InCondition then setposition(1,close,label:="買1");

之後價格09:04:38多次價格低於觸發價126.3, 為何都沒自動執行買進委託?
OutCondition = close > open* (1+x1/100);
if position = 1 and OutCondition then setposition(0,close,label:="賣1");

為何? 

 

情況之3

策略部位重複的股票部位=0,上次策略部位是華新科重複,今天是廣達重複 為何?


 

 

XQ小幫手 發文於   2024/02/02

實際帳號交易,都有庫存,用日逐筆、依庫存 (1513、1582、2382、2492、4979),有勾選庫存異動時自動加入執行
策略啟動時間2023/12/08 09:05:32,

1.在這之前手動委賣了2382,尚未成交,之後成交了(09:07:15),當買訊發生時(09:15:28)為何沒執行 ?

2.另4979(09:06:12),1582(09:17:54)應有買進訊號,卻沒委託,2382也是所以又自行手動委買,4979價格回檔到了賣出訊號則有賣出委託,為何?

3.腳本中的Open 會跟著變? 還是會固定今日的開盤價?

4. 如果依開盤價,就把委買委賣的固定價格送出去,是否condition不寫,直接在SetPosition內的close改為open*(1-x1/100)

5.另外庫存中有6筆股票,其中一筆已下市(見下圖),但交易中心中依庫存顯示6筆,其中一筆股票名稱重複,部位=0 均價=0,不見已下市的這檔股票,為何 ? 這樣是否會影響交易?

交易有的正常有的出乎意料   苦惱啊!

 

以下為腳本內容

var:plratio(0),InCondition(false),OutCondition(false); 

input:x1(0.5,"百分比");

//plratio為「計算損益(%)」 

 //註:FilledAvgPrice是「商品目前的未平倉成本」 

if FilledAvgPrice <> 0 then 

 plratio = 100 * (Close - FilledAvgPrice) / FilledAvgPrice 

else 

 plratio = 0;

 

InCondition = close < open*(1-x1/100); 

OutCondition = close > open* (1+x1/100);

if position = 0 and InCondition then setposition(1,close,label:="買1");//買

if position <> 0 and OutCondition then setposition(0,close,label:="賣1"); //賣

以下庫存與實際不符 ?

 

 

 

Hello, xqyi.

 

  1. 策略啟動時去讀取庫存狀態(僅啟動時讀取一次,並不會定時去讀取庫存狀態),所以2382是有庫存的,故您setposition(1,close,label:="買1")時,2382的postion 是 1,且您手動交易的並不會異動到您讀取的庫存狀態。

  2. 同上,讀取庫存時,是有庫存的,您腳本是setposition(1,close,label:="買1"),庫存已經是1了,所以不會動作。

  3. 不會變動,您有疑慮可以Print()確認,也可以print到檔案。

  4. 這樣也可以,只是這樣會變成一開盤就先掛買單(若position為0時,但因為您有讀取庫存,所以會和您預想的不一樣),所以您的狀況會變成一啟動策略,就會先在開盤價0.5%的價位賣一張。

  5. 集保庫存留有已下市的股票,不會影響交易策略,因為系統這邊會沒辦法下出該檔股票。

XQ小幫手 發文於   2024/02/02

https://www.xq.com.tw/lesson/xsat/xsat_center

在這個畫面的上半部,可以看到每個商品的以下欄位:

策略部位:顯示商品目前的Position數值 =>"策略"二字已改目標。 如果程式碼中寫Position=-2 ,這邊會顯示-2 ?

實際部位:顯示商品目前的Filled數值,也就是成交的部位 =>不是SetPosition執行後的庫存?
如上交易,1513/1582都沒有交易,何來成交?
腳本設定頁面內依庫存中的欄內"部位"也就是庫存,對應商品監控中頁面的實際部位?

教學區中的 "部位" 一詞,都是等於 "庫存" 的意思?

買進(賣出)成交:買進(賣出)的成交數量=> 反而覺得才是Filled 的回饋?

 

 Hello, xqyi.

https://xshelp.xq.com.tw/XSHelp/?HelpName=Position&group=TRANSACTIONFUNC

Position代表的是自動交易策略內目前執行商品的預期部位。

https://xshelp.xq.com.tw/XSHelp/?HelpName=Filled&group=TRANSACTIONFUNC

Filled代表的是自動交易策略內目前執行商品的成交部位。

XQ小幫手 發文於   2024/02/02

今天12/11日逐筆洗價的,腳本內容同上
情況之1

華新科依訊號09:00:23委託賣出並於09:01:11賣出成交一張136,因為等久了

在11:31:06,在其他電腦手動買進委託一張134.5,並於11:51:22買進成交一張

但系統在12:12:53訊號發生時自動又下了一張買進委託(有啟用庫存異動時自動加入執行)

如何避免這種情況?

 

情況之2

中興電開盤價127,09:04:07開始即時洗價之後,127.6的價格已過,但High=128仍高於觸發價127.6(不會下單?),
InCondition = close < open*(1-x1/100);
if position = 0 and InCondition then setposition(1,close,label:="買1");

之後價格09:04:38多次價格低於觸發價126.3, 為何都沒自動執行買進委託?
OutCondition = close > open* (1+x1/100);
if position = 1 and OutCondition then setposition(0,close,label:="賣1");

為何? 

 

情況之3

策略部位重複的股票部位=0,上次策略部位是華新科重複,今天是廣達重複 為何?


 

 Hello, xqyi.

  1. 庫存異動時自動加入,所以在策略啟動時候已經取得當時庫存狀況,華新科系統依訊號09:00:23委託賣出,這時候postion = 0,

在11:31:06,在其他電腦手動買進委託一張134.5,並於11:51:22買進成交一張,系統沒有辦法知道庫存有異動,因為,華新科該檔股票已經在自動較易策略中了,這時候postion = 0,

所以12:12:53訊號發生時自動又下了一張買進委託因為策略setpostion(1);

  1. 小幫手目前對您的腳本理解是 策略開始執行後,當CLOSE < OPEN * 0.995 且 postion = 0時買進,當 CLOSE > OPEN * 0.995 且 postion = 1時賣出,

您表示1513 09:04:07開始即時洗價,您的庫存postion = 1,因為您讀取庫存。

1706689872070

如您有疑慮建議您善用Print(...)。

  1. 請問您目前的版本是哪一版?是否還有發生?

若有麻煩您麻煩提供 自動交易匯出檔勾選(包含)策略腳本、有問題的商品以及發生的日期時間、XQ Log 來檢驗。

Log資料夾(預設路徑:C:\SysJust\XQLite\LOG)直接壓縮後提供即可。

您可以直接將檔案上傳,如果檔案過大的話也可以保存到雲端後將連結Mail至客服信箱 XQservice@XQ.com.tw 且務必附上 討論文章連結網址(小幫手才能盡早處理)。

感謝。

XQYi 發文於   2024/04/27

  1. 集保庫存留有已下市的股票,不會影響交易策略,因為系統這邊會沒辦法下出該檔股票。

是不會下出該檔股票,但會造成其他股票的混亂,桃代李僵。

它似乎會讓整個庫存資料錯誤抓取混亂!!

確定問題是庫存有2318是一張已經不存在的股票,所造成的,是否需用程式碼避免該股2318依庫存交易時的影響?

目前庫存兩張情況下,沒有出現重複商品。

 

XQYi 發文於   2024/05/03

多張股票時就又出現了,2318被2020取代, 2020庫存變兩個不同的部位不同的價格

發表回覆
Close