/
Nebelung
/
QuikAssistantGiga
Обзор
Документация
Войти
/
Nebelung
/
QuikAssistantGiga
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
TradeSave.lua
48 строк
2 KB
NebelungCat
first_commit
09 дек 2025, 22:27
09 дек 2025, 22:27
04bf7ed
Код
Авторство
О чём код?
--������ ������ � ����� � ����� ������ function TradeSave(trade) -- �������, ��� ��������� ��� ������/���������� ���� CSV � ��� �� �����, ��� ��������� ������ ������ fileMyTrades = io.open(getScriptPath().."//Data//MyTrades.csv", "a+"); -- ��������� �������� ������ local Operation = ""; if CheckBit(trade.flags, 2) == 1 then Operation = "-"; else Operation = ""; end; -- ������� ������ ������ ��� ������ � ���� ("���� � �����;��� ������;��� ������;����� ������;����� ������;��������;����;����������\n") local TradeLine = os.date("%Y-%m-%d") .. " " .. os.date("%X",os.time()) ..";".. trade.sec_code..";".. Operation..trade.qty..";".. trade.price..";".. Broker.."\n"; -- ���������� ������ � ���� fileMyTrades:write(TradeLine); -- ��������� ��������� � ����� fileMyTrades:flush(); -- ��������� �������� CSV-���� fileMyTrades:close(); end; -- ������� ���������� �������� ���� (����� 0, ��� 1) ��� ������� bit (���������� � 0) � ����� flags, ���� ������ ���� ���, ���������� nil function CheckBit(flags, bit) -- ���������, ��� ���������� ��������� �������� ������� if type(flags) ~= "number" then error("������!!! Checkbit: 1-� �������� �� �����!"); end; if type(bit) ~= "number" then error("������!!! Checkbit: 2-� �������� �� �����!"); end; local RevBitsStr = ""; -- ������������ (����� �������) ��������� ������������� ��������� ������������� ����������� ����������� ����� (flags) local Fmod = 0; -- ������� �� ������� local Go = true; -- ���� ������ ����� while Go do Fmod = math.fmod(flags, 2); -- ������� �� ������� flags = math.floor(flags/2); -- ��������� ��� ��������� �������� ����� ������ ����� ����� �� ������� RevBitsStr = RevBitsStr ..tostring(Fmod); -- ��������� ������ ������� �� ������� if flags == 0 then Go = false; end; -- ���� ��� ��������� ���, ��������� ���� end; -- ���������� �������� ���� local Result = RevBitsStr :sub(bit+1,bit+1); if Result == "0" then return 0; elseif Result == "1" then return 1; else return nil; end; end;