Library for AmiBroker
Описание не точное. Смотрите пример, он правильный!

Краткое описание

Библиотека разработана в виде плагина для Амиброкер. Плагин написан на C++ VisualStudio 2005. Она позволяет вычислять независимым способом эквити стратегии. Амиброкер сам так же умеет строить эквити. Поэтому важным свойством библиотеки является равенство эквити рассчитанных Амиброкером и библиотекой.

Основные возможности

  • создание и тестирование стратегий в которых решение об открытии/закрытии принимается на основе открытого лота, значения эквити, цены последнего добавления, средней цены открытия позиции.
  • организация открытия, добавления, сокращения позиций в виде фукций
  • отображение эквити, баланса, лотов short и long в виде графика
  • Список функций

    Общие функции

    BBL_InitForex( fBalance, fSpread, fBarsBefore, fBarsAfter);

    fBalance - начальное значение баланса. Амиброкер не будет открывать сделки, если на счете будет мало денег. В библиотеке маржа не используется, поэтому для неё этот параметр несущественнен.
    fSpread - спред по текущему инструменту
    fBarsBefore, fBarsAfter передаются в функцию SetBarsRequired()

    Настраивает среду Амиброкера на работу по правилам Форекс. Кроме вызова этой функции с правильными параметрами, Вам необходимо установить TickSize в окне Symbol->Information.
    Эту функцию можно использовать в любом AFL - тексте.
    Функция должна быть вызвана перед использованием любых других функций библиотеки, в том числе и перед BBL_Init().

    BBL_Init( bSendMessages, nMax);

    bSendMessages - поддержка окна GraphWindow
    1 - отправлять сообщения окну GraphWindow
    0 - не отправлять сообщения окну GraphWindow
    nMax - 10 <= nMax <= 1000 - количество точек на графике в GraphWindow

    Вызываем в начале AFL. После BBL_InitForex()

    BBL_Release();

    Вызываем в конце AFL. Все вызовы Plot(), вроде, происходят после всех остальных функций, независимо от места их написания. Поэтому BBL_Release() можно писать как до, так и после Plot().

    BBL_NextCandle(); и BBL_EndCandle();

    Обеспечивают переключение на следующую свечу внутри библиотеки

    Общий вид текста на AFL выглядит так

    	
    BBL_InitForex( 3000, 5, 10000, 0);
    BBL_Init( 1, 100);
    
    // тут можно писать
    
    for( i=0; i < BarCount; i++)
    {
    	BBL_NextCandle();
    	
    	// тут можно писать
    	
    	BBL_EndCandle();
    }
    
    // тут можно писать
    
    BBL_Release();
    
    

    Линия Запоминается
    цена
    Действие Функции
    BUY BBL_GetLastBuyAsk() Покупка
    открытие/добавление
    BBL_BuyLot(lot)
    BBL_BuyScaleInLot(lot)
    BBL_BuyOrScaleInLot(lot)
    BBL_BuyScaleInProcent( procent)
    SELL BBL_GetLastSellBid() Покупка
    закрытие/уменьшение лота
    BBL_SellAll()
    BBL_BuyScaleOutLot( lot)
    BBL_BuyScaleOutProcent( procent)
    SHORT BBL_GetLastSellBid() Продажа
    открытие/добавление
    BBL_ShortLot(lot)
    BBL_ShortScaleInLot(lot)
    BBL_ShortOrScaleInLot(lot)
    BBL_ShortScaleInProcent(procent)
    COVER BBL_GetLastBuyAsk() Продажа
    закрытие/уменьшение лота
    BBL_CoverAll()
    BBL_ShortScaleOutLot(lot)
    BBL_ShortScaleOutProcent(procent)

    Download

    BabyBearLib.dll и пример

    Возможно, без этого не будет работать (библиотеки Microsoft)

    BabyBearLib.dll след. версия

    BBL_Orders.dll

    Список функций

    FunctionTag gFunctionTable[] = {
    	"BBL_InitForex",			{ BBL_InitForex, 0, 0, 4, 0, NULL },
    	"BBL_Init",				{ BBL_Init, 0, 0, 0, 0, NULL },
    	"BBL_Release",			{ BBL_Release, 0, 0, 0, 0, NULL },
    	"BBL_NextCandle",			{ BBL_NextCandle, 0, 0, 0, 0, NULL },
    	"BBL_EndCandle",			{ BBL_EndCandle, 0, 0, 0, 0, NULL },
    	"BBL_EntryStatistic",			{ BBL_EntryStatistic, 1, 0, 1, 0, NULL },
    
    	// Второй параметр, цена открытия (Ask для лонга, Bid для шорта)
    	"BBL_ShortLot",			{ BBL_ShortLot, 0, 0, 1, 1, zero_price},
    	"BBL_ShortOrScaleInLot",	{ BBL_ShortOrScaleInLot, 0, 0, 1, 1, zero_price},
    	"BBL_ShortScaleOutLot",	{ BBL_ShortScaleOutLot, 0, 0, 1, 1, zero_price},
    	"BBL_ShortScaleOutProcent",	{ BBL_ShortScaleOutProcent, 0, 0, 1, 1, zero_price},
    	"BBL_ShortScaleInLot",	{ BBL_ShortScaleInLot, 0, 0, 1, 1, zero_price},
    	"BBL_ShortScaleInProcent",	{ BBL_ShortScaleInProcent, 0, 0, 1, 1, zero_price},
    	"BBL_CoverAll",			{ BBL_CoverAll, 0, 0, 0, 1, zero_price},
    
    	"BBL_BuyLot",				{ BBL_BuyLot, 0, 0, 1, 1, zero_price},
    	"BBL_BuyOrScaleInLot",	{ BBL_BuyOrScaleInLot, 0, 0, 1, 1, zero_price},
    	"BBL_BuyScaleOutLot",		{ BBL_BuyScaleOutLot, 0, 0, 1, 1, zero_price},
    	"BBL_BuyScaleOutProcent",	{ BBL_BuyScaleOutProcent, 0, 0, 1, 1, zero_price},
    	"BBL_BuyScaleInLot",		{ BBL_BuyScaleInLot, 0, 0, 1, 1, zero_price},
    	"BBL_BuyScaleInProcent",	{ BBL_BuyScaleInProcent, 0, 0, 1, 1, zero_price},
    	"BBL_SellAll",			{ BBL_SellAll, 0, 0, 0, 1, zero_price},
    
    	"BBL_GetBalanceArray",	{ BBL_GetBalanceArray, 0, 0, 0, 0, NULL },
    	"BBL_GetEquityArray",		{ BBL_GetEquityArray, 0, 0, 0, 0, NULL },
    	"BBL_GetBuyLotArray",		{ BBL_GetBuyLotArray, 0, 0, 0, 0, NULL },
    	"BBL_GetSellLotArray",	{ BBL_GetSellLotArray, 0, 0, 0, 0, NULL },
    
    	"BBL_GetCurrentSellLot",		{ BBL_GetCurrentSellLot, 0, 0, 0, 0, NULL },
    	"BBL_GetCurrentBuyLot",		{ BBL_GetCurrentBuyLot, 0, 0, 0, 0, NULL },
    	"BBL_GetCurrentBuyLotPrice",	{ BBL_GetCurrentBuyLotPrice, 0, 0, 0, 0, NULL },
    	"BBL_GetCurrentSellLotPrice",{ BBL_GetCurrentSellLotPrice, 0, 0, 0, 0, NULL },
    	"BBL_GetCurrentSellEquity",	{ BBL_GetCurrentSellEquity, 0, 0, 0, 0, NULL },
    	"BBL_GetCurrentBuyEquity",	{ BBL_GetCurrentBuyEquity, 0, 0, 0, 0, NULL },
    	// BBL_GetLastBuyAsk - Аск последней покупки
    	"BBL_GetLastBuyAsk",		{ BBL_GetLastBuyAsk, 0, 0, 0, 0, NULL },
    	// BBL_GetLastSellBid - бид последней продажи
    	"BBL_GetLastSellBid",		{ BBL_GetLastSellBid, 0, 0, 0, 0, NULL },
    	// BBL_GetLastBid - бид последней сделки (любой)
    	"BBL_GetLastBid",			{ BBL_GetLastBid, 0, 0, 0, 0, NULL }, 
    	// это просто close[CurrentCandle]
    	"BBL_GetCurrentBid",		{ BBL_GetCurrentBid, 0, 0, 0, 0, NULL },
    	// close[CurrentCandle] + fSpreadSize
    	"BBL_GetCurrentAsk",		{ BBL_GetCurrentAsk, 0, 0, 0, 0, NULL }
    Хостинг от uCoz