小幫手您好:
想詢問一下,模擬交易帳號中的重置(reset)功能,如果是在當日早上開盤前按重設就策略,再建入新策略,當日新策略的下單紀律是不是就不會記錄進帳戶裡? 是有一定間膈時間嗎?
上週五我在開盤前約一小時,重設了帳戶,並將該帳戶中的舊策略換成新策略,今天用手機版XQ看庫存是空白的,但週五開盤後新策略的警示下單,是有警示的,為什麼會這樣呢?
帳號在交易過後,如果想要試試不同的策略、標的,則按下重置,系統會清除帳戶交易紀錄,還原成系統初始值,目的是在於讓各位使用者,能夠測試不同策略。
小幫手您好:
想詢問一下,模擬交易帳號中的重置(reset)功能,如果是在當日早上開盤前按重設就策略,再建入新策略,當日新策略的下單紀律是不是就不會記錄進帳戶裡? 是有一定間膈時間嗎?
上週五我在開盤前約一小時,重設了帳戶,並將該帳戶中的舊策略換成新策略,今天用手機版XQ看庫存是空白的,但週五開盤後新策略的警示下單,是有警示的,為什麼會這樣呢?
帳號在交易過後,如果想要試試不同的策略、標的,則按下重置,系統會清除帳戶交易紀錄,還原成系統初始值,目的是在於讓各位使用者,能夠測試不同策略。
已了解,另外想詢問關於陣列的用法:
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可以怎麼寫? 感謝小幫手
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;
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;
4 評論