电竞比分网-中国电竞赛事及体育赛事平台

分享

量化投資

 taozl 2022-09-23 發(fā)布于安徽

第十四章:計算腳本的驅動因素

  信號腳本計算的驅動因素有如下幾種方式,通常的方式是第一種方式,即tick驅動的計算:開啟bar內模式下,信號腳本是基于每筆tick進行計算,包括開盤tick、bar內tick、收盤tick;而未開啟bar內模式,信號腳本是基于收盤tick或者開盤tick進行計算。

  除了tick驅動的計算,信號腳本還可以基于鼠標點擊、關鍵字recalclastbarafter、經(jīng)紀商部位變化、策略部位變化進行計算,但是需要都需要進行額外的代碼處理或者特別的設置,這里需要注意的是,除了tick驅動的計算外,其它計算方式不能用于回測中。

1.  當新的bar/tick出現(xiàn)時

  我們知道一根bar由一筆開盤tick、若干筆bar內tick、一筆收盤tick組成,而開盤tick、bar內tick都是從交易所接收的,只有收盤tick是MC底層產(chǎn)生的;在開啟bar內模式下,信號腳本會基于每筆tick執(zhí)行一次計算。

  在未開啟bar內模式下,信號腳本基于每根bar只會計算一次,或者基于開盤tick進行計算,或者基于收盤tick進行計算;是基于開盤tick還是收盤tick是基于信號腳本的代碼中是否含有Open next bar(默認)、Date next bar、Time next bar、DateTime next bar、Time_s next bar這5個語句之一,也就是引用下一根bar的數(shù)據(jù);當信號腳本中含有引用下一根bar數(shù)據(jù)的語句時(至少含有5個語句之一),信號腳本會基于下一根bar的開盤tick執(zhí)行計算;當信號腳本中不含有引用下一根bar數(shù)據(jù)的語句時,信號腳本會基于當根bar的收盤tick執(zhí)行計算。(“Set系列關鍵字”這篇帖子中也提到引用下一根bar數(shù)據(jù)的語句)。

  Bar內模式與非bar內模式的區(qū)別之一就是是否基于bar內tick執(zhí)行信號計算,這個從表面意思上也可以意會。

2. 鼠標在圖表上點擊

  當在信號腳本中加入語句“[processmouseevents=true]”時,我們可以用鼠標在圖表上進行點擊,點擊之后,信號腳本就會基于這個點擊的操作進行計算,每點擊一次信號就執(zhí)行一次計算,每次計算都是基于最新的bar最新的行情執(zhí)行計算;可以用鼠標左鍵點擊圖表執(zhí)行計算,也可以使用鼠標右鍵點擊圖表執(zhí)行計算。

3. Recalclastbarafter

  信號代碼中若出現(xiàn)“recalclastbarafter(20);”這個語句,那么當信號腳本超過20秒沒有執(zhí)行計算時,那么信號腳本就會執(zhí)行一次計算;“recalclastbarafter(N);”,關鍵字recalclastbarafter后面的參數(shù)N是以秒為單位的,N需要自行設置,可以是整數(shù)也可以是小數(shù),這個語句的作用就是當信號腳本超過N秒沒有執(zhí)行計算,該語句就會促使信號腳本執(zhí)行一次計算;舉例,當交易所收盤后,沒有tick行情驅動信號執(zhí)行計算并且沒有其它因素驅動信號執(zhí)行計算,那么信號腳本會每隔N秒執(zhí)行一次計算。

4. 經(jīng)紀商部位變化和策略部分變化

  關于經(jīng)紀商部位和策略部位這兩個概念,可以在帖子“圖表部位、策略部位、經(jīng)紀商部位”中學習一下;當經(jīng)紀商部位變化或者策略部分變化時,若需要讓信號腳本執(zhí)行相應的計算,我們需要在“策略屬性”-“自動交易”-“重新計算”中進行設置一下,如下圖所示:

  圖中圈出來的地方,有兩個選項:當勾選“市場部位變動”時,那么當委托單在交易所實際成交了,也就是經(jīng)紀商部位變動了,那么信號就會基于經(jīng)紀商部位的變動執(zhí)行一次計算;當勾選“委托單成交”時,那么當策略部位變動了,那么信號就會基于策略部位的變動執(zhí)行一次計算。

5. 關鍵字getappinfo

  關鍵字getappinfo的用法,在這里并不打算系統(tǒng)闡述,該關鍵字后面可以有各種參數(shù),我們只里只介紹參數(shù)aicalcreason的用法;“getappinfo(aicalcreason);”返回信號腳本執(zhí)行計算的原因,上面我們已經(jīng)介紹了信號腳本執(zhí)行計算的各種驅動因素,也就是各種原因,每種原因都會對應“getappinfo(aicalcreason);”的一個返回值:

l  當信號腳本基于tick驅動執(zhí)行計算時,“value1=getappinfo(aicalcreason);”語句中value1等于0,也就是getappinfo(aicalcreason)返回的值是0

l  當信號腳本基于鼠標在圖表上左擊而執(zhí)行計算時,“value1=getappinfo(aicalcreason);”語句中value1等于1,也就是getappinfo(aicalcreason)返回的值是1

l  當信號腳本基于鼠標在圖表上右擊而執(zhí)行計算時,“value1=getappinfo(aicalcreason);”語句中value1等于2,也就是getappinfo(aicalcreason)返回的值是2

l  當信號腳本基于關鍵字recalclastbarafter而執(zhí)行計算時,“value1=getappinfo(aicalcreason);”語句中value1等于3,也就是getappinfo(aicalcreason)返回的值是3

l  當信號腳本基于經(jīng)紀商部位變動而執(zhí)行計算時,“value1=getappinfo(aicalcreason);”語句中value1等于4,也就是getappinfo(aicalcreason)返回的值是4

l  當信號腳本基于策略部位變動而執(zhí)行計算時,“value1=getappinfo(aicalcreason);”語句中value1等于5,也就是getappinfo(aicalcreason)返回的值是5

通過getappinfo(aicalcreason)的使用,我們可以在信號腳本中對當前信號計算的驅動因素進行識別和判斷,并且信號在后續(xù)的計算中執(zhí)行相應的邏輯,例如,當getappinfo(aicalcreason)返回值為4時,在信號中就可以判斷當前的委托單在交易所實際成交了。

=================================================

之前的文章感謝大家的轉載,希望轉載時請注明出處,本人轉自其它網(wǎng)站的圖表一并感謝,謝謝~!

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多