請問取得上一筆成交價格怎麼寫?(不論買賣方) 是"FilledRecordPrice(FilledRecordCount)" 嗎?

取得成交價
- 195
- 最後發表 winton 2024 三月 12
Hello winton,
FilledRecordCount 會是策略執行到洗價當下的成交紀錄筆數。
所以 FilledRecordPrice(FilledRecordCount) 回傳的會是最近一筆交易的價格。
若是要最近一筆的前一筆的話則會是 FilledRecordPrice(FilledRecordCount - 1)。
為了避免沒有資料導致錯誤,在取用價格前先檢查是否有足夠的筆數,舉例來說:
if FilledRecordCount > 1 then value1 = FilledRecordPrice(FilledRecordCount - 1);
請問這裡的"成交紀錄筆數"是指 留倉部位的成交紀錄筆數嗎?
如果不是.那麼怎麼寫 留倉部位的成交紀錄筆數? ---因為想利用留倉部位的成交紀錄作依據
謝謝!
****以下回測跑不出交易結果. (****但是如果把c<FilledRecordPrice(1) 改成FilledAvgPrice就沒問題): 但是實際上我要寫留倉部位的"第一筆"成交價格(雖然這題的留倉部位剛好是一筆)
var:tobuy(true),tosell(true),bystop(true),selstop(true),t2buy(true),t2sell(true);
tobuy=condition211 ;
tosell=condition212 ;
var:addbuy(true),addsel(true),addbuy1(true),addsel1(true),addbuy2(true),addsel2(true),addbuy3(true),addsel3(true),naddbuy(true),naddsel(true);
addbuy=c<FilledRecordPrice(1); ///留倉部位的第一筆成交價格
addsel=c>FilledRecordPrice(1);
if filled >=0 and filled<1 and tobuy then
SetPosition(position+1, MARKET) else if filled>=1 and filled<2 and tobuy and addbuy then
SetPosition(position+1, MARKET) else if filled>0 and tosell then
SetPosition(-1, MARKET);
Hello winton,
跟是否留倉沒有關係,是您策略啟動 (回測開始) 以來的所有交易紀錄。
舉例來說,09:30 買進2張,09:45 賣出一張,10:27 買進3張。
那麼 FilledRecordCount 就會是3,分別代表這三筆交易 (3 會是 10:27 最新的那一筆)。
小編不知道您的腳本是如何撰寫的,若有著多種分別進場的條件邏輯,那麼哪次進場才會是想要的。
只需要進場的那一次的話,只要判斷當庫存由0改變時的 FilledRecordPrice(FilledRecordCount) 就可以知道最近一次進場的價格。
建議您可以參考交易函數的說明。
舉例來說:
var: intrabarpersist _prevFilled(0), intrabarpersist _firstEntryPrice(0);
if filled <> 0 and _prevFilled = 0 then _firstEntryPrice = FilledRecordPrice(FilledRecordCount);
_prevFilled = filled;
這樣腳本就會判斷和上次洗價間庫存是否有從0改變 (進場),若有的話就用變數保存該次交易的價格。
感謝! FilledRecordPrice(FilledRecordCount) 就可以知道最近一次進場的價格(自動交易策略). 想在"指標"的k線圖知道上一筆買/賣進訊號出現的價格.請問怎麼寫?
Hello winton,
指標腳本沒有交易函數,只能夠另外使用變數存取。
舉例來說,要保存上次條件成立與這次條件成立的收盤價:
var: _price(0), _price1(0);
condition1 = ...觸發條件...;
if condition1 then begin
_price1 = _price;
_price = close;
end;
這樣 _price 就會是這次符合條件的收盤價,_price1 則是上次符合條件的收盤價。
可是上一筆買賣訊號的價格是在"觸發條件"裡怎麼辦?舉例:condition1是c=Lc9 and c<>Lc5, 想在condition1的價格下方破線那根bar 做攤平買進怎麼寫呢?
Hello winton,
由於腳本一開始運算時並不會有交易,故需要想清楚剛開始運作時,condition1裡面會取得什麼數值,可以將其設為變數的預設值。
且小編不清楚您所謂的攤平買進,要依據哪幾個價格,是最近的成交價還是再前一次的成交價?
麻煩您詳細描述下情境小編才有辦法給意見。
7 評論