Избранное трейдера Александр Павлов
-- --СКРИПТ Niki для smart-lab.ru 260321 ревизия --------------------------------------- -- Флаг для поддержания работы функции main is_run=true fut_limit_old =0 fut_limit_max =0 kgo_old =0.5 function main( ... ) -- чудотворная функция внутри которой все работает --"r": режим чтения (по умолчанию); --"w": режим записи; --"a": режим добавления; --"r+": режим обновления, все предыдущие данные сохраняются; --"w+": режим обновления, все предыдущие данные стираются; --"a+": режим добавления и обновления, предыдущие данные сохраняются, запись разрешена только в конец файла. b бинарные файлы -- Пытается открыть файл в режиме "чтения/записи" f = io.open(getScriptPath().."\\Limits.txt","a"); -- Если файл не существует if f == nil then -- Создает файл в режиме "записи" f = io.open(getScriptPath().."\\Limits.txt","w"); -- Закрывает файл f:close(); -- Открывает уже существующий файл в режиме "чтения/записи" f = io.open(getScriptPath().."\\Limits.txt","a"); end; while is_run do sleep(1000) -- 1000 = 1 секунда --волшебная пауза в работе скрипта if getFuturesLimit("A111", "A111111", 0, "SUR") ~= nil then -- защита от пустых таблиц -- впишите ваши данные из Квика -- %c - дата и время (по-умолчанию) (пример, 03/22/15 22:28:11) -- %x - дата (пример, 09/16/98) -- %X - время (пример, 23:48:10) seconds = os.time(); -- в seconds будет значение 1427052491 date1 = os.date("%x",seconds); -- %c - дата (по-умолчанию) (пример, 03/22/15 22:28:11) time1 = os.date("%X",seconds); -- %c - время (по-умолчанию) (пример, 03/22/15 22:28:11) --[[ liquidity_coef --NUMBER Коэффициент ликвидности cbp_prev_limit --NUMBER Предыдущий лимит открытых позиций на спот-рынке» cbplimit --NUMBER Лимит открытых позиций cbplused --NUMBER Текущие чистые позиции cbplplanned --NUMBER Плановые чистые позиции varmargin --NUMBER Вариационная маржа accruedint --NUMBER Накопленный доход cbplused_for_orders --NUMBER Текущие чистые позиции (под заявки) cbplused_for_positions --NUMBER Текущие чистые позиции (под открытые позиции) options_premium --NUMBER Премия по опционам ts_comission --NUMBER Биржевые сборы kgo --NUMBER Коэффициент клиентского гарантийного обеспечения currcode --STRING Валюта, в которой транслируется ограничение real_varmargin --NUMBER Реально начисленная в ходе клиринга вариационная маржа. Отображается с точностью до 2 двух знаков. При этом в поле «varmargin» транслируется вариационная маржа, рассчитанная с учетом установленных границ изменения цены --]] fut_limit = getFuturesLimit("A111", "A111111", 0, "SUR").cbplused_for_positions -- NUMBER Текущие чистые позиции (под открытые позиции) -- впишите ваши данные из Квика varmargin = getFuturesLimit("A111", "A111111", 0, "SUR").varmargin -- впишите ваши данные из Квика accruedint = getFuturesLimit("A111", "A111111", 0, "SUR").accruedint -- впишите ваши данные из Квика ts_comission = getFuturesLimit("A111", "A111111", 0, "SUR").ts_comission -- впишите ваши данные из Квика kgo = getFuturesLimit("A111", "A111111", 0, "SUR").kgo -- впишите ваши данные из Квика profit = varmargin + accruedint; --if math.abs(fut_limit-fut_limit_old) > 10000 then -- каждые 10000 рублей изменения ГО, слишком частый файл печати if math.abs(fut_limit-fut_limit_old) > 100000 then -- каждые 100000 рублей изменения ГО, настраиваем под себя. open_lim = getFuturesLimit("A111", "A111111", 0, "SUR").cbplimit --NUMBER Лимит открытых позиций f:write( tostring(date1).." "..tostring(time1).." ".."ГО: "..tostring(fut_limit).." ".."Профит: "..tostring(profit).." ".."Комис: "..tostring(ts_comission).." ".. "КГО: "..tostring(kgo).." Lim: "..tostring(open_lim).. "\n"); -- "\n" признак конца строки --f:write( tostring(date1).. " " ..tostring(time1).. " " .. "BID: " .. tostring(res_trans) .. " " .. "ASK: " .. tostring(MXU8ask_vol) .. "\n"); -- "\n" признак конца строки -- Сохраняет изменения в файле на диск f:flush(); fut_limit_old = fut_limit; end if fut_limit_max == 0 then fut_limit_max = fut_limit; end if ( math.abs(fut_limit-fut_limit_max) > 1000000 and fut_limit>0 ) then -- настраиваем под себя message( tostring(fut_limit) ) ----сообщение в Квик-- --message( tostring(time1) ) ---------------------------------------- отправляем сообщение в Телеграмм-- pos_free = getFuturesLimit("A111", "A111111", 0, "SUR").cbplplanned --NUMBER ГО свободных денег от позы без пониженного ГО open_lim = getFuturesLimit("A111", "A111111", 0, "SUR").cbplimit --NUMBER Лимит открытых позиций tg_message = tostring(open_lim).." ГО:"..tostring(fut_limit).." Поза:"..tostring(open_lim-pos_free) os.execute('curl "https://api.telegram.org/botВашиДанныеИзТелеграмм&text= + '..tg_message..' " ') -- отправляем в телегу, через винду. Вписать ваши данные из Телеграмм ---------------------------------------- -- Пример строки https://api.telegram.org/bot365877050:AAE232342348HIqifnyGSsw89U_4TK3Y/sendMessage?chat_id=202560128&text= + Привет Квик! ---------------------------------------- fut_limit_max = fut_limit; end if math.abs(kgo-kgo_old) > 0 then ---------------------------------------- отправляем сообщение в телеграмм tg_message = tostring(kgo).." Внимание! Изменился коэффициент КГО" os.execute('curl "https://api.telegram.org/botВашиДанныеИзТелеграмм&text= + '..tg_message..' " ') -- отправляем в телегу, через винду. Вписать ваши данные из Телеграмм ---------------------------------------- -- Пример строки https://api.telegram.org/bot365877050:AAE232342348HIqifnyGSsw89U_4TK3Y/sendMessage?chat_id=202560128&text= + Привет Квик! ---------------------------------------- kgo_old = kgo; end end end f:close(); -- закрываем файл печати. end -- Остановка скрипта из Квика function OnStop(stop_flag) is_run=false end
Всем здоровья и бодрого расположения духа!
В статье «Визуализация рекомендаций Романа Андреева на Python» мы разобрали как можно с помощью нескольких строк кода на Питоне разобрать текст, который выкладывает каждое утро в своем блоге Роман Андреев (далее по тексту Роман) — известный трейдер и блогер (или наоборот), и отобразить эти рекомендации в виде уровней и зон на графиках. В этом топике я покажу способ для извлечения информации из графических изображений с помощью технологий компьютерного зрения (но без использования нейронных сетей) на примере таблиц-рекомендаций из блога Романа Андреева.
Надеюсь, что я не напугал читателей термином «компьютер вижн», скоро вы поймете, что это просто. И что любой юный прогер может написать код для распознавания внешними камерами номеров автомобилей, который впоследствии возненавидят все автолюбители мегаполисов, а МАДИ и ГИБДД будут собирать со всех нас миллиардные штрафы
Доброго всем здоровья и веселого праздника!
В этом топике я покажу как на Питоне можно извлекать полезную информацию из обычного текста и представлять ее на графиках. Большинство аудитории Смартлаба знают Романа Андреева (2 место по рейтингу, после Создателя) как профессионального трейдера, рекомендациями которого пользуются многие смартлабовцы. Ежедневный утренний топик «Ситуация на текущий момент», стал уже многолетней традицией, как чашка кофе с круассаном, и по-праву набирает огромное количество лайков. Его рекомендации помогают людям не только сохранить свой капитал, но и приумножить его. Я, к сожалению, лично не знаком с Романом, но давно являюсь его подписчиком. А еще, мне нравятся его стихи!
Спасибо Роману за его труд! Я же, постараюсь добавить «наглядности» рекомендациям с помощью кода на Питоне, как всегда в несколько строк.
Итак, за дело! Топик длинный и н
Я новичок, хочу уйти от дяди, помогите сделать рабочую ТС, для начала хватит Шарпа 1, доходности 15-20% годовых с просадкой не более 10%.
Если ретурн 15-20% и шарп 1, то и волатильность будет 15-20%. А с волатильностью 15-20% надо ожидать просадки 30-40%, а никак не 10%. То есть вы разберитесь, чего вы хотите. Если доходности 20% — готовьтесь к просадке 40% с шарпом-то 1. Если просадки 10% — значит, доходность ожидаемая должна быть 5%, ну пусть 10% от силы. А если вам и то и то — то шарпа надо с такими запросами в районе 3. А такой шарп есть только у ХФТ либо у пары-тройки больших хорошо диверсифицированных фондов (на всей планете).]
Всем привет. В своих прошлых постах я писал, что увлекся анализом обезличенных сделок.
Вот что описывал:
https://smart-lab.ru/blog/583818.php
https://smart-lab.ru/blog/584792.php
В комментариях и личных сообщениях меня активно просили разработать аналог «Прилипалы» для Квика (Quik). Ну не прошло и полгода, как сделал. Забрать можно вот отсюда:
https://кбс.онлайн/soft.html
На странице есть бесплатная версия, полностью аналогичная таблице в Excel, пользуйтесь на здоровье.
Но… ну или как говорил Джобс «Ах да, забыл сказать… » — в своих поисках я ушел дальше, а именно:
1) Реализовал индикацию изменения скорости сделок. Как сделал и зачем? Как: считаю каждую минут число сделок, через минуту с момента запуска скрипта начинаю делить общее число сделок на количество прошедших минут. Так получаем среднюю скорость. Чем больше прошло времени, тем объективнее средняя скорость. Ну а резкое изменение скорости фиксируется когда текущая скорость вдвое выше средней. Зачем: на момент осуществления больших сделок резко вырастает скорость. Почему? Представьте «боковое» движение: цена меняется не сильно, кто-то «немного» покупает, кто-то продает. И тут приходят «ребята с большими деньгами» и выкупают большой объем акций, тем самым закрывая большой объем выставленных заявок. Поэтому и скорость резко увеличивается.
2) Подгружаю весь архив обезличенных сделок с начала торгового дня. Предидущая версия Прилипалы (та которая в Excel-е) — работала в режиме реального времени.
3) Начал экспериментировать с Телеграммом — создал канал kbs.online (