uncleray888 發表於 14-3-17 17:36

誠心請教實時交易時, 移動式停損停利的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 語法實現出來, 請大大幫忙指導一下. 謝謝

uncleray888 發表於 14-3-18 10:20

有沒有大大可以指導一下 {:4_161:}

kilroy 發表於 14-3-18 14:05

本帖最後由 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]
查看完整版本: 誠心請教實時交易時, 移動式停損停利的AB 語法