Избранное трейдера Petr S
Узнал, что продается робот на Lua, «Автологин терминала QUIK».
Продается то, что есть в открытом виде на quik2dde.ru
Выкладываю тут:
-- quik_login.lua -- Автологин терминала QUIK -- © http://qui2dde.ru/ -- Версия: 2.0 -- для Quik от версии 7.11.1.5 local w32 = require("w32") -- логин и пароль для терминала QUIK_LOGIN = "Uxxxxxxx" QUIK_PASSW = "yyyyy" function FindLoginWindow() hLoginWnd = w32.FindWindow("", "Идентификация пользователя") if hLoginWnd == 0 then hLoginWnd = w32.FindWindow("", "User identification") end return hLoginWnd end timeout = 1000 -- таймаут между попытками поиска окна логина is_run = true function OnStop() timeout = 1 is_run = false end function main() while is_run do sleep(timeout) if isConnected() == 0 then local hLoginWnd = FindLoginWindow() if hLoginWnd ~= 0 then local n1 = w32.FindWindowEx(hLoginWnd, 0, "", "") local n2 = w32.FindWindowEx(hLoginWnd, n1, "", "") local n3 = w32.FindWindowEx(hLoginWnd, n2, "", "") local n4 = w32.FindWindowEx(hLoginWnd, n3, "", "") w32.SetWindowText(n2, QUIK_LOGIN) w32.SetWindowText(n3, QUIK_PASSW) w32.SetFocus(n4) w32.PostMessage(n4, w32.BM_CLICK, 0, 0) end end end endБлагодарности, как понимаю, следует адресовать swerg
Накопление: происходит после падения цен. Процесс приобретения покупателями контроля со стороны продавцов, что приводит к разметке.
Подъем: бычья фаза жизни акции определяется более высокими максимумами и более высокими минимумами. Это то место, где вы хотите получить долго на прорывы и после краткосрочных откатов.
Распространение: происходит после продолжительного роста цен. Продавцы получают контроль над ценами, что приводит к снижению.
Упадок: Медвежья фаза жизни акции.
Это год, когда центральные банки переобуются !
Надеюсь, что это год будет хорошим для вас, и я даже думаю что он будет самым лучшим. Сейчас самое время, чтобы сделать прогноз на будущие 12 месяцев. Мой прогноз будет самым реальным и очевидным в 2018 году. Слишком много чего произойдет в 2018 году и будущие тренды ожидаемы.
Сейчас конечно идет бум связанный с крипто валютами и весь smart-lab просто напичкан постами о идеях развития этого инструмента, но я начну с невероятно скучного класса актива: US Treasuries, это класс активов, в котором я наиболее оптимистичен, или скажу так: это место где я вижу хорошие шансы заработать деньги в этом году, и позвольте вам донести мою идею.
Первый график – это 30 и 10 летние казначейские ставки США
QE – программа смягчения / QT – программа ужесточения.
Я постоянно говорил, что QE постоянно увеличивала доходность на облигациях, а не снижала, как обычно полагали. Таким образом, QT (программа ужесточения) должна снижать, а не повышать доходность.
Прочитал книжку Think Python: How to Think Like a Computer Scientist — очень понравилась: вместо сухого изложения с самого начала рассматриваются маленькие программы, которые в последующих главах дорабатываются с учетом более продвинутых концепций языка. Почти в каждой главе даются подходы, которые применяются при разработке и отладке больших по объёму программ. Даны основы data science — быстродействие различных структур данных, как организована их работа под капотом и т.д.
До прочтения написал программу строк на 200 про отслеживание диеты, которая представляла мало понятный кусок кода. После прочтения книги переписал в 100 строк.
Автор понравился, поэтому на очереди Think Complexity: Complexity Science and Computational Modeling. По планам к январю хочу поднабраться знаний и приступить к автоматизации торговой системы на Python.
В одной из своих лекций Кирилл Ильинский рассказывал про экспорт волатильности. В свою бытность он работал толи в ГолдманСаксе, толи в банке каком то (в Альпари точно не работал) и любил от туда Родину. И вот он предложил руководству покупать волатильность в России и продавать ее в штатах. Дело в том, что дески в штатах работают немного на опережение и по всякому поводу задирают волатильность. А дески в России, тогда под управлением Калинковича, ведут себя более взвешено и определяют волатильность по факту. Я не знаю, почему тогда не срослась схема. Возможно, не хватало ликвидности. И если бы даже Каленкович продал свою машину, то этих объемов не хватило бы, что бы заинтересовать Голдмана.
Тем не менее, схема не могла пройти мимо искателей легкой наживы. Так Борис Журавлев опубликовал и даже снял видео про данную стратегию http://www.optionlaboratory.ru/load/video_materialy/opcionnyj_arbitrazh_moskva_chikago/1-1-0-37
Даже на сегодня она имеет право на жизнь. Действительно волатильность RSX выше волатильности РТС. И мы можем продавать ее в штатах, а покупать в России. Таким образом осуществлять экспорт волатильности, причем мимо таможни, что очень радует. А еще мы покупаем за рубли, а продаем за валюту. Любой Газпром об этом мог только мечтать.
Привет всем! В предыдущих статьях я описывал свой тестер, разработанный на C#, и, несколько раз подчёркивал, что переключение между двумя режимами (тестирование/торговля) может быть простым. Код стратегий не должен зависеть от того, кто поставщик маркет-даты и куда уходят заявки – в тестовую базу или на сервер брокера. Конечно, это лишь один из подходов, и кому-то он покажется странным, но, главное его достоинство заключается в том, что тестирование приближается к реальности, что даёт более достоверные результаты. Вопрос в следующем: как, имея один и тот же код, получать разные по функциональности программы? Один из вариантов – использовать инверсию управления и внедрение зависимостей! Об этом сегодня и пойдёт речь.
Приведу пример нехорошего (иногда, говорят – с запашком) кода:
class Strategy { public Strategy() { var mgr = new TestOrderManadger(); mgr.PlaceOrder(...); } }
Здесь плохо то, что класс Strategy зависит от класса TestOrderManadger. В такой реализации нельзя начать использовать какой-нибудь другой менеджер заявок (AnotherOrderManadger) без перекомпиляции библиотеки с классом Strategy. Тем более тут нарушается принцип единства ответственности – класс Strategy, помимо своей прямой обязанности, также, создаёт внутри себя зависимости. Чтобы исправить ситуацию, можно использовать интерфейсы:
interface IOrderMandger { void PlaceOrder(); } class TestOrderManadger : IOrderMandger { public void PlaceOrder(){} } class Strategy { public Strategy(IOrderMandger orderMandger) { var mgr = orderMandger; mgr.PlaceOrder(...); } }