Избранное трейдера Александр Павлов

по

Утренний сон алготрейдера


После введения утренней торговой сессии проблема автоматического запуска торгового ПО стала особенно актуальна.
Хорошее решение предложил Евгений Логунов  в своей статье «Простой автологин за 5 минут».  Мы предложим аналогичное решение для КВИК на С++.

Задача очень простая — в 7:00 пробудить ПК с помощью планировщика заданий Windows, запустить несколько терминалов QUIK, и в каждом из них запустить торговых роботов, чтобы полностью освободить владельца всего этого счастья от физических и психических нагрузок, плохо влияющих на питание и здоровый образ жизни.


Итак, первое, что нам необходимо будет сделать это Автологин. Штука достаточно простая, учитывая то, что после запуска терминала он автоматически выдает окно приветствия. Нам нужно только дождаться появления этого окна, получить первое вводное поле (логин), второе вводное поле (пароль), вбить туда нужные значения и нажать на первую дочернюю кнопку этого окна: «Вход».

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

Как отправлять сообщения из Квика в Телеграм! И писать в файлик разную дребедень!


Все очень и  очень просто!
Достаточно создать бота в телеге,  написать примитивный  луа  скрипт и запустить его.

Про ботов в телеге здесь  https://core.telegram.org/bots
в гугле  куча инфы  и примеров, как чего куда и зачем.


--
--СКРИПТ 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


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

Анатомия Рынка. Ч5. Фишки Кукла.

Есть очень результативный приемчик в трейдинге, называемый “Игра перед экспирацией”.

.Чтобы его эффективно применять в торговле нужно понимать как он работает.

.


Оригинал здесь.
Остальные частиздесь.
Сквиз.


Всем

Анатомия Рынка. Ч5. Фишки Кукла.



Визуализация рекомендаций Романа Андреева на Python. Часть 2. Компьютерное зрение.

Всем здоровья и бодрого расположения духа!
В статье «Визуализация рекомендаций Романа Андреева на Python» мы разобрали как можно с помощью нескольких строк кода на Питоне разобрать текст, который выкладывает каждое утро в своем блоге Роман Андреев (далее по тексту Роман) — известный трейдер и блогер (или наоборот), и отобразить эти рекомендации в виде уровней и зон на графиках. В этом топике я покажу способ для извлечения информации из графических изображений с помощью технологий компьютерного зрения (но без использования нейронных сетей) на примере таблиц-рекомендаций из блога Романа Андреева.
Визуализация рекомендаций Романа Андреева на Python. Часть 2. Компьютерное зрение.
Надеюсь, что я не напугал читателей термином «компьютер вижн», скоро вы поймете, что это просто. И что любой юный прогер может написать код для распознавания внешними камерами номеров автомобилей, который впоследствии возненавидят все автолюбители мегаполисов, а МАДИ и ГИБДД будут собирать со всех нас миллиардные штрафы



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

Мой портфель авторов Смарт-лаба. Инвесторам на заметку

За 5 лет присутствия на ресурсе путем добавлений и исключений сформировал свой портфель авторов, на которых подписан и которые выдают всегда годный и полезный контент по разбору отраслей и компаний, философии и психологии инвестиций и трейдинга.

Практически каждую их запись читаю с удовольствием и пользой для себя.

Портфель авторов получился такой:

Alexey Galochkin
Alexey Levin
Amigotrader
Auditor20
Finrange
Geist
LaraM/ЛарисаМорозова/
Rondine
Silent Hamster
Vasili4
karpov72
kora_mozga
pick
Алекс Бергманн
Александр Е
Александр Здрогов


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

Визуализация рекомендаций Романа Андреева на Python

Доброго всем здоровья и веселого праздника!

В этом топике я покажу как на Питоне можно извлекать полезную информацию из обычного текста и представлять ее на графиках. Большинство аудитории Смартлаба знают Романа Андреева (2 место по рейтингу, после Создателя) как профессионального трейдера, рекомендациями которого пользуются многие смартлабовцы. Ежедневный утренний топик «Ситуация на текущий момент», стал уже многолетней традицией, как чашка кофе с круассаном, и по-праву набирает огромное количество лайков. Его рекомендации помогают людям не только сохранить свой капитал, но и приумножить его. Я, к сожалению, лично не знаком с Романом, но давно являюсь его подписчиком. А еще, мне нравятся его стихи!
Спасибо Роману за его труд! Я же, постараюсь добавить «наглядности» рекомендациям с помощью кода на Питоне, как всегда в несколько строк.
Визуализация рекомендаций Романа Андреева на Python
Итак, за дело! Топик длинный и н



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

Гребем бабло лопатой на Меди - 2: фундаментальный анализ

    • 14 сентября 2020, 18:41
    • |
    • MadQuant
  • Еще
Гребем бабло лопатой на Меди - 2: фундаментальный анализ
Итак, после первой части, где мы учились рубить капусту с помощью сезонности и технических индикаторов, рассмотрим, как может заработать на меди ленивый инвестор, которому лень каждый день следить, куда там ушла цена, и корректировать свои позиции. Для этого попытаемся сформировать фундаментальный view на актив на ближайшие несколько месяцев.

Бегло просмотрев другие топики, публикуемые по данной теме, с удивлением обнаружил, что в качестве фундаментального анализа все анализируют спрос-предложение меди. Собственно, этот странный факт и побудил меня написать данный пост.

Executive summary

Гребем бабло лопатой на Меди - 2: фундаментальный анализ

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

Ликбез vol. 1: можно ли c Шарпом 1 зарабатывать 20% годовых с просадкой не более 10%?

Ликбез vol. 1: можно ли c Шарпом 1 зарабатывать 20% годовых с просадкой не более 10%?

Тут после последнего топика народ почему-то решил, что я иксперд по трейдингу, и пишет всякое разное. Один из присланных вопросов звучал примерно так:
Я новичок, хочу уйти от дяди, помогите сделать рабочую ТС, для начала хватит Шарпа 1, доходности 15-20% годовых с просадкой не более 10%.

Я, признаться, растерялся, что ответить — для специалиста это звучит примерно так: научите, плиз, по-быстрому рисовать, для начала сойдет как Сальвадор Дали, а дальше я уж как-нибудь сам.

[Вру, на самом деле я не растерялся и ответил:
Если ретурн 15-20% и шарп 1, то и волатильность будет 15-20%. А с волатильностью 15-20% надо ожидать просадки 30-40%, а никак не 10%. То есть вы разберитесь, чего вы хотите. Если доходности 20% — готовьтесь к просадке 40% с шарпом-то 1. Если просадки 10% — значит, доходность ожидаемая должна быть 5%, ну пусть 10% от силы. А если вам и то и то — то шарпа надо с такими запросами в районе 3. А такой шарп есть только у ХФТ либо у пары-тройки больших хорошо диверсифицированных фондов (на всей планете).
]

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

Как заработать (не)много денег на цветмете (с бэктестами!)

Как заработать (не)много денег на цветмете (с бэктестами!)
Итак, сегодня будем учиться рубать бабло лопатой на фьючерсных контрактах МосБиржи на цветные металлы. Для анализа скачаем с сайта «Финама» котировки фьючерсов, например, на алюминий (ALMN):
Как заработать (не)много денег на цветмете (с бэктестами!)

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

Прилипала для Quik


Всем привет. В своих прошлых постах я писал, что увлекся анализом обезличенных сделок.
Вот что описывал:
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 (



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

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