XQ 自動交易異常

  •   377 
  • 最後發表   布萊恩來了  2024 十月 29
布萊恩來了 發文於   2024/10/23

各位老師大家好

剛開始使用模擬交易 遇到一些問題  想請問版上前輩解答

附件是我異常的截圖 請問我的設定上是哪裡出現問題嗎? 爬了文找不到答案

 

 

謝謝

附加文件

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/10/23

你需要先到執行記錄分頁查看異常的原因。

布萊恩來了 發文於   2024/10/23

謝謝教授回復

如照片顯示 請問可能是哪裡出了問題嗎?

虎科大許教授 發文於   2024/10/23

你程式沒寫好,已經沒有庫存,卻一直下平倉單,最後造成系統罷工。

用position來控制,平倉時,讓position<>0才可下平倉單。

布萊恩來了 發文於   2024/10/23

謝謝教授回復 我來修改看看 感恩

布萊恩來了 發文於   2024/10/23

教授你好 可以麻煩幫我看一次是不是這樣子修改嗎?非常感謝

 

// 宣告參數

input: MaxPrice(50, "最高股價"),

       MaxCapital(50, "最大股本(億元)"),

       HighDay(120, "創N日新高"),

       VolumeRatio(1, "成交量比"),

       StopLoss(5, "停損百分比"),

       TakeProfit(5, "停利百分比"),

       HoldDays(2, "持有天數");

 

// 設定變數

var: EntryPrice1(0), EntryBar(0);

 

// 資料讀取筆數設定

settotalbar(HighDay);

setbarback(HighDay);

 

// 定義進場條件

condition1 = Close <= MaxPrice; // 收盤價小於50

condition2 = GetField("股本(億)") <= MaxCapital; // 股本小於50億

condition3 = Close = Highest(High, 1); // 目前是最高價

condition4 = Close > Highest(Close[1], HighDay); // 股價創120日新高

condition5 = Volume > Average(Volume, 5) * VolumeRatio; // 成交量大於前5日均量1倍

 

// 進場邏輯

if position = 0 and condition1 and condition2 and condition3 and condition4 and condition5 then

begin

    EntryPrice1 = Close;

    EntryBar = CurrentBar;

    setposition(1, market, label:="進場");

end;

 

// 出場邏輯

if position <> 0 then

begin

    // 停損

    if Close <= EntryPrice1 * (1 - StopLoss / 100) then

        setposition(0, market, label:="停損");

    

    // 停利

    if Close >= EntryPrice1 * (1 + TakeProfit / 100) then

        setposition(0, market, label:="停利");

    

    // 持有時間到

    if CurrentBar >= EntryBar + HoldDays then

        setposition(0, market, label:="持有時間到");

end;

 

虎科大許教授 發文於   2024/10/23

這樣看起來OK。若你只有做多,可將position<>0改成position>0

  • 按讚來自於
  • a0975239758
XS小編 發文於   2024/10/29

Hello 布萊恩來了,

 

小編補充,您可以參考 自動交易語法介紹 裡關於position和filled的說明。

另外網站上有教學區教學影片,裡面有XS語法的基礎和應用可以閱覽。

 

感謝 虎科大許教授 的熱心回覆。

發表回覆
Close