精華 once關(guān)鍵字限制其后的語(yǔ)句只執(zhí)行一次 [MC]
-
MC用戶求助:
once關(guān)鍵字限制其后的語(yǔ)句只執(zhí)行一次
(原創(chuàng):Alex)未開(kāi)啟bar內(nèi)模式下,信號(hào)腳本是在每根bar收盤時(shí)執(zhí)行一次(當(dāng)然,導(dǎo)致信號(hào)腳本執(zhí)行的因素還有其它情況,在此不深入探討),所以信號(hào)腳本會(huì)在整個(gè)策略運(yùn)行中執(zhí)行很多次,那么如何限制某些語(yǔ)句命令只執(zhí)行一次,我們可以使用once關(guān)鍵字來(lái)實(shí)現(xiàn),關(guān)鍵字once限制其后的一條語(yǔ)句(只能限制一條語(yǔ)句,即一條簡(jiǎn)單語(yǔ)句或者包含多條簡(jiǎn)單語(yǔ)句的復(fù)合語(yǔ)句,因?yàn)橐粭l復(fù)合語(yǔ)句也是一條語(yǔ)句)在整個(gè)策略運(yùn)行中只執(zhí)行一次(once關(guān)鍵字也可以使用在指標(biāo)和函數(shù)中,效果是一樣的,這里不再贅述),下面以限制語(yǔ)句value1=value1+1在整個(gè)策略運(yùn)行中只執(zhí)行一次為例進(jìn)行介紹。
? 一、一般用法 once?(condition1)?value1=value1+1;這是once關(guān)鍵字一般的用法(condition1需要用括號(hào)括起來(lái),否則會(huì)報(bào)錯(cuò)),也就是當(dāng)condition1第一次滿足的時(shí)候,執(zhí)行后面的語(yǔ)句value1=value1+1;而當(dāng)condition1第二次滿足或者后續(xù)再次滿足的時(shí)候,value1=value1+1語(yǔ)句不再執(zhí)行;這樣就達(dá)到了使value1=value1+1語(yǔ)句命令在整個(gè)策略運(yùn)行中只執(zhí)行一次。
? 二、其它變化除了以上的一般用法之外,還有其它變化;若需要限制兩個(gè)語(yǔ)句或者更多的語(yǔ)句命令在策略運(yùn)行中只執(zhí)行一次,我們可以使用復(fù)合語(yǔ)句(由于once后面只能限制一條語(yǔ)句,而復(fù)合語(yǔ)句也是一條語(yǔ)句)來(lái)代替上面的value1=value1+1,如下面所示:
once?(condition1)?begin ? ?? ??value1=value1+1; ? ?? ??value2=value2+1; end;若需要限制語(yǔ)句命令在信號(hào)腳本第一次執(zhí)行的時(shí)候就執(zhí)行該語(yǔ)句命令,可以使用下面的代碼,將condition1直接替換成true,更簡(jiǎn)單的方法就是將condition1直接刪除掉,兩者的效果完全一樣:
once?(true)?value1=value1+1; 或者 once?(true)?begin ? ?? ??value1=value1+1; end; 或者 once?value1=value1+1; 或者 once begin ? ?? ??value1=value1+1; end;?
?
-
MC回復(fù)討論一:
那一般在什么情況下會(huì)用到只執(zhí)行一次的情況?
?
-
MC回復(fù)討論二:
我個(gè)人一般使用once都是用在初始化情境中,當(dāng)然特殊情況下需要看策略的需求了
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 511411198 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒(méi)有相關(guān)內(nèi)容

會(huì)員登錄/注冊(cè)