價格在開倉bar內來回震蕩,跟蹤止損怎么做? [開拓者 TB]
- 咨詢內容:
本帖最后由 myvars 于 2016-4-28 12:15 編輯
價格在開倉bar內來回震蕩,跟蹤止損怎么做?
If(BarsSinceentry == 0)
{
HighestAfterEntry = Close;
LowestAfterEntry = Close;
If(MarketPosition <> 0)
{
HighestAfterEntry = Max(HighestAfterEntry,AvgEntryPrice); // 開倉的Bar,將開倉價和當時的收盤價的較大值保留到HighestAfterEntry
LowestAfterEntry = Min(LowestAfterEntry,AvgEntryPrice); // 開倉的Bar,將開倉價和當時的收盤價的較小值保留到LowestAfterEntry
}
}else
{
HighestAfterEntry = Max(HighestAfterEntry,High); // 記錄下當前Bar的最高點,用于下一個Bar的跟蹤止損判斷
LowestAfterEntry = Min(LowestAfterEntry,Low); // 記錄下當前Bar的最低點,用于下一個Bar的跟蹤止損判斷
}
上面這段是TB系統幫助里邊的跟蹤止損的代碼,按此代碼運行,因忽略了開倉bar最高價和最低價的獲取和判斷,會有點問題,
但實際情況開倉bar對交易來說是很重要的bar。
問題:
1、因忽略開倉bar,開倉bar未進行止損;
2、開倉bar之后的K線,獲取的最高價是開倉bar的開倉價AvgEntryPrice,而不是真實的開倉bar的最高價。
現在以多單為例,設置50個點的止損:
按上面的代碼執行,則可能會出現這樣的情況,
如果開倉bar的開盤價open是2990,以開倉價AvgEntryPrice:3000買入建多倉,
接下來,價格先上升到本條bar的最高價high:3080,然后回落到最低價low:2980。收盤價close:2985
第二條bar的open:2985,價格持續下落,那么第二條K線會以AvgEntryPrice:3000作為最高價進行止損判斷,要到2950才會做出止損動作。
這樣會導致原來應該在3030處出倉止損,變成了到2950才止損。由原本可以盈利成虧損。
3、假如解決了可以在開倉bar上的3030出實現止損,那么在開倉bar,如果價格一直在開倉價和止損價范圍來回震蕩(2980~3060),系統是否會一直開倉止損、開倉止損、開倉止損?
有看到的朋友請幫忙指點一下,謝謝!
附圖說明:
1為開倉點;
2應該為止損處;
3是實際止損處。
- TB技術人員:
1,是的,沒有在開倉bar上做止損。因為歷史K線上是沒法判斷最高價與開倉價先后出現的順序 ,不好判斷。只能放到下一個bar去平倉。
2,如上,沒法判斷最高價是在開倉前出現的還是開倉后出來的。。如果是之前 出來的,此最高價就不能做為開倉后最高價了。
3,TB的機制里,同一個bar上的同一個信號只會委托交易一次,不會反復開平倉。 - TB客服: 自己重新定義一個開倉價變量,把最后開倉價賦值給他,代替AvgEntryPrice,就能實現點2止損了。
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容