Teknik Analiz Dünyasına Hoşgeldiniz. Paylaşmak Güzeldir.

Yayından kaldırmak istediğiniz formüller için algoritmabul@gmail.com ile iletişime geçebilirsiniz... 

  • DİKKAT: Formüller, Sistemler sadece eğitim amaçlıdır. Alım satım, olası anapara kaybı ve diğer kayıplar dahil olmak üzere "YÜKSEK RİSK" içerir.

Amibroker Magical Trend Indicator for Amibroker (AFL)

Amibroker

algoritma

eiπ + 1 = 0
Algorithmist
Algoritma
Katılım
23 Eki 2020
Mesajlar
1,797

Magical Trend Indicator for Amibroker (AFL)

credit goes to http://www.nascenttraders.com Mr. Rakesh Solanki
Very good trading system with buy/sell signal with less number of signals, thereby avoiding false signals.
Kod:
// Downloaded From https://www.WiseStockTrader.com
/*Magical Trend Indicator with update
Created By : Rakesh Solanki
For www.nascenttraders.com
Date: 11/02/2017*/
_SECTION_BEGIN("Magic Trend Indicator Update");
SetBarsRequired(sbrAll,sbrAll);
SetFormulaName( "Magic Trend Indicator Update" );
SetOption( "Initialequity", 100000 );
SetOption( "AccountMargin", 0.25 );
SetOption( "MinShares", 1 );
MaxOpenPos = Param( "MaxOpenPos", 20, 1, 200, 1 );
SetOption( "MaxOpenPositions", MaxOpenPos );
SetOption( "PriceBoundChecking", 1 );
SetOption( "CommissionMode", 1 );
SetOption( "CommissionAmount", 0.01 );
PositionSize = -400 / ( MaxOpenPos );
P = Param("Period",20,2,25,1);
m = Param("Multiplier",3,0.1,5,0.1);
A = ATR(P);
for(i=0;i<P;i++)
{
 S[i] = C[i]-m*(A[i]);
 T[i] = 1;
}
for(i=P;i<BarCount;i++)
{
 if(C[i] > S[i-1])
 {
 if(T[i-1]==1)
 {
 S[i] = Max(C[i] - m*A[i],S[i-1]);
 T[i] = 1;
 }
 else
 {
 S[i] = C[i] - m*A[i];
 T[i] = 1;
 }
 
 }
 else
 {
 if(T[i-1]==-1)
 {
 S[i] = Min(C[i] + m*A[i],S[i-1]);
 T[i] = -1;
 }
 else
 {
 S[i] = C[i] + m*A[i];
 T[i] = -1;
 }
 }
}
Buy = Cover = C>S;
Short = Sell = C<S;
Buy = ExRem(Buy,Sell OR Short);
Sell = ExRem(Sell,Buy);
Short = ExRem(Short,Cover OR Buy);
Cover = ExRem(Cover,Short);
BuyPrice = ValueWhen(Buy,C,1);
SellPrice = ValueWhen(Sell,C,1);
ShortPrice = ValueWhen(Short,C,1);
CoverPrice = ValueWhen(Cover,C,1);
Offset = -12;
PlotShapes(Buy*shapeUpArrow,colorBrightGreen,0,Min(S,L),Offset);
PlotShapes(Short*shapeDownArrow,colorRed,0,Max(S,H),Offset);
PlotShapes(Cover*shapeHollowUpArrow,colorBrightGreen,0,Min(S,L),Offset);
PlotShapes(Sell*shapeHollowDownArrow,colorRed,0,Max(S,H),Offset);
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot(S,"STOP",IIf(C>S,colorBrightGreen,colorRed),styleDots|styleStaircase|styleThick|styleNoTitle );
PlotOHLC(O,H,L,C,"Close",colorDefault,styleCandle|styleNoTitle);
GfxSetOverlayMode(1);
GfxSelectFont("Verdana", 12, 800, True );
GfxSetBkMode(0);
GfxSetTextColor(ColorRGB(18,18,18));
GfxTextOut("Created By: Rakesh Solanki", 800 , 430 );
GfxSelectFont("Verdana", 14, 800, True );
GfxSetBkMode(1);
GfxTextOut("www.nascenttraders.com" , 800 ,400 );
Open_Long = Flip( Buy, Sell );
Open_Short = Flip( Sell, Buy );
Buy_Price = ValueWhen( Buy, BuyPrice, 1 );
Short_Price = ValueWhen( Short, ShortPrice, 1 );
Sell_Price = IIf( Sell, ValueWhen( Sell, SellPrice, 1 ), Short_Price );
Cover_Price = IIf( Cover, ValueWhen( Cover, CoverPrice, 1 ), Buy_Price );
Profit = IIf( Open_Long, ( Close - Buy_Price ), IIf( Open_Short, ( Short_Price - Close ), 0 ) );
Last_Profit = IIf( Ref( Open_Long, -1 ) == 1 AND Open_Long != 1, ( Sell_Price - Buy_Price ), IIf( Ref( Open_Short, -1 ) == 1 AND Open_Short != 1, ( Short_Price - Cover_Price ), 0 ) );
Cum_Profit[0] = Last_Profit[0];
PreviousProfit = ValueWhen(Last_Profit!=0,Last_Profit,1);
for ( i = 1;i < BarCount;i++ )
{
 Cum_Profit[i] = Cum_Profit[i-1] + Last_Profit[i];
}
Trade[0] = 0;
for ( i = 1;i < BarCount;i++ )
{
 if ( Buy[i] == 1 OR Short[i] == 1 )
 {
 Trade[i] = Trade[i-1] + 1;
 }
 else
 {
 Trade[i] = Trade[i-1];
 }
}
// Trade Report //
TR = ParamToggle( "Trade Report", "Show|Hide", 1 );
 
if ( TR == 1 )
{
 GfxSelectFont( "Verdana", 10, 100 );
 GfxSetBkMode( 1 );
 GfxSetTextColor( ColorRGB(50,50,50) );
 y = Status( "pxchartheight" );
 
 GfxTextOut( ( "Total Trades : " + WriteVal( Trade, 3.0 ) ), 13, y - 125 );
 GfxTextOut( ( "Total Profit : " + WriteVal( Cum_Profit, 4.2 ) ), 13, y - 100 );
 GfxTextOut( ( "Previous Profit : " + WriteVal( PreviousProfit, 2.2 ) ), 13, y - 50 );
 GfxTextOut( ( "Price : " + WriteVal( Close, 2.2 ) ), 13, y - 75 );
 GfxTextOut( ( "Current Profit : " + WriteVal( Profit, 2.2 ) ), 13, y - 25 );
}
_SECTION_END();
kaynak
www.WiseStockTrader.com
 

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kayıt ol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Şimdi kayıt ol
Giriş yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş yap