Описание модулей (функции и переменные)

Дата: 09.09.2014
ПОМОДУЛЬНОЕ ОПИСАНИЕ ПЕРЕМЕННЫХ И ФУНКЦИЙ ПРОГРАММЫ 1B BOT PRO


В тексте программы - шаблона 1b bot PRO есть возможность подключения модулей, как стандартных так и пользовательских.
За это отвечает блок Uses:

 uses Bot_RW, BaseStrategy; 

это используем во всех стратегиях по умолчанию
также желательно использовать второй блок (с полным комплектом модулей):
uses Bot_Vars, Bot_Log, Bot_Funcs, Bot_Remote,Bot_Pairs,Bot_Charts,Bot_Orderbook,
Bot_Orders,Bot_Parties,Bot_DateTime; //это по потребности


**********************************************
Есть несколько переменных не описанных в дереве:

paused -проверка стоит ли бот на паузе ( если true - пауза включена)
mergeAllParties - объединить все партии бота в одну (будет средняя цена по закупке)
пример : mergeAllParties:=true;

cancelAllOrders - удалить все отложенные ордера
пример : cancelAllOrders:=true;

PlaySound('имя файла') - проиграть звуковой файл, поддержка mp3/wav/mid

**********************************************

1. Модуль Bot_Vars.

Описание секции Ticker:

Описание модулей (функции и переменные)


botName - имя текущего бота (задается в настройка вкладка (Listener)
currTicker.last - последняя цена по тикеру (LAST PRICE)
currTicker.low - минимальная цена за торговый день по тикеру
currTicker.high - максимальная цена за торговый день по тикеру
currTicker.avg - средняя цена по тикеру
currTicker.buy - текущая цена покупки
currTicker.sell - текущаяя цена продажи
prevTicker.buy - предыдущая цена покупки
prevTicker.sell - предыдущая цена продажи
currTicker.volCur - объем в первой валюте
currTicker.vol - обьем во второй валюте
currTicker.ServerTime - время сервера
currTicker.LocalTime - локальное время

Описание секции Bot:

Описание модулей (функции и переменные)


botInfo.buyFee - комиссия покупки
botInfo.sellFee - комиссия продажи

Для работы с партиями и ценами мин / макс по партиям:

botInfo.minParty.pPrice - цена минимальной покупки ботом
botInfo.minParty.pCnt - количество в минимальной покупке ботом
botInfo.maxParty.pPrice - цена максимальной покупки ботом
botInfo.maxParty.pCnt - количество в максимальной покупке ботом
botInfo.cntParties - количество партий у бота на текущий момент
botInfo.c1Cost - стоимость закупки всех партий в текущий момент (таблица Parties колонка TOTAL)
botInfo.c1PrAvg - средняя цена по партиям

botInfo.c1Amnt - количество первой валюты на счету
botInfo.c2Amnt - количество второй валюты на счету
botInfo.c1Total - суммарный баланс в первой валюте ( по обоим валютам пары)
botInfo.c2Total - суммарный баланс во второй валюте ( по обоим валютам пары)

botInfo.c1AmntAvail - количество первой валюты на счету доступной для торговли
botInfo.c1AmntReserv - количество первой валюты на счету зарезервированной отложенными ордерами
botInfo.c2AmntAvail - количество второй валюты на счету доступной для торговли
botInfo.c2AmntReserv - количество второй валюты на счету зарезервированной отложенными ордерами


Описание секции Bot-> (Last Buy, Last sell, Last operation):

Описание модулей (функции и переменные)


botInfo.lastBuyAmnt - количество в последней покупке
botInfo.lastBuyPrice - цена последней покупки
botInfo.lastBuyTime - время последней покупки

**** БЛОК ЦЕПОЧЕК ПОКУПОК
botInfo.lastRawBuyAnmt - суммирует количество в последних покупках бота до момента продажи с последующей покупкой
botInfo.lastRawBuyTotal - общая сумма сделок покупок
botInfo.lastRawBuyMinPrice - минимальная цена по последним сделкам покупки
botInfo.lastRawBuyMaxPrice - максимальная цена по последним сделкам покупки
botInfo.lastRawBuyAvgPrice - средняя цена по последним сделкам
botInfo.lastRawBuyCnt - количество сделок в серии

Raw Buy/Sell переменные - позволяют отслеживать серии (лесенки) продаж /покупок
***************************

botInfo.lastSellAmnt - количество в последней продаже
botInfo.lastSellPrice - цена последней продажи
botInfo.lastSellTime - время последней продажи
botInfo.lastSellMax - была ли последняя продажа по правилам SELL MAX

**** БЛОК ЦЕПОЧЕК ПОКУПОК
botInfo.lastRawSellAnmt - суммирует количество в последних продажах бота до момента покупки с последующей продажей
botInfo.lastRawSellTotal - общая сумма сделок продаж
botInfo.lastRawSellMinPrice - минимальная цена по последним сделкам продажи
botInfo.lastRawSellMaxPrice - максимальная цена по последним сделкам продажи
botInfo.lastRawSellAvgPrice - средняя цена по последним сделкам продажи
botInfo.lastRawSellCnt - общее количество сделок продажи в цепочке
botInfo.lastRawSellCost - общая стоимость проданного по цепочке
botInfo.lastRawSellIncome - полученная прибыль по цепочке
****************************

botInfo.lastOpType - тип последней операции бота
Может принимать одно из значений:
0 = не было операции
1 = покупка
2 = продажа

botInfo.lastOpAmnt - количество по последней операции
botInfo.lastOpPrice - цена последней операции
botInfo.lastOpTime - время последней операции

Описание секции Bot-> Time Data
программа 1b bot собирает по API информацию о проведенных сделках биржи и группирует ее по временным периодам.
Основываясь на этой информации легко увидеть текущее состояние биржи и планировать дальнейшие действия.
Все временные периоды имеют одинаковые по смыслу переменные - далее описано для 30 секундного периода - остальные периоды по аналогии.

Описание модулей (функции и переменные)


volStat.sBuy.b30s.volume - Объем закупок за последних 30 секунд. (пример для пары LTC/USD это значение в LTC)
volStat.sSell.b30s.volume - Объем продаж за последних 30 секунд. (пример для пары LTC/USD это значение в LTC)
volStat.sAvg.b30s.delta - Отношение Покупок/Продаж за 30 секунд в % .

Очень важный параметр!!! При больших положительных значениях - один из показателей роста курса, при отрицательных - падения курса! Визуально в таблице периодов это поле подсвечивается зеленым если положительное и красным - отрицательное. При долговременном росте во всех периодах зеленый фон, при падении - красный. Пример в условиях покупки:
 (deltaVolume30s>20) and (deltaVolume1m>20) and (deltaVolume5m>20)



volStat.sBuy.b30s.prMin - минимальная цена покупки за 30 секунд
volStat.sSell.b30s.prMax- максимальная цена продажи за 30 секунд
volStat.sAvg.b30s.prAvg - средняя цена за 30 секунд

В других периодах переменные аналогичные по смыслу.

Описание секции Bot-> Orderbook

Order book - биржевой стакан планируемых сделок. Данные передаются программе с биржи по API в реальном времени.

Описание модулей (функции и переменные)


obStat.wBuy.Amount - количество единиц валюты в нижней стенке (на рисунке 3)
obStat.wBuy.Price- цена в нижней стенке (на рисунке 4)
obStat.wSell.Amount - количество единиц валюты в верхней стенке (на рисунке 2)
obStat.wSell.Price - цена в верхней стенке (на рисунке 1)
obStat.vBuy - общий объем по запланированным ордерам на покупку
obStat.vSell - общий объем по запланированным ордерам на продажу
obStat.vWallSell - количество единиц валюты во всех верхних стенках(если их несколько)
obStat.vWallBuy - количество единиц валюты во всех нижних стенках(если их несколько)
obStat.cntBuy - количество строк в стакане на покупку
obStat.cntSell - количество строк в стакане на продажу

Начиная с версии 36 добавлены 3 вспомогательные стенки. Например если по LTC первую стенку поставить 1499 и ее нет , то вместо нее бот может опираться на вторую вспомогательную стенку например с количеством 999. Всего 4 уровня стенок.

Описание модулей (функции и переменные)


Описание переменных для 2 уровня, для 3 и 4 идентичны:

obStat.w2Buy.Amount - количество в вспомогательной стенке на покупку
obStat.w2Buy.Price - цена в вспомогательной стенке на покупку
obStat.vWall2Buy - суммарное количество в во всех вспомогательных стенках 2 уровня на покупку
obStat.w2Sell.Amount - количество в вспомогательной стенке на покупку
obStat.w2Sell.Price - цена в вспомогательной стенке на покупку
obStat.vWall2Sell - суммарное количество в во всех вспомогательных стенках 2 уровня на покупку

данные выводятся в одной таблице вместо двух


В программе вывод данных Order book (биржевого стакана) отличается от вывода на сайте биржи. Сверху на красном фоне - ордера на продажу, снизу на покупку. На границе красного и зеленого фонов и находятся переменные obStat.wBuy.Amount,obStat.wBuy.Price (граничные на зеленом фоне) и obStat.wSell.Amount,obStat.wSell.Price (граничные на красном фоне) - это так называемый торговый коридор. В данном примере (BTC/USD) сверху и снизу стакана стоят значения стенок на ценах 707-709 USD с количеством BTC 11,5112 и 12.
Пример условия продажи:
currTicker.sell>(obStat.wSell.Price-(obStat.wSell.Price-obStat.wBuy.Price)/3)

-продавать когда цена продажи находится около верхней стенки торгового коридора



Описание секции Bot-> Functions-> Bot_Charts

Работа с графиком и свечами

функции работы с графиками (свечи, объемы, MACD)
свечи:

GetCandleOpen(AIdx) - получить цену открытия свечи
GetCandleClose(AIdx) - получить цену закрытия свечи
GetCandleHigh(AIdx) - получить максимальную цену по свечи
GetCandleLow(AIdx) - получить минимальную цену по свечи
GetCandleDown(AIdx) - низ тела свечи
GetCandleUp(AIDx) - верх тела свечи
GetCandleAvgB(AIdx) - среднее по телу свечи (B - body)
GetCandleAvgS(AIdx) - среднее по тени свечи (S - shadow)
GetCandleType(AIdx) - тип свечи
0 = никакая (т.е. без тела)
-1 = падающая
1 = возрастающая
объем торгов:
GetCandleVolume(AIdx) - получить объем по свечи

AIdx - порядковый номер свечи(текущая свеча которая прорисовывается в данный момент имеет номер 0)
нумерация справа налево. Следующая 1 и так далее.

Пример:
Опишем фигуру "МОЛОТ"

Описание модулей (функции и переменные)


тут небольшой код для описания как зеленой так и красной свечи "Молот".
промежуток от цены закрытия до цены открытия берем за единицу.
Верхняя часть должны быть меньше 0.2
Нижняя больше 1.8

(
(GetCandleOpen(1) > GetCandleClose(1))
and
((GetCandleHigh(1)-GetCandleOpen(1)) <
 0.2*(GetCandleOpen(1)-GetCandleClose(1)))
and
((GetCandleClose(1)-GetCandleLow(1))>
1.8*(GetCandleOpen(1)-GetCandleClose(1)))
)
or
(
(  GetCandleOpen(1) < GetCandleClose(1)  )
and
( (GetCandleHigh(1)-GetCandleClose(1)) <
 0.2*(GetCandleClose(1)-GetCandleOpen(1))   )
and
(
(GetCandleOpen(1)-GetCandleLow(1))>
1.8*(GetCandleClose(1)-GetCandleOpen(1))
)
)



гистограмма-индикатор MACD

GetMACDH(AIdx) - получить значение MACD по свечи

Описание модулей (функции и переменные)


GetRSI(AIdx) - получить значение RSI индикатора по свечи
GetStochRSI(AIdx) - получить значение StochRSI индикатора по свечи
GetBollingerHigh(AIdx) - получить максимум по линиям Боллинджера по свечи
GetBollingerLow(AIdx) - получить минимум по линиям Боллинджера по свечи
GetBollingerMean(AIdx) - получить среднее по линиям Боллинджера по свечи

Описание секции Bot-> Functions-> Bot_Pairs

GetPairsCnt() - получить количество всех пар бота
GetPair() - получить пару бота по индексу

ПРИМЕР (вывод всех возможных пар для биржи):


var i:integer;
for i:=0 to GetPairsCnt()-1 do
begin
Log(''+GetPair(i));
end;


Описание секции Bot-> Functions-> Bot_OrderBook

Описание модулей (функции и переменные)


- куда пойдёт цена если купить/продать AAmnt (граничная цена по стакану если например предполагается купить 1000 LTC - насколько вырастет курс)
OBCalcPriceIfBuy(AAmnt) - получить граничную цену при покупку н-ного количества крипты
OBCalcPriceIfSell(AAmnt) - получить граничную цену при продаже н-ного количества крипты

- стоимость покупки/продажи AAmnt - Получить полную стоимость по стакану при покупке (к примеру 1000 LTC)
OBCalcCostBuy(AAmnt) - получить стоимость при покупке по стакану н-ного количества крипты
OBCalcCostSell(AAmnt) - получить стоимость при продаже по стакану н-ного количества крипты

- сколько нужно купить/продать, чтобы цена дошла до ( обратная функция - например сейчас курс 11 мы хотим сделать 12 - показывает сколько надо купить чтобы курс стал 12)
OBCalcAmntToPriceBuy(APrice) - получить количество крипты для покупки чтобы курс дошел до цены APrice
OBCalcAmntToPriceSell(APrice) - олучить количество крипты для продажи чтобы курс дошел до цены APrice

Функции для перебора стакана в цикле:
i- index integer
GetOBBuyCnt() - количество строк в стакане покупки
GetOBBuyAmnt(i) - количество в ордере покупки
GetOBBuyPrice(i) - цена в ордере покупки

ПРИМЕР ПЕРЕБОРА СТАКАНА В ЦИКЛЕ(ордера на покупку):


var i:integer;
for i:=0 to GetOBBuyCnt() -1 do
begin
Log(' Количество в ордере = '+FloatToStr(GetOBBuyAmnt(i))+' по цене '+FloatToStr(GetOBBuyPrice(i)) );
end;



GetOBSellCnt() - количество строк в стакане продажи
GetOBSellAmnt(i) - количество в ордере продажи
GetOBSellPrice(i) - цена в ордере продажи

ПРИМЕР ПЕРЕБОРА СТАКАНА В ЦИКЛЕ(ордера на продажу):


var i:integer;
for i:=0 to GetOBSellCnt() -1 do
begin
Log(' Количество в ордере = '+FloatToStr(GetOBSellAmnt(i))+' по цене '+FloatToStr(GetOBSellPrice(i)) );
end;


Описание секции Bot-> Functions-> Bot_Orders

i- index integer
GetOrdersCnt() - количество выставленных отложенных ордеров
GetOrderID(i) - получить номер ордера по индексу
GetOrderType(i) - получить тип ордера по индексу (true - покупка, false - продажа)
GetOrderAmnt(i) - получить количество в ордере по индексу
GetOrderPrice(i) - получить цену ордера по индексу
GetOrderDate(i) - получить дату ордера по индексу

ПРИМЕР ПЕРЕБОРА ОРДЕРОВ В ЦИКЛЕ:


var i:integer;
for i:=0 to GetOrdersCnt()-1 do
begin
Log(' Количество в ордере = '+FloatToStr(GetOrderAmnt(i))+' по цене '+FloatToStr(GetOrderPrice(i)) );
end;


Описание секции Bot-> Functions-> Bot_Parties

i - index integer
GetPartiesCnt() - получить количество партий бота
GetPartyID(i) - получить айди партии
GetPartyAmnt(i) - получить количество в партии
GetPartyPrice(i) - получить цену покупки партии
GetPartyDate(i) - получить дату и время партии
GetPartyChanged(i) - проверить на модифицированность партии(чтото продавалось или покупалось из нее)

ПРИМЕР ПЕРЕБОРА ПАРТИЙ В ЦИКЛЕ:


var i:integer;
for i:=0 to GetPartiesCnt()-1 do
begin
Log(' Количество в партии = '+FloatToStr(GetPartyAmnt(i))+' по цене '+FloatToStr(GetPartyPrice(i)) );
end;



Описание секции Bot-> Functions-> Bot_DateTime


Временные функции (для использования расписания по времени закупок и продаж)

MakeDateTime(День,Часы,минуты) - получить любое время (для использования в других функциях)

Если День=0 то это сегодня. например получить время 15-00 сегодня будет выглядеть как MakeDateTime(0,15,0)


HourOf() - возвращает текущее значение часов
HourOf(currTicker.ServerTime) если время 19:10:11 то вернет 19

MinuteOf() - возвращает текущее значение минут
MinuteOf(now) если время 19:10:11 то вернет 10


now - текущее время
secondsbetween(момент времени 1 , момент времени 2) - время в секундах между двумя моментами времени
minutesbetween(момент времени 1 , момент времени 2) - время в минутах между двумя моментами времени

Примеры:
secondsbetween(now,botInfo.lastBuyTime)>30

- проверка прошло ли 30 секунд со времени прошлой покупки
minutesbetween(now,botInfo.lastBuyTime)>1

- проверка прошла ли одна минута с последней покупки
Удобно использовать в правилах покупки ботом вместе с установкой ограничения на покупку по партии (Trade options - Limits - Buy Size)
secondsbetween считает все секунды!
т.е. может быть не только 30, но и 300, и 600 секунд разницы
аналогично минуты


Описание секции Bot-> Functions-> Bot_Funcs

Описание модулей (функции и переменные)


GetProfitPrice(APrice,APercent) - расчетная точка безубыточности

пример использования:
GetProfitPrice(botInfo.minParty.pPrice,0.4) вернет цену, при достижении которой получим профит 0.4%
с учетом обеих комиссий, разумеется, т.е. это чистые 0.4% будут
т.е. вместо
currTicker.sell>botInfo.minParty.pPrice*1.007

можно писать
 currTicker.sell>GetProfitPrice(botInfo.minParty.pPrice,0.3)

и это будет универсально (функция сама учитывает комиссии на покупку и на продажу по валютной паре)
т.е. сработает правильно независимо от того что торгуем: BTC/USD(0.2%) или USD/RUR(0.5%) или еще что-то

чтобы понимать сколько закладывать своего процента - можно подсчитать
GetProfitPrice(botInfo.minParty.pPrice,0)
это точка безубыточности. например, для BTC/USD(0.2%) будет 1.004012...
т.е. GetProfitPrice(botInfo.minParty.pPrice,0.3) это примерно botInfo.minParty.pPrice*1.007

также можно считать и с отрицательными процентами
но понимать, что 0 - это безубыточность с учетом комиссии


GetIncome() - возвращает прибыль/убыток
GetIncome(0) - вернет только прибыль (если убыток то вернет 0)
GetIncome(1) вернет так как есть (плюс - так плюс, минус - так минус)

GetRandom(x,y)- случайное целое число между x и y
Пример : GetRandom(10,100) - любое число между 10 и 100


IfThen (УСЛОВИЕ, ПАРАМЕТР1, ПАРАМЕТР2) - Функция ветвления If Then (позволяет выбрать один из двух вариантов при выполнении условия , или же не выполнении)
УСЛОВИЕ - Формула с условием
ПАРАМЕТР1 - Возвращается функцией если УСЛОВИЕ сработало
ПАРАМЕТР2 - Возвращается функцией если УСЛОВИЕ не сработало

РЕКОМЕНДУЕМ ИСПОЛЬЗОВАТЬ СТАНДАРТНЫЕ УСЛОВИЯ ЯЗЫКА PASCAL!!
 if (a>b) then begin end;


Примеры:
Простой абстрактный пример.
Если два значения currTicker.sell= 14
currTicker.buy= 13
IfThen(currTicker.sell> currTicker.buy, 1, 0)
- вернет 1. Так как 14>13.

поддерживает вложенность функций - можно строить сложные ветвления:
к примеру еще две переменных содержат значения:
highPrice30s=13.5
lowPrice=13

IfThen(currTicker.sell> currTicker.buy, IfThen(volStat.sSell.b30s.prMax>currTicker.low, 0, 1), 0)
- сначала проверит
 currTicker.sell> currTicker.buy (14>13)
затем
volStat.sSell.b30s.prMax>currTicker.low
и вернет 0.

Ln() - натуральный логарифм
Exp() - експонента
Abs() - модуль числа
FloatToStr() - конвертация типа Double в строку
IntToStr() - конвертация типа Integer в строку
DateToStr() - конвертация типа DateTime в строку
BoolToStr() - конвертация типа Boolean в строку

GetBuyPrice(количество секунд назад) - получить цену покупки (тикера) несколько секунд назад
GetSellPrice(количество секунд назад) - получить цену продажи (тикера) несколько секунд назад

пример использования:
GetBuyPrice(300) вернет currTicker.buy 300 секунд (т.е. 5 минут) назад
допускается писать также GetBuyPrice(5*60), GetBuyPrice(60*3*60)

Описание модулей (функции и переменные)


Правило на покупку
курс вырос за 5 минут на 0.2%
в функциях все в секундах
поэтому 5 минут множим на 60
((currTicker.buy/GetBuyPrice(5*60))-1)*100>=0.2



Правило на продажу
курс упал за 5 минут на 0.2%

( (currTicker.sell/GetSellPrice(5*60)) -1 ) *100<=-0.2

если упал то будет минус 0.2
или меньше



GetMinBuyPrice(Момент времени 1 ,момент времени 2) - получить минимальную цену покупки между двумя моментами времени
GetMaxBuyPrice(Момент времени 1 ,момент времени 2) - получить максимальную цену покупки между двумя моментами времени
GetMinSellPrice(Момент времени 1 ,момент времени 2) - получить минимальную цену покупки между двумя моментами времени
GetMaxSellPrice(Момент времени 1 ,момент времени 2) - получить максимальную цену покупки между двумя моментами времени

ПРИМЕРЫ :
GetMinBuyPrice(600,0) - минимальное значение за 600 секунд.
GetMaxBuyPrice(60) - максимальное значение за 60 секунд.

GetBuyVolume(ASecondsFrom,ASecondsTo) - получить объем покупки за произвольный период времени
GetSellVolume(ASecondsFrom,ASecondsTo) - получить объем продажи за произвольный период времени

пример использования:
GetBuyVolume(600,300) вернет BuyVolume между 600 и 300 секунд назад (т.е. между 10 и 5 мин. назад)
GetBuyVolume(600,0) вернет BuyVolume за последние 600 секунд (т.е. 10 мин.)
допускается писать также GetBuyVolume(10*60,5*60)


Смотрим минутный график
(currTicker.buy- GetBuyPrice(1*60) ) - Изменение цены за 60 секунд (считается не от текущего момента, а от времени по тикеру (Время сервера)) -- Ближняя свечка к текущему моменту
GetBuyPrice(1*60) - Цена 60 секунд назад
GetBuyPrice(1*60) - GetBuyPrice(2*60) - Изменение от минуты до двух минут назад (вторая свечка от текущего момента по минутному графику)
GetBuyPrice(2*60) - GetBuyPrice(3*60) - Изменение от двух минут назад до трех минут (третья свечка от текущего момента по минутному графику)

Тоже самое для объемов

GetBuyVolume(60,0) - объем за минуту назад (объем покупки первой свечки)
GetBuyVolume(2*60,60) - объем от 2 минут до минуты назад назад (объем покупки второй свечки)
GetBuyVolume(3*60,60) - объем от 3 минут до 2 минут назад назад (объем покупки третьей свечки)


Описание секции Bot-> Functions-> Bot_RW

Функции ввода - вывода используются в методах OnSendData,onloadState,OnWatch,OnSaveState

AWriter.WriteStr() - передать строку
AWriter.WriteBool() - передать тип Boolean
AWriter.WriteInt() - передать целое число
AWriter.WriteDouble() - передать дробное число
AWriter.WriteDateTime() - передать дату время

AReader.ReadStr() - считать строку
AReader.ReadBool() - считать типа boolean
AReader.ReadInt() - считать целое число
AReader.ReadDouble() - считать дробное число
AReader.ReadDateTime() - считать дату и время

ПРИМЕРЫ

(передаем переменную другим ботам):

procedure TTradeStrategy.OnSendData(AWriter:IDataWriter);
begin
  // тут описываем передачу данных другим ботам, например
  AWriter.WriteDouble('buy',currTicker.buy);
end;


(выводим значение на отладку в Watcher на главном экране программы):

procedure TTradeStrategy.OnWatch(AWriter:IDataWriter);
begin
  // для просмотра значений переменных в окне бота, например
  AWriter.WriteInt('myVar1',myVar1);
  AWriter.WriteDouble('myVar2',myVar2);
  AWriter.WriteDouble('myVars',myVar1+myVar2);
 end;


Описание секции Bot-> Functions-> Bot_Log

Логгирование событий бота. Вывод информации в лог :

LogVarDouble('строка ',дробное число) - вывод в лог дробных чисел
LogVarInt('строка ', целое число) - вывод в лог целых чисел
LogVarStr('строка ', 'строка ') - вывод в лог строк
Log ('строка') - вывод строки
LogVarBool('строка ', тип boolean) - вывод в лог boolean
LogVarDateTime('строка ',DateTime) - вывод в лог типа дата время

также поддерживается вывод в цвете :
LogVarDouble('строка ',дробное число,цвет фона,цвет шрифта)
LogVarDouble('other buy',currTicker.buy,$0000FF,$008000);
где $0000FF - код цвета фона
$008000 - код цвета шрифта.


0 комментариев