Stock Portfolio Organizer
The ultimate porfolio management solution.
Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
piv scaling for Amibroker (AFL)
Copy & Paste Friendly
Back
// Amibroker AFL code by Edward Pottasch, 2013 - 2016
SetBarsRequired( sbrAll, sbrAll );
SetTradeDelays( 0, 0, 0, 0 );
SetOption( "FuturesMode", True );
SetOption( "PriceBoundChecking", False );
SetOption( "AllowSameBarExit", True );
SetOption( "CommissionMode", 3 );
SetOption( "CommissionAmount", 2.01 );
NumContracts = 1;
//SetOption( "MaxOpenPositions", 6 );
PositionSize = NumContracts * MarginDeposit;
x = BarIndex();
Lx = LastValue( x );
fvb = FirstVisibleValue( x );
lvb = LastVisibleValue( x );
rightStrength = Param( "Fractal Pivot Right side Strength", 5, 0, 50, 1 );
leftStrength = Param( "Fractal Pivot Left side Strength", 10, 0, 50, 1 );
pk = H > Ref( HHV( H, leftStrength ), -1 ) AND Ref( HHV( H, rightStrength ), rightStrength ) <= H;
tr = L < Ref( LLV( L, leftStrength ), -1 ) AND Ref( LLV( L, rightStrength ), rightStrength ) >= L;
for( i = 0; i < 3; i++ )
{
VarSet( "px" + i, ValueWhen( pk, x, i ) );
VarSet( "tx" + i, ValueWhen( tr, x, i ) );
VarSet( "ph" + i, ValueWhen( pk, H, i ) );
VarSet( "tl" + i, ValueWhen( tr, L, i ) );
}
ll = tr AND tl1 < tl2;
hl = tr AND tl1 > tl2;
hh = pk AND ph1 > ph2;
lh = pk AND ph1 < ph2;
dt = pk AND ph1 == ph2;
db = tr AND tl1 == tl2;
lowLine = ValueWhen( Ref( ll OR hl, -rightStrength ), Ref( L, -rightStrength ) );
highLine = ValueWhen( Ref( hh OR lh, -rightStrength ), Ref( H, -rightStrength ) );
Buy = Cross( C, highLine );
BuyPrice = C;
Short = Cross( lowLine, C );
ShortPrice = C;
Buy = Buy AND ValueWhen( Buy, highLine, 1 ) != ValueWhen( Buy, highline, 2 );
Short = Short AND ValueWhen( Short, lowLine, 1 ) != ValueWhen( Short, lowLine, 2 );
InLongTrade = ExRem( Buy, Short );
InShortTrade = ExRem( Short, Buy );
InLongTrade = Flip( InLongTrade, InShortTrade );
InShortTrade = Flip( InShortTrade, InLongTrade );
numBuy = Sum( Buy, BarsSince( InLongTrade AND Ref( InShortTrade, -1 ) ) );
numBuy = IIf( Buy, numBuy + 1, 0 );
numShort = Sum( Short, BarsSince( InShortTrade AND Ref( InLongTrade, -1 ) ) );
numShort = IIf( Short, numShort + 1, 0 );
Buy = IIf( numBuy == 1, 1, Buy );
Buy = IIf( numBuy > 1, sigScaleIn, Buy );
Short = IIf( numShort == 1, 1, Short );
Short = IIf( numShort > 1, sigScaleIn, Short );
Sell = IIf( numShort == 1, 1, 0 );
SellPrice = C;
Cover = IIf( numBuy == 1, 1, 0 );
CoverPrice = C;
GraphXSpace = 5;
SetChartBkColor( colorBlack );
SetChartOptions( 0, chartShowDates );
SetBarFillColor( IIf( C > O, colorGreen, IIf( C <= O, colorRed, colorLightGrey ) ) );
Plot( C, "Last", IIf( C > O, colorDarkGreen, IIf( C <= O, colorDarkRed, colorLightGrey ) ), 64, null, null, 0, 0, 1 );
PlotShapes( shapeSmallCircle*tr, IIf( Lx - ValueWhen( tr, x ) >= rightStrength, ColorRGB( 0, 100, 0 ), colorWhite ), 0, L, -10 );
PlotShapes( shapeSmallCircle*pk, IIf( Lx - ValueWhen( pk, x ) >= rightStrength, ColorRGB( 255, 0, 0 ), colorWhite ), 0, H, 10 );
Plot( lowLine, "", ColorRGB( 100, 0, 0 ), 1, null, null, 0, 0, 2 );
Plot( highLine, "", ColorRGB( 0, 100, 0 ), 1, null, null, 0, 0, 2 );
PlotShapes( IIf( Buy, shapeUpArrow, shapeNone ), colorDarkGreen, 0, L, -15 );
PlotShapes( IIf( Buy, shapeSmallCircle, shapeNone ), colorWhite, 0, BuyPrice, 0 );
PlotShapes( IIf( Sell, shapeDownArrow, shapeNone ), colorRed, 0, H, -15 );
PlotShapes( IIf( Sell, shapeSmallCircle, shapeNone ), colorWhite, 0, SellPrice, 0 );
PlotShapes( IIf( Short, shapeSmallDownTriangle, shapeNone ), colorRed, 0, H, IIf( Short AND Sell, -30, -15 ) );
PlotShapes( IIf( Short, shapeSmallCircle, shapeNone ), colorWhite, 0, ShortPrice, 0 );
PlotShapes( IIf( Cover, shapeSmallUpTriangle, shapeNone ), colorDarkGreen, 0, L, IIf( Cover AND Buy, -30, -15 ) );
PlotShapes( IIf( Cover, shapeSmallCircle, shapeNone ), colorWhite, 0, CoverPrice, 0 );
function drawPivotLabels()
{
clr = ColorRGB( 50, 50, 50 );
for( i = lvb; i > fvb; i-- )
{
{
if( Buy[i] AND Cover[i] )
{
str = "";
str = str + "+" + numBuy[i] + " | ";
str = str + BuyPrice[i];
PlotTextSetFont( str, "Arial Black", 8, i, L[i], colorGreen, clr, -50 );
}
if( Buy[i] AND !Cover[i] )
{
str = "";
str = str + "+" + numBuy[i] + " | ";
str = str + BuyPrice[i];
PlotTextSetFont( str, "Arial Black", 8, i, L[i], colorGreen, clr, -38 );
}
if( Short[i] AND Sell[i] )
{
str = "";
str = str + "-" + numShort[i] + " | ";
str = str + ShortPrice[i];
PlotTextSetFont( str, "Arial Black", 8, i, H[i], colorRed, clr, 40 );
}
if( Short[i] AND !Sell[i] )
{
str = "";
str = str + "-" + numShort[i] + " | ";
str = str + ShortPrice[i];
PlotTextSetFont( str, "Arial Black", 8, i, H[i], colorRed, clr, 24 );
}
}
}
}
drawPivotLabels();