Недокументированные возможности функции PlotShapes()

Опубликовано в AmiBroker

 Оказывается, в документации отсутствуют несколько стандартных меток для функции PlotShapes()

 

Функция PlotShapes позволяет рисовать на графике значки из предопределённого набора. Это стрелки, треугольники, кружочки, цифры... Основное использование - индикация сделок, сигналов, стопов и других событий.

 

SYNTAX PlotShapes( shape, color, layer = 0, yposition = graph0, offset = -12 );
RETURNS NOTHING
FUNCTION Plots arrows and other shapes on any chart pane.

Parameters:

  • shape defines type of the symbol. when shape is zero nothing is plotted values other than zero cause plotting various pre-defined shapes. Odd values plot shape BELOW indicator, even values plot shape ABOVE indicator.
  • color defines color of shape
  • layer defines layer number on which shapes are plotted
  • yposition defines Y-position where shapes are plotted (by default they are plotted 'around' graph0 (first indicator) line)
  • offset - (or distance) parameter (by default -12 ), Offset is expressed in SCREEN pixels. Negative offsets shift symbols down, positive offsets shift symbol up. To place the shape exactly at ypostion, specify 0 as offset
Constants for shapes:

shapeNone, shapeUpArrow, shapeDownArrow, shapeHollowUpArrow, shapeHollowDownArrow, shapeSmallUpTriangle, shapeSmallDownTriangle, shapeHollowSmallUpTriangle, shapeHollowSmallDownTriangle, shapeUpTriangle, shapeDownTriangle, shapeHollowUpTriangle, shapeHollowDownTriangle, shapeSmallSquare, shapeHollowSmallSquare, shapeSquare, shapeHollowSquare, shapeSmallCircle, shapeHollowSmallCircle, shapeCircle, shapeHollowCircle, shapeStar, shapeHollowStar, shapeDigit0, shapeDigit1, shapeDigit2, shapeDigit3, shapeDigit4, shapeDigit5, shapeDigit6, shapeDigit7, shapeDigit8, shapeDigit9, shapePositionAbove 

Однако, как выясняется, не весь доступный набор значков описан в документации. Существуют еще 4 недокументированных значка.

Вот таким образом формируются идентификаторы всех значков:

plotshapes

Новые (недокументированные) значки:

  1. ShapeSmallUpArrow       = 57
  2. ShapeSmallDownArrow  = 58
  3. ShapeLeftPutter             = 53
  4. ShapeRightPutter           = 55
Их можно добавить в AFL код и использовать в своих скриптах.

Вот маленький AFL скрипт, отрисовывающий все возможные значки для PlotShapes()

for ( i = 0; i < BarCount; i++ )
{
    O[i] = C[i] = i;
    H[i] = i + 5;
    L[i] = i - 5;
 
    if ( i % 2 == 0 )  {PlotText( NumToStr( i, 1.0, False ), i, L[i]-2, colorDarkGrey );}
    else  {PlotText( NumToStr( i, 1.0, False ), i, H[i]+.5, colorDarkGrey );}
}
PlotShapes( C, colorRed, 0, C, -10 );
Plot( C, "", colorLightGrey, styleBar );
 
Title = "Hollow = " + NumToStr( shapeHollowCircle - shapeCircle, 0, 0 ) + "\n" + 
	"Small = " + NumToStr( shapeSmallCircle - shapeCircle, 0, 0 );

Результат его выполнения:

plotshapes

Недостаточно прав для комментирования