XS 自動交易 : 大戶買賣力

  •   282 
  • 最後發表   fredchang  2022 十二月 01
fredchang 發文於   2022/11/24

小幫手 您好,

在 XS 自動交易 以下程式是否正確


程式執行頻率 : 5 分鐘 / 逐筆洗價


如果回測需要改程式嗎?

 

 input: a11 (100,"大戶買賣力");

if getfielddate("Date") <> getfielddate("Date")[1] then begin

    value1 = 0;

    value2 = 0;

end;

value1 = value1 + GetField("賣出特大單量","5") + GetField("賣出大單量","5");  

value2 = value2 + GetField("買進特大單量","5") + GetField("買進大單量","5"); 

value3 = value2 - value1;

condition1 =  value3 > a11; 

 if position = 0 and filled = 0  and condition1 then begin

      SetPosition(1,market);

 

另外條件成立時,委買可否改成  >=0

 

if position >= 0 and filled >= 0  and condition1 then begin

       SetPosition(1,market);

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/11/28

Hello fredchang,

 

begin 語法結束時會接著 end

所以交易的語法應該修改為

if position = 0 and filled = 0  and condition1 then SetPosition(1,market);

或是

if position = 0 and filled = 0  and condition1 then begin

    SetPosition(1,market);

    end;

 

關於position 和 filled 您可以參考 自動交易語法介紹 裡面的說明。

這邊小幫手是覺得使用 = 0 比較好。

fredchang 發文於   2022/11/30

小幫手 您好,

多條件同時符合,委買可這樣寫嗎?

if position = 0 and filled = 0 

                and condition3 and condition4 

                and condition8 and condition11 and condition12 then begin

if condition1 and condition9 then

    SetPosition(1);

end;

if position > 0 and filled > 0 

                and condition3 and condition4 

                and condition8 and condition11 and condition12 then begin 

if  condition9 then

    SetPosition(2);

end;

XQ小幫手 發文於   2022/12/01

Hello fredchang,

 

您可以這樣寫沒錯,不過 condition1 and condition9 可以併入上面的 ... and condition12 ... 的條件裡面。(同理下面的condition9也是)

另外可以用 if ... else if 的方式來撰寫就不用跑兩次if。

舉例來說:

if position = 0 and filled = 0 and condition1 and condition3 and condition4 and condition8 and condition9 and condition11 and condition12 then setposition(1)

    else if position > 0 and filled > 0 and condition3 and condition4 and condition8 and condition9 and condition11 and condition12 then setposition(2);

發表回覆
Close