不好意思,小幫手
請問我用交易裡面的出場設定%數
跑回測
為何超出他那所設定的%數
建議你把你的程式碼貼出來比較能抓到問題點~
Hello 阿達16,
當回測執行時,會將對應頻率的 bar 拆成 OHLC 四個Tick來檢查 (逐筆洗價的話頻率是1分鐘)。
如果這四個價位有那個符合了出場的定義的話 (低於設定的出場%數),那就會依照您的設定 (此筆收盤價、次筆開盤價或交易腳本中設定的出場價格/方式) 價位來出場。
並不是依您設定的出場%數所換算的價格出場,所以是有可能會超出所設%數
{
多單停損(%)
}
input: profit_percent(2, "停利(%)");
input: loss_percent(2, "停損(%)");
var: long_condition(false); { 進場買進作多 }
{
範例:
均線穿越時以市價買進1張
以成交價為基礎, 設定固定的停損/停利價格, 觸及時出場
}
long_condition = Average(Close, 5) cross over Average(Close, 20);
if Position = 0 and long_condition then begin
SetPosition(1, MARKET);{ 以市價買進 }
end;
if Position = 1 and Filled = 1 then begin
{ 依照成本價格設定停損/停利 }
if profit_percent > 0 and Close >= FilledAvgPrice*(1+0.01*profit_percent) then begin
{ 停利 }
SetPosition(0);
end else if loss_percent > 0 and Close <= FilledAvgPrice*(1-0.01*loss_percent) then begin
{ 停損 }
SetPosition(0);
end;
end;
不好意思~
我是用交易裡面的出場%數
mick大 就是這組 來跑回測
小幫手您好
所以如您所說
那我應該怎麼設定呢 是在腳本裡面設定一分鐘線嗎
還是該怎麼改呢~~~
Hello 阿達16,
小幫手這邊可以給建議,但能不能成交在您理想的價格還是要看市場實際情況。
舉例來說,現在價格是100,您設停損2%,可是下根 Bar 跳空價格跌為97的話,系統還是只能幫你成交在97而不是98。
基本上在回測時會建議您開啟模擬逐筆洗價功能,這樣就算您用頻率使用日,系統還是會用頻率1分鐘的價格在模擬,所以您的進出場點就可以更精確。(自動交易中心日頻率預設就是開啟的)
此外,您也可以考慮改用限價單,但這樣的缺點就是不保證成交。
為了避免沒有停損的情況發生,您可以考慮多一層保護。舉例來說,您停損可以設兩個百分比,如2%和2.5%,在2%的時候用限價的方式,在2.5%的時候用市價的方式。這樣就可以確保在被貫破的情況下也可以出場。
4 評論