- 咨詢內(nèi)容: 客戶在編寫公式及使用的過程中常常會(huì)出現(xiàn)一些問題,本章節(jié)我們把一些出現(xiàn)頻率較高的問題集中起來,以Q & A的形式整理出來,以供大家參考。
Q1:為什么公式的開平倉不受條件的限制,每一個(gè)K線上都有開、平倉的動(dòng)作?
A1:在if( ......)條件判斷語句的后面不小心加上分號(hào),就會(huì)導(dǎo)致后面的執(zhí)行不受條件的控制了。注意一定要把if(......); 后面這里的“;”去掉。
Q2:自己建的公式?jīng)]有編譯,但在公式編輯器中不能編譯啊,編譯按鈕是灰的,該怎么做?
A2:您只需要在公式代碼中任意位置加入一個(gè)空格,然后再刪掉這個(gè)空格,就可以進(jìn)行編譯了。這是因?yàn)樵摴?以前被保存了過,如果代碼沒有被修改過,就不能觸發(fā)進(jìn)行校驗(yàn)保存的編譯。
Q3: AverageFC和Average有什么區(qū)別?
A3: 您可以從以下三個(gè)方面了解此兩類函數(shù)的區(qū)別:
1、Average和AverageFC都是內(nèi)建的用戶函數(shù),目的都是用來求N個(gè)Bar以來的平均值, 您可以直接看到實(shí)現(xiàn)的代碼。
2、AverageFC是指FastCalculate,即快速計(jì)算。當(dāng)這兩個(gè)函數(shù)的第二個(gè)參數(shù),即N個(gè)Bar是常量時(shí),使用AverageFC,提高計(jì)算效率。當(dāng)N是不確定的變量時(shí),則必須使用Average,否則會(huì)出現(xiàn)計(jì)算問題。
3、系統(tǒng)里面類似的用戶函數(shù)還有Summation和SumamtionFC,Highest和HighestFC,Lowest和LowestFC等。
Q4:為什么出現(xiàn)最終目標(biāo)文件編譯錯(cuò)誤?
A4:目前發(fā)現(xiàn)有以下幾種情況會(huì)導(dǎo)致這個(gè)問題出現(xiàn):
1、有中文字符的存在,特別是一些細(xì)節(jié)的不容易發(fā)現(xiàn)的中文標(biāo)點(diǎn)符號(hào)。
1、公式管理器中存在未通過編譯的,有嚴(yán)重邏輯錯(cuò)誤的公式,需刪掉這些有錯(cuò)誤的公式。
2、用了一些C++的關(guān)鍵字來命名變量,比如switch,case,int,Public,protected,class,long,double....有好幾百個(gè),可以考慮加上一些前綴,比如My****,這樣就可以了。
Q5:總是報(bào)“鎖定編譯目標(biāo)文件超時(shí)”是什么原因?
A5:有以下可能:
1、已經(jīng)打開的圖表調(diào)用了技術(shù)指標(biāo)或交易指令,并且行情更新較快,導(dǎo)致編譯時(shí)覆蓋舊文件失敗。這個(gè)時(shí)候,您可以關(guān)閉先所有的圖表窗體在試試看。
2、可能是公式的寫法有問題,是系統(tǒng)現(xiàn)在還不能識(shí)別的錯(cuò)誤。您可以另外寫一個(gè)簡單的公式看看能不能編譯通過,如果能通過,那就證明是這個(gè)公式有問題。如果不是,那我也不知道具體原因。(您可以考慮導(dǎo)出您自己的公式,然后刪掉安裝目錄下User目錄下您所在用戶名的formula,然后再復(fù)制一個(gè)干凈的formula進(jìn)去。)
Q6: 為什么已經(jīng)設(shè)置了啟動(dòng)多帳戶全自動(dòng)交易,結(jié)果只有一個(gè)帳戶進(jìn)行了交易的動(dòng)作?
A6:首先檢查確認(rèn)是否有關(guān)聯(lián)多個(gè)交易帳戶且這些帳戶都處于聯(lián)機(jī)狀態(tài)。其次,查看多帳戶設(shè)置里是否對(duì)所需交易的帳戶均勾選上了。另外,查看公式代碼里發(fā)出指令的函數(shù),如果是使用A_sendorder所編寫的公式,則不可以啟動(dòng)多帳戶自動(dòng)交易。您可以打開多個(gè)超級(jí)圖表,調(diào)用同一個(gè)合約同一個(gè)公式策略,再分別關(guān)聯(lián)不同的交易帳戶進(jìn)行自動(dòng)交易即可。
Q7:同一品種不同超級(jí)圖表上的交易指令是否相互作用?
A7:不會(huì)相互作用。現(xiàn)在即使同一個(gè)超級(jí)圖表上,指令之間都不會(huì)相互作用的。
Q8:Time與CurrentTime的區(qū)別在于哪里?
A8:Time 是Bar數(shù)據(jù)的時(shí)間,在交易開拓者中,是以當(dāng)前Bar所開始的那個(gè)時(shí)間做為bar的Time,每一個(gè)Bar上的time是確定且唯一的。如果是日線的Bar上,Time則是為0。 而CurrentTime則是電腦操作系統(tǒng)的時(shí)間,基本上與北京時(shí)間是接近一致的。
Q9:如何記錄開倉價(jià)格?
A9:有多種方法可以嘗試,下面例出幾種方法以供參考:
1. 使用現(xiàn)有的系統(tǒng)函數(shù):entryprice 、lastentryprice、 avgentryprice;
2. 聲明一個(gè)序列變量,在開倉時(shí),將開倉價(jià)格賦值給此序列變量,并將此值傳遞下來;
3. 可以使用全局變量記錄下開倉價(jià)格,以備隨時(shí)取用。
|