誠心請教實時交易時, 移動式停損停利的AB 語法
爬了很多文, 包括國外, 但都找不到答案, 還是在此開 po 請教一下各位大大在5分K 棒的設置下, 假設我多單條件成立, 在下一棒的 open 進場,在實時的 tick價位中, 執行移動式停損停利,
例如進場價位 2000點, 我首先把進場價位 2000-50=1950 點鎖定為停損, 2000+ 20=2020點鎖定為第一層停利, 只要tick data 價位下跌到 1950 便停損, 如果升穿 2020 時, 凡回到 2020 便停用利離場, 否則下一層停利會鎖定為 2020+20=2040, 如此類推, 但這是 realtime tick 價位時執行, 在 amibroker應如何寫才可達到這效果, 進場後不需等待該棒完成, 只要達到價位就即時離場獲利或停損
我知道 amibroker 有 trailing stop 的功能, 但好像不太符合我的要求, 所以先希望用 AFL 語法實現出來, 請大大幫忙指導一下. 謝謝
有沒有大大可以指導一下 {:4_161:} 本帖最後由 kilroy 於 14-3-18 14:11 編輯
uncleray888 發表於 14-3-18 10:20 static/image/common/back.gif
有沒有大大可以指導一下
Hi,
小弟很想幫忙,但是本身沒有在策略做停損停利的方式
所以只能給網路範例,讓大大參考
StopLevel =Param("Percentage Trail Stop",0.2, 0.01, 0.6, 0.01 );
LK=50;
FF=10;
A1= IIf( L> Ref(HHV( Close,LK),-5), 1, 0);
A2= Sum( A1, LK ) ;
A3= IIf(C>0, FF, 0);
Buy = Cross(A2,A3);
Sell = 0;
trailARRAY = Null;
trailstop = 0;
for( i = 1; i < BarCount; i++ )
{
if( trailstop == 0 AND Buy[ i ] )
{
trailstop = High[ i ] * (1-stoplevel);
}
else Buy[ i ] = 0; // remove excess buy signals
if( trailstop > 0 )
{ trailstop = Max( High[ i ] * (1-stoplevel), trailstop );
trailARRAY[ i ] = trailstop;
}
if( trailstop > 0 AND Low[ i ] < trailstop )
{
Sell[ i ] = 1;
SellPrice[ i ] = trailstop;
trailstop=0;
}
}
PlotShapes(Buy*shapeUpArrow,colorBlue,0,Low);
PlotShapes(Sell*shapeDownArrow,colorRed,0,High);
Plot( Close,"Price",colorBlack,styleBar);
Plot( trailARRAY,"trailing stop level", colorRed );
上面的範例是一組 buy(多單進場) sell(多單平倉) 的 trailling stop 範例
如此,再增加一組 short(空單進場) cover(空單平倉) 就可以了
應該不難才對
且,在AB裡,你的進場條件如果是某個特定價位
進場條件不互相牴觸(俗稱 bug)的情況下
可以做當根K某個價位進場
參考看看了~~
頁:
[1]