自動交易沒有回補

  •   39 
  • 最後發表   阿哲DR5  2025 九月 02
阿哲DR5 發文於   2025/09/02

許老師及大家好!

 

我在進行自動交易的時候發現我的無券做空策略沒有回補。

由於我是當沖,因此沒有回補對我來說是比較嚴重的問題,想請問大家可能的原因是甚麼?

 

下面附上程式碼以及自動交易中心的設定截圖和執行紀錄,謝謝大家的幫忙!

 

 

 

排序方式: 標準 | 最新
阿哲DR5 發文於   2025/09/02
阿哲DR5 發文於   2025/09/02

settotalBar(300); 
var: intrabarpersist hasRet(false);
var: intrabarpersist RetValue(0);

value1 = round(getField("close", "1"), 2);
value2 = round(average(value1, 8), 2);
value3 = round(average(value1, 17), 2);
value4 = q_DailyHigh; 
value5 = highest(round(value4, 2), 1); 
value6 = GetQuote("漲跌幅");

condition1 = average(getField("成交量", "D")[1], 5)>2000;
condition2 = value1 >= 50;
condition3 = value1 <= 100;
condition4 = value4 > value2 and value4 > value3;

if getinfo("IsRealTime")=0 then return;
if  time >= 093000 and time < 130000 then 
    begin
    if isFirstCall("Date") then hasRet=false;


    if condition1 and condition2 and condition3 and condition4 then
        begin
        if date=currentDate then
            begin
            if hasRet=false and position = 0 and value2 cross under value3 then

               begin

                  hasRet=true;

                  RetValue = value2;
                  if value6 > 0 and value6 < 8 then setposition(-1);



               end;

            if position = -1 then 
               begin
               if value1 <= RetValue*0.980 or value1 >= value5 then 
                     begin  hasRet=true;

                          setposition(0); 
                     end;
               end;
             end;
         end;
    end;     
if time = 132000 then setposition(0);

阿哲DR5 發文於   2025/09/02
虎科大許教授 發文於   2025/09/02

6125今天在132000的那一分鐘並沒有交易,所以無法回補。你使用1分鐘頻率,必須留意,某一分鐘裡面都沒有交易的問題。

if time = 132000 then setposition(0);

改成

if position<>0 and time >= 132000 then setposition(0);

發表回覆
Close