Избранное трейдера SAVas2005

по

Скрипт lua Баланс покупок/продаж

Всем привет. Переделал первоначальную версию скрипта. Исправил некоторые ошибки и немного расширил функционал. Теперь скрипт может сохранять данные в текстовый файл, который потом можно анализировать в другой программе (например exсel). Также, в отличии от первого варианта, скрипт показывает в таблице усредненную цену, по которой прошли сделки. В первом варианте отображалась цена последней сделки. И в скрипте добавлен показ накопленной дельты за все время пока скрипт работает.

TICER = "SBER";
CLASS_CODE = "TQBR";
FilePath = getScriptPath() .. "\\export.txt";--путь к файлу
save = false;--сохранять данные в файл если false нет, true да

f = nil;
stopped = false;
t_id = nil
H = -1;
M = -1;
VSELL = 0;
VBUY  = 0;
CDelta = 0;
CountTrans = 0;
PriceTrans = 0.0; 
t = "";
function OnInit()
    CountTrans = 0;
        if save then f = io.open(FilePath,"w"); end
        CreateTable();
end 

function main() 
        while not stopped do 
          if IsWindowClosed(t_id) then
         stopped = true;
      end       
          sleep(10);
        end
end

function CreateTable()
   t_id = AllocTable(); 
   AddColumn(t_id, 0, "Время", true, QTABLE_STRING_TYPE, 10);
   AddColumn(t_id, 1, "BUY", true, QTABLE_INT_TYPE, 10);
   AddColumn(t_id, 2, "SELL", true, QTABLE_INT_TYPE, 10);
   AddColumn(t_id, 3, "Дельта V", true, QTABLE_INT_TYPE, 10);   
   AddColumn(t_id, 4, "AVG Цена", true, QTABLE_DOUBLE_TYPE, 15);
   AddColumn(t_id, 5, "Накопленная Дельта", true, QTABLE_INT_TYPE, 15);
   AddColumn(t_id, 6, "Кол-во сделок", true, QTABLE_DOUBLE_TYPE, 12);   
   tab = CreateWindow(t_id);
   local NAME = tostring(getParamEx(CLASS_CODE,TICER,"LONGNAME").param_image);
   SetWindowCaption(t_id, TICER.." ("..NAME..") Баланс покупок/продаж");
   SetTableNotificationCallback(t_id, EventCallBack);
end

function Calc(alltrade)
        if bit.test(alltrade.flags, 0) then VSELL = VSELL+alltrade.qty;  --Продажа
        else VBUY  = VBUY+alltrade.qty;  end                            
        CountTrans = CountTrans+1;
        PriceTrans = PriceTrans+alltrade.price;                 
end

function OnAllTrade(alltrade)    
        if alltrade.sec_code == TICER then      
                local Rows, Col = GetTableSize(t_id);
                
                if H==-1 or H~= alltrade.datetime.hour then 
                        H = alltrade.datetime.hour;
                        M = alltrade.datetime.min;
                        t = tostring(alltrade.datetime.hour)..":"..tostring(alltrade.datetime.min);
                end
                if M==alltrade.datetime.min then
                        Calc(alltrade);
                else                                    
                M=alltrade.datetime.min;        
                        InsertRow(t_id, -1);                                               
                        local Delta = VBUY-VSELL;
                        Price = PriceTrans/CountTrans;
                        SetCell(t_id, Rows, 6, tostring(CountTrans));                   
                        SetCell(t_id, Rows, 0, t);
                        SetCell(t_id, Rows, 1, tostring(VBUY));
                        SetCell(t_id, Rows, 2, tostring(VSELL));                           
                        SetCell(t_id, Rows, 3, tostring(Delta));
                        local SEC_SCALE = tostring(getParamEx(CLASS_CODE,TICER,"SEC_SCALE").param_value);
                        SEC_SCALE = string.format("%.0f",SEC_SCALE);                    
                        SetCell(t_id, Rows, 4, string.format("%."..SEC_SCALE.."f", tostring(Price)));
                   if Rows>=2 then
                           local OldPrice = tonumber(GetCell(t_id,Rows-1,4).image);
                           if OldPrice>Price then 
                                        Red(Rows,4); 
                           else 
                                        Green(Rows,4);
                           end
                           CDelta = tonumber(GetCell(t_id,Rows-1,5).image);
                           CDelta = CDelta + Delta;                        
                        else 
                          CDelta = Delta;
                        end
                        SetCell(t_id, Rows, 5, tostring(CDelta));
                    if Delta<0 then Red(Rows,3); end
                    if Delta>0 then Green(Rows,3); end
                    if CDelta<0 then Red(Rows,5); end
                    if CDelta>0 then Green(Rows,5); end                                                   
                   if save then
                                local Str = tostring(H)..";"..tostring(M)..";"..tostring(VBUY)..";"..tostring(VSELL)..";"
                                                ..tostring(Delta)..";"..tostring(Price)..";"..tostring(CDelta);
                           Str=Str.."\n";
                           SaveFile(Str);
                        end
                t = tostring(alltrade.datetime.hour)..":"..tostring(alltrade.datetime.min);                        
                    VBUY = 0;VSELL = 0;
                        PriceTrans = 0;
                        CountTrans = 0;
                        Calc(alltrade);
                end
        end --if alltrade.sec_code == TICER then        
end

function SaveFile(Str)
        if f ~= nil then 
                f:write(Str);           
                f:flush();                               
        end
end

function Red(row,col)
        SetColor(t_id, row, col, RGB(255,0,0), RGB(0,0,0), RGB(255,0,0), RGB(0,0,0));
end
function Yellow(row,col)
        SetColor(t_id, row, col, RGB(240,240,0), RGB(0,0,0), RGB(240,240,0), RGB(0,0,0));
end
function Green(row,col)
        SetColor(t_id, row, col, RGB(0,200,0), RGB(0,0,0), RGB(0,200,0), RGB(0,0,0));
end


function EventCallBack(t_id, msg, par1, par2)
   if msg==QTABLE_CLOSE then
     OnStop();
   end;
end

function OnStop(s)
  if f ~= nil then f:close(); end
  if t_id ~= nil then
    DestroyTable (t_id);
  end;
  stopped = true;
end




Сообщение медика из Италии

(Делаю репост)

Привет… к сожалению да, чуда в этот раз не будет, штука заразная и неприятная. И не придет, а уже пришла (см. количество пневмоний в одесских больницах) уже как месяц назад… все как в Италии.  Здесь официально заявили о начале эпидемии в конце февраля, в то время как было уже в полном разгаре в конце января (по своим пациентам видел), первый пациент в Италию прилетел из Мюнхена 9 января… поэтому и такие последствия. Делали вид, что «ложки нет».

Симптомы: основной — сухой кашель, обычно начинается параллельно с першением и болью в горле (иногда и часто просто боль в шее, типа мышечная и в мышцах шеи, полагаю по ходу лимф. узлов), легкое недомогание и типа продромных явлений, все как при гриппе. Температура 37,0-37,5  — 1-2 дня, или вообще без температуры. НО! как правило, нет ринита. Часто головная боль, заложенность ушей (сальпингит), легкие признаки синусита, но, повторю, необычно как-то, нет секреторного компонента. Есть просто отек слизистых. Далее, на 2-4 день боль по ходу трахеи и за грудиной (!), сухой кашель усиливается. С пятого дня может появиться боль в грудной клетке (уже более латерально, не по центру), затрудненное дыхание (периодами). И это вот продолжается без лечения около 15-20 дней. Потом, если осложнений нет, уходит и улучшается (субъективно) по 5% в день. Длится всего порядка месяца (от 3 до 6 недель). Если нет осложнений — то температуры нет, или гипотермия (36,0-36,3). В анализе крови аналогично: основной симптом — лимфопения (!), мало либо нормальное кол-во нейтрофилов, и повышенный С-реактивный белок. Больше ничего.

( Читать дальше )

10 Худших Эпидемий В Истории

Чума Юстиниана, эпидемия, охватившая Восточную Римскую империю, унесла почти 10 000 000 жизней. Это была худшая эпидемия в истории, за которой последовала Черная чума.

10 Худших Эпидемий В Истории
На протяжении всей истории эпидемии были причиной гибели сотен тысяч людей. Эпидемии унесли так много жизней, потому что они, как правило, являются высокоинфекционными заболеваниями, которые достигают большого количества людей в очень короткие сроки. Количество случаев заболевания быстро превышает то, что обычно ожидается в популяции. Эти заболевания могут быть вирусными, бактериальными или другими заболеваниями.
10 Худших Эпидемий В Истории


( Читать дальше )

Индикатор поглащение перехай с объемами

индикатор показывает что по сберу падение еще даже и не начиналось, похоже на то что продажи начнутся после выплаты дивов
Индикатор поглащение перехай с объемами



сам код:

Settings={
Name="abs_over_vol",
period=20,
line=                                     
                {  
                                        {  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    }
                }

}
--[[

описание свойств:
period - период, за каротрый делается расчет

назначение:
построение поглащения и перехая с использованием объемов



--]]

function Init()
  y = 0         
  return 1
end

function OnCalculate(index)
    
  sz = Size()
  n = Settings.period
  

  if index == 1 then 
   y = 0  
  end  
       

   i = index

   
   if index-n > 0 then
        
        if (C(i) < C(i-1)) and (C(i-1) > O(i-1)) and (C(i) < O(i)) and
       (C(i-1) - O(i-1) < O(i) - C(i))  then
      y = y - 1*V(i)       
        end
        
        if (C(i) > C(i-1)) and (C(i-1) < O(i-1)) and (C(i) > O(i)) and
       (O(i-1) - C(i-1) < C(i) - O(i))  then
      y = y + 1*V(i)               
        end     
        
        if (H(i) > H(i-1)) and (L(i) > L(i-1)) then
      y = y + 1*V(i)               
        end
        
        if (H(i) < H(i-1)) and (L(i) < L(i-1)) then
      y = y - 1*V(i)               
        end     
        
   end 
   
   return y
 
  
end

КоронаВирус сделан и пришел из США! Продавайте баксы!

    • 16 марта 2020, 12:14
    • |
    • Lookas
  • Еще
ХРОНОЛОГИЯ СОБЫТИЙ

1. 2015 год
[censored]
Статья в журнале Nature, где указывается, что в США проводились практические исследования по искусственной модификации коронавируса китайской летучей мыши, благодаря которой коронавирус сможет передаваться человеку без необходимости инкубации в промежуточном животном. В статье указываются опасения о том, что такие эксперименты могут быть слишком опасны.

2. 5 августа 2019
Статья в NY Times о закрытии военной биологической лаборатории в США из-за «угрозы безопасности»
[censored]

3. 31 августа 2019
Статья в NY Times о развитии странной эпидемии неизвестной болезни легких в США (на момент выхода статьи – 215 зараженных).
[censored]

4. 11 Сентября 2019 (символичная дата)
[censored]
«Неизвестное заболевание легких» насчитывает уже 500 случаев в более чем 30 штатах в США. Сообщается о смертельных исходах от заболевания в пяти штатах, возраст умерших – от 30 лет и старше. Дональд Трамп, с подачи CDC (Centers for Disease Control and Prevention) созывает совещание на тему ограничения продажи вейпов. Некоторые штаты вводят или рассматривают возможность введения запрета на продажу электронных сигарет – других причин «неизвестного заболевания» не называется, хотя NY Times отмечает, что болели даже те, кто вообще ничего не курил.

( Читать дальше )

Симптомы коронавируса. Как определить что вы уже больны.

Климов Юра — молодой врач из РФ, работает в больнице Шэньчжэня, переведён на изучение вируса пневмонии Ухань. Позвонил своим близким и дал разьяснение.
_

Если у вас насморк и мокрота при простуде, вы не можете быть носителем коронавирусной инфекции.

Коронавирусная пневмония — это сухой кашель без насморка. Это самый простой способ определить, какая у вас инфекция.

Чувствителен к термической обработке. Погибает мгновенно при температуре выше 56°С и в течение 15 минут при температуре выше 37°С.

Совет врача по коронавирусу:

1. Вирус достаточно большой по размеру (диаметр ячейки составляет около 400-500 нм), поэтому обычная мед. маска в принципе может его отфильтровать.

Если заражённый чихает перед вами или пройдет на расстоянии до 3 метров от вас, замедлите шаг и зараза просто упадёт на землю, летать она не может.

2. Если вирус попал на поверхность металла, он проживёт не менее 12 часов.

Поэтому, если вы соприкоснулись с какой-либо металлической поверхностью, тщательно вымойте руки с мылом.

( Читать дальше )

Виснет Quik? Возможно вам сюда.

    • 02 марта 2020, 23:26
    • |
    • 3Qu
  • Еще
Если подвисает сам брокер или связь с ним, то этот топик вам не поможет.
Однако, возможно  причина и в самом терминале Quik. Дело может быть в том, что Quik в процессе работы пишет данные в файлы вида *.dat и *.log, и со временем эти файлы сильно разрастаются и запись в них данных занимает значительное время, отнимая процессорное время у других задач.
Простейший выход из этого состояния — периодическое удаление файлов *.dat и *.log из директории Quik. Для этого надо написать небольшой командный файл всего в одну строчку, разместить его в директории Quik, где находятся удаляемые файлы, и, для удобства использования создать ярлык на рабочем столе.
Итак, открываем блокнот и создаем файл Quik_start.cmd В него помещаем всего одну строчку: 
del alltrade.dat curr_data.log info.log
 
После команды не забудьте нажать Enter, чтобы последней в файле была пустая строка.
Сохраняем файл в указанной выше директории (папке), создаем ярлык и переносим его на рабочий стол. Запускаем командный файл перед стартом Quik. При этом файлы, указанные в команде del будут удалены. При запуске Quik их создаст заново.

( Читать дальше )
  • обсудить на форуме:
  • QUIK

За 10 лет Россия запретила своим гражданам столько, что список занимает несколько страниц

    • 06 января 2020, 17:39
    • |
    • Auximen
      Smart-lab премиум
  • Еще
  • Американцам запретили усыновлять детей из России.
  • Клевету, которую при Медведеве отправили в административный кодекс, снова сделали уголовным преступлением.
  • Реабилитация нацизма — теперь тоже в УК. Причем один пункт этой статьи запрещает неуважительно высказываться о днях воинской славы России — например, о днях победы на Чудском озере и Куликовом поле.
  • Воров в законе теперь можно сажать только на этом основании на срок от восьми до 15 лет и штрафовать.
  • Несообщение о преступлении тоже стало уголовным преступлением. Речь, правда, идет лишь о конкретном перечне: от публичного оправдания терроризма до вооруженного мятежа.
  • За призывы к сепаратизму (например, вернуть Тыву Тайваню


( Читать дальше )

🔥Новая ЗОЖ информация про пищеварение и разрыв всех гомо-шаблонов

Кто-то из вас мне посоветовал новую книгу: Разумный биохакинг Homo Sapiens
🔥Новая ЗОЖ информация про пищеварение и разрыв всех гомо-шаблонов
Реально очень толковая вещь. 
Самое интересное, что ЗОЖ книги противоречат друг другу. 
В одной написано: жри жиры, в другой: не ешь мясо. в третьей: не жри ничего...
А тут разумно и логично все объясняется, и хочу вам кое что рассказать, что лично для меня стало новым.
От себя сразу скажу, что я понял на данный момент: занимаясь всякими биохакингами, модными там лонгевити и прочим, лишениями еды и голоданиями можно напрочь поломать свой организм из-за того, что он будет лишен каких-то важных компонентов.

1. В слюне есть белок — лизоцим. Он убивает бактерии. Он любит щелочную среду, поэтому «минералочка» лечит все болезни при правильном употреблении. Чтобы лизоцим вырабатывался, нужно есть белок. Веганы потребляют только 12 аминокислот вместо 20, лизоцима меньше, — чаще болеют. Дольше жуешь — дольше пища обрабатывается лизоцимом — тем лучше.

2. Желудок переваривает еду, подготавливает ее к всасыванию в кишках. Он изолирован двумя клапанами. И в норме должен быть полностью закрыт, пока еда переваривается. Если человек во время еды нервничает, стрессует, торопится, много запивает еду водой, то можно вывести из строя затворный механизм — кислота из желудка попадать назад в пищевод, а желчь из кишки будет попадать в желудок.

3. В желудке за переваривание белков отвечает желудочный сок — соляная кислота (HCl). Если у вас понижена кислотность сока, то белковая пища (мясо) будет перевариваться неполностью. Неперваренное мясо будет бродить в кишечнике, вызывая газообразование и вонючий аммиачный пердеж. Чтобы вырабатывалась кислота, нужен водород и хлор. Откуда взяться хлору? Тока соль. Поэтому мясоеды инстинктивно любят соль.

тут у меня вопрос: если лизоцим и желудочный сок убивают бактерии, то какой смысл тогда принимать полезные молочнокислые бактерии? или они типа «свои»?

4. Желудок также обеззараживает плохие бактерии. Рвотный рефлекс это что? Желудок понимает, что самостоятельно не в состоянии справиться с отравой в пище, поэтому он открывает верхний (кардиальный) клапан и выталкивает пищу наружу.

5. Если пить много во времы еды, то снижается кислотность желудочного сока. Пища хуже переваривается. Получаем недоперевареную пищу в кишечнике и брожение. Пить лучше за 20 минут до еды и минимум через 30 минут после. Соляная кислота через 30 мин уже не действует. Если вас подташнивает после еды, то как ни странно, лучше не пить — надо дать соляной кислоте доделать свое дело.

Раньше я всегда много пил во время еды, потому что пища казалась мне сухой. А почему? Потому что я как правило ел достаточно торопливо, не осознанно.


( Читать дальше )

....все тэги
UPDONW
Новый дизайн