模擬單重設

  •   645 
  • 最後發表   red  2019 一月 07
red 發文於   2019/01/07

小幫手您好:

想詢問一下,模擬交易帳號中的重置(reset)功能,如果是在當日早上開盤前按重設就策略,再建入新策略,當日新策略的下單紀律是不是就不會記錄進帳戶裡? 是有一定間膈時間嗎?

 

上週五我在開盤前約一小時,重設了帳戶,並將該帳戶中的舊策略換成新策略,今天用手機版XQ看庫存是空白的,但週五開盤後新策略的警示下單,是有警示的,為什麼會這樣呢?

 

帳號在交易過後,如果想要試試不同的策略、標的,則按下重置,系統會清除帳戶交易紀錄,還原成系統初始值,目的是在於讓各位使用者,能夠測試不同策略。

排序方式: 標準 | 最新
XQ小幫手 發文於   2019/01/07

你好:

自2.43 版本起,重置功能已改成預約制,統一在每日早上6:30重置

所以禮拜五按下重置後,禮拜一早上系統會重置,因此庫存會是空的

相關訊息有寫在系統下載的版本公告:程式下載網頁

red 發文於   2019/01/07

已了解,另外想詢問關於陣列的用法:

array:val[3](0);

for i = 2 downto 0  if GetField("除權日期")>(staryear - i)*10000+0101 and GetField("除權日期")<(staryear - i)*10000+1231 then  begin   val[i]=GetField("除權值");  end;   condition1= trueall(val>0,3) if condition1 then ret=1;   為什麼這段程式會編譯錯誤呢?  是因為trueall無法與陣列一起用嗎? 如果想要判斷陣列中的值是否都大於0可以怎麼寫?   感謝小幫手

red 發文於   2019/01/07

array:val[3](0);

for i = 2 downto 0  

if GetField("除權日期")>(staryear - i)*10000+0101 and GetField("除權日期")<(staryear - i)*10000+1231 then  begin   val[i]=GetField("除權值");  

end; 

condition1= trueall(val>0,3) if condition1 then ret=1;  

XQ小幫手 發文於   2019/01/07

Hi red,

您好,猜想應該不是完整的程式碼,因為 star 應該是一個可調整的輸入參數,或者計算結果數值,

故小幫手檢查了一下,

year 函數,須要輸入一個日期參數,如連結的XS函數說明網。

 

另外 condition1= trueall(val>0,3) if condition1 then ret=1; 應該改寫為

condition1= val[1] > 0 and val[2] > 0 and val[3] > 0;
if condition1 then ret = 1;

 

小幫手稍微改寫了程式碼範例如下,這樣就能編譯成功,請您再試試看,謝謝:

input:star(100,"不清楚Star");
var:i(0);
array:val[3](0);

for i = 3 downto 1
begin
    if GetField("除權日期")>(star/year(date) - i)*10000+0101 
    and GetField("除權日期")<(star/year(date) - i)*10000+1231 
    then   
        val[i]=GetField("除權值");
end;

condition1= val[1] > 0 and val[2] > 0 and val[3] > 0;
if condition1 then ret = 1;

 

發表回覆
Close