自動下單

  •   294 
  • 最後發表   東尼  2021 八月 27
東尼 發文於   2021/07/22

 工程師 您好:

請問

1. 想用自動交易控制停損   例如: close < 買進價5% 賠5%就自動執行停損賣出

    (可指定時間或收盤前嗎? 例如: 1點或1:20  因盤中有時只是急殺)

2. 如果有庫存股 比如 2330 已經賠7%  可以排除指定的股票  暫不執行停損嗎?

謝謝您~

排序方式: 標準 | 最新
東尼 發文於   2021/08/27

謝謝您回覆~~~

XQ小幫手 發文於   2021/08/27

Hello 東尼,

 

1.

決定停損停利點是您的進場價格以及設定的百分比,跟您是現股或融資沒有關係。

所以只要當價格觸發停損停利就會依照腳本內的設定出場。

 

2.

進場方式是在交易中心裡的交易帳號裡面作設定。

您可以參考相關說明,如果您要同時進行現股跟信用的話,那麼小幫手會建議您分成兩個策略執行。

東尼 發文於   2021/08/24

謝謝您的回覆~~

請問若 1. 庫存是融資時    非當日的停損或停利    現股與融資的停損停利有差異嗎?

            2. 當日買進是融資時   當天剛好有價差時可做當日沖銷時   (現股/融資/融券的停損停利)要注意甚麼嗎?

謝謝~

XQ小幫手 發文於   2021/08/19

Hello 東尼,

 

1.

如同小幫手上次回覆,您可以參考 setposition 函數。

此函數的第二個參數為委託價格。

 

2.

如果您指的是小幫手上次提供的腳本,那麼是的,在13:10時跌到94元腳本會出場。

您可以實際測試該腳本,只要加上進場邏輯即可運作。

如果需要檢驗的話,也可以使用 print 函數來將相關資訊印出。

東尼 發文於   2021/08/18

工程師 您好:

順道請教

1.若股價到設定的停損/停利價格時  如果要指定用  市價  內盤價  外盤價 或限定價格的方式賣出  該如何定義?

2.如果早上10點買一檔股票100元  到13:10分時股價跌到94元  該腳本會執行動作嗎?  或該如何做?

   如果庫存是融資 或是當沖該注意甚麼嗎? 

謝謝~  

XQ小幫手 發文於   2021/08/18

Hello 東尼,

 

1.

由於您有使用到 FilledAvgPrice 交易函數,所以必須要用交易腳本。

略作修改的腳本如下:

if filled > 0 and position > 0 then begin

    condition1 = currenttime >= 130000;  // 時間大於13:00 後決定

    condition2 = close <= (FilledAvgPrice * 0.95); //收盤價小於進場價格的 95%

    condition3 = close >= (FilledAvgPrice * 1.10); //收盤價大於進場價格的 110%

    condition4 = symbol <> "2330.TW";  //商品不為2330.TW

    if condition1 and (condition2 or condition3) and condition4 then setposition(0, market); //如果達成上面1&(2 or 3)&4條件-市價出場

    end;

 

2.

您需要登入帳戶,然後將策略部位設定為依庫存。

需注意此設定只有在啟動的時候會去讀取庫存。

在此策略運作的狀況下,所有外部操作 (ex. 手動進出場,其他策略進出場) 都不會對該策略的部位庫存有影響。

您可以參考自動交易中心的教學

 

3.

所有策略都需要設定頻率。

 

4.

您可以參考setposition的說明,並且設定input來作調整。

舉例來說,假設您持有四張,所以只要出2張,可以將腳本修改為:

input: qty(4, "初始持有張數");

if filled > floor(qty/2) and position > floor(qty/2) then begin

    condition1 = currenttime >= 130000;  // 時間大於13:00 後決定

    condition2 = close <= (FilledAvgPrice * 0.95); //收盤價小於進場價格的 95%

    condition3 = close >= (FilledAvgPrice * 1.10); //收盤價大於進場價格的 110%

    condition4 = symbol <> "2330.TW";  //商品不為2330.TW

    if condition1 and (condition2 or condition3) and condition4 then setposition(floor(qty/2), market); //如果達成上面1&(2 or 3)&4條件-市價出場

    end;

 

5.

是的,您的condition4跨頻率計算平均值的寫法並沒有錯。

東尼 發文於   2021/08/15

請問工程師:

如果要寫一個停利(close>=成本+10%)及停損(close<=成本-5%)交易腳本 

因無寫交易腳本的經驗  所以請問這樣改編寫對嗎? 

1.請問完整腳本這樣寫對嗎?  停損/停利一起寫對嗎?   要放在"交易"類腳本對嗎? 

2.腳本若正確 經過設定帳正確後  就會自行去抓指定帳號庫存 是嘛?  

3.腳本執行頻率需要(不要)設定?

4.因剛開始使用 如果只想在達到-停損或停利條件時 只要出清一半(1/2)部位 請問怎改?

 

 ---------------------------------------------------------------------------------------------------

if filled >0 then  begin

condition1 = currenttime >= 130000;  // 時間大於13:00 後決定

condition2 = close <= (FilledAvgPrice * 0.95); //收盤價小於進場價格的95%

condition3 = close >= (FilledAvgPrice * 1.10); //收盤價大於進場價格的 10%

if condition1 and condition2 //如果達成上面1&2兩個條件- 停損

if condition1 and condition3 //如果達成上面1&3兩個條件- 停利

 

and position <> 0 and symbol <> "2330.TW" //部位不為0且商品不為2330.TW

then setposition(0, market); //清空部位

-------------------------------------------------------------------------------

5.如果要用20日均線停損時  是否改成指定這個件就好了  

  condition1 = currenttime >= 130000;  // 時間大於13:00 後決定 

 //condition2 = close <= (FilledAvgPrice * 0.95); //收盤價小於進場價格的95%

 //condition3 = close >= (FilledAvgPrice * 1.10); //收盤價大於進場價格的 10%

 condition4 = close <= average(getfield("收盤價", "D"),20) ;//20日均價

   if condition1 and condition4 //如果達成上面1&4兩個條件-

   then setposition(0, market); //清空部位

謝謝~

東尼 發文於   2021/08/04

感謝您的指導~~

辛苦了!

XQ小幫手 發文於   2021/08/04

Hello 東尼,

 

自動交易控制停損您可以使用 FilledAvgPrice 來取得進場價格,並依此來計算。

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

如果需要指定時間的話,只要多加個條件即可。

舉例來說:

condition1 = currenttime >= 130000; //時間大於13:00

condition2 = close <= (FilledAvgPrice * 0.95);  //收盤價小於進場價格的95%

if condition1 and condition2 and position <> 0 then setposition(0, market);  //如果達成上面兩個條件,且部位不為0的話清空部位

關於停損和時間限制的寫法討論區已經有許多用戶發問過,您亦可以參考那些文章看是否有符合您需求的部分。

 

如果您想指定某隻特別的股票的話,可以使用symbol函數。

https://xshelp.xq.com.tw/XSHelp/?HelpName=Symbol&group=FIELDFUNC

用上面的例子的話:

condition1 = currenttime >= 130000; //時間大於13:00

condition2 = close <= (FilledAvgPrice * 0.95);  //收盤價小於進場價格的95%

if condition1 and condition2 //如果達成上面兩個條件

and position <> 0 and symbol <> "2330.TW" //部位不為0且商品不為2330.TW

then setposition(0, market);  //清空部位

 

另外小幫手補充一下,基本上小幫手回覆問題時會從後面頁數往前回覆。(優先回覆先發問之用戶)

如果您一直重複推文的話,會反覆把問題推到前面的頁數,反而造成小幫手更晚看到。

最近由於居家工作的關係,用戶問題數量有變多的傾向,需要麻煩您在發問後多等一陣子。

感謝。

 

另外感謝 尼莫 的熱心回覆。

東尼 發文於   2021/08/02

請問工程師 如果上題要用自動交易程式來執行 

請問該如何寫程式碼 或有案例可參考嗎?

謝謝!

Show More Posts 發表回覆
Close