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