Избранное трейдера KSN
Os.Engine очень полезен для скальперов. В базовом функционале привода есть стакан быстрого ввода с горизонтальными объёмами, АвтоСтоп, АвтоПрофит, двухуровневый встроенный риск-менеджер, алерты (отложенные заявки привязанные к линиям и каналам), возможность визуализировать поток сделок в виде объёмных фигур.
Всё абсолютно бесплатно! Поговорим об этом!
Первое что нужно сделать, чтобы включить Os.Trader в режиме привода, это подключить соответствующую вкладку, которая называется Engine.
Как подключиться к Квик и создавать вкладки смотрим здесь: http://o-s-a.net/forum/threads/51
Вкладка Engine идёт первая (не перепутайте с огромным количеством бесплатных роботов, которые ниже):
Несколько лет, команда профессиональных программистов трудилась над созданием универсального МТС билдера, который бы смог удовлетворить потребности самого широкого круга пользователей. От создания неспешных роботов на индикаторах, до сложнейших межбиржевых арбитражеров способных в два клика строить свои индексы. И нам это удалось!
В ноябре 2016 года мы приняли решение сделать проект полностью открытым.
Качаем по ссылке:o-s-a.net/os-engine.html
Коротко о том, что там есть:
1. Мощнейший слой создания роботов, похожий на Велс/Тс Лаб. Который можно освоить в кратчайшие сроки.
2. Около 30 встроенных роботов готовых к модернизации и торговли. Тренд, КонтрТренд, Арбитраж.
3. Os.Robot:
a. Индекс Билдер подключенный к роботу. Позволяющий писать арбитражеров в 200 строк.
b. Подключения: Квик, СмартКом, Плаза 2, Interactiv Brokers, Финам(для получения данных)
c. МультиКоннект с одновременным подключением к нескольким источникам.
d. МультиИнструментные стратегии с одновременным доступом из робота к множеству инструментов и индексов.
Несколько раз уже натыкался на статьи на данном ресурсе о том, как тестируются торговые системы на основе скользящих средних, да и вообще любых индикаторов: люди программы пишут, изощряются в поиске оптимального тестера, котировки подготавливают определённым образом для того, что тестер их смог воспринять…. Ужас одним словом))) Решил внести свои три рубля в эту копилку...
Сам я тоже ещё очень давно столкнулся например с удивительным для меня тогда фактом того, что одни и те же параметры скользяшек например на евродолларе и фунте дают совершенно разные торговые результаты при тестировании. Я брал дневной график обоих инструментов и по логике вещей брал скользяшки с периодами 20, 40 и 65. 20, потому что 20 рабочих дней в месяце в среднем, 40 за два месяца, ну а 65 квартал. На евробаксе такие параметры работают хорошо. Эквити положительная, мало ложных сигналов, а на фунте это просто ад на земле. Даже при небольших лотах слив происходил бы за полгода. Я тогда чуть ли не бросил торговать, потому что понятия не имел, как подобрать оптимальный параметр для механической системы. Пришёл я тоже к тому, что метод перебора руками ужасен, потому что полжизни ушло бы на то чтобы просто протестить, а торговать когда? Плюс ко всему это всего лишь один инструмент, а движения хорошего на одном инструменте бывает приходится ждать месяцами, поэтому приходится перескакивать и на другие инструменты, а их тестирование это ещё время. Тестировать каждый руками сумасшествие. А для скользяшек желателен фильтрующий осциллятор, который показывал силу тренда, чтобы выходить из сделки пораньше и ему тоже параметры надо бы подобрать…
Каждую неделю я радовал бесплатными скриптами и индикаторами, ииии, конечно, я продолжу это делать и дальше :)
Наиболее популярным скриптом, который меня просили сделать это был автостоп и выход лесенкой, и я решил совместить две эти штуки в одну. Внутри скрипта вы сами выбираете ставить стоп и тейк, или закрытие позиции лесенкой.
Ну и небольшое лирическое отступление. Теперь скрипты и индикаторы, которые я выкладывал в свою группу, будут не только для Quik'а, но также и для MetaTrader.
--http://quik2dde.ru local w32 = require("w32") -- логин и пароль для терминала QUIK_LOGIN = "login" QUIK_PASSW = "parol" 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 hLogin = w32.FindWindowEx(hLoginWnd, 0, "", "") local nPassw = w32.FindWindowEx(hLoginWnd, hLogin, "", "") local nBtnOk = w32.FindWindowEx(hLoginWnd, nPassw, "", "") w32.SetWindowText(hLogin, QUIK_LOGIN) w32.SetWindowText(nPassw, QUIK_PASSW) w32.SetFocus(nBtnOk) w32.PostMessage(nBtnOk, w32.BM_CLICK, 0, 0) while not isConnected() do sleep(1000); end; end end end end