Избранное трейдера Чужой

по

Еще раз о заработке на случайном блуждании - коллекция экспонатов

Доброй ночи, коллеги!

Ну вот и я стал нормальным человеком попал в ЧС к Константину «старый дед» Смирнову.
А все после вполне себе безобидного комментария, что если (его) метода показывает заработок на случайном блуждании, то ее надобно отправить в мусор. Комментарий был удален, но не сразу (дед думал), а я немедленно попал в ЧС.

С вопросом о возможности заработка на случайном блуждании мы разобрались в цикле из 2-х статей довольно давно. Напомню:
— на арифметическом случайном блуждании заработать невозможно
— на геометрическом случайном блуждании оптимальная стратегия имеет имеет линейно растующую эквити (что тоже не айс)

И вот пришла мне в голову идея — составить (с вашей помощью, коллеги) коллекцию методов, которые зарабатывают на случайном блуждании, чтобы никогда не использовать их на рынке. Т.к. если что-то зарабатывает на СБ, то оно либо написано с ошибками (алготорговля), либо применено неправильно (ручная торговля).

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

Мой первый робот(ещё в разработке)

Это мой первый робот.
Суть стратегии заключается в мониторинге текущей цены по выбранному инструменту и при значительном изменении цены в противоположном направлении, при подъёме или падении осуществляется ввод заявки на покупку или продажу соответственно.
Код ещё «сырой». Кому не сложно прошу выявить ошибки и предложить советы, рекомендации по оптимизации кода.
Отправка транзакций заменена на сообщения для отладки алгоритма без последствий для счёта.
На данном этапе условия для покупки и продажи не корректны, так как покупает и продаёт с не всегда указанным local Procent, уже голову себе сломал как это исправить.
Интересуют следующие вопросы:
1)Как сделать, чтобы не покупал пока есть открытая позиция?
2)Если возможно, как рассчитать издержки комиссий, чтобы при вычитании их не быть в минусе?
3)Правильная ли структура кода?

CLASSCODE="TQBR"

SECCODE="YNDX"

QUANTITY="1"



 tB = {
            ["CLASSCODE"]=CLASSCODE,
            ["SECCODE"]=SECCODE,
            ["ACTION"]="NEW_ORDER",
            ["ACCOUNT"]="СЧЕТ",
            ["CLIENT_CODE"]="КОД КЛИЕНТА",
            ["TYPE"]="M",
            ["OPERATION"]="B",
            ["QUANTITY"]=QUANTITY,
            ["PRICE"]="0",
            ["TRANS_ID"]="1"
      }

tS = {
            ["CLASSCODE"]=CLASSCODE,
            ["SECCODE"]=SECCODE,
            ["ACTION"]="NEW_ORDER",
            ["ACCOUNT"]="СЧЕТ",
            ["CLIENT_CODE"]="КОД КЛИЕНТА",
            ["TYPE"]="M",
            ["OPERATION"]="S",
            ["QUANTITY"]=QUANTITY,
            ["PRICE"]="0",
            ["TRANS_ID"]="1"
	  }



run=true
function main()

local Price="0"
local Procent=0.005

	 while run do
	         --Получение текущей цены по инструменту
		 local lastPriceT = getParamEx(CLASSCODE, SECCODE, "LAST");--Обращение к ячейке таблицы с ценой
                 local lastPrice = tonumber(lastPriceT.param_value);--Значение текущей цены
		 --Текущая цена получена в переменной - "lastPrice"
		 ----------------------------------------------------
		 --Преобразование Price в строчное значение
		 Price=tonumber(Price)
		 if Price==0 then Price=lastPrice                            --Если Price=0, то к Price присваивается lastPrice
		 end
		 Proc=(lastPrice-Price)/Price*100                            --Процент изменения в переменной Proc
		 ----------------------------------------------------
		 --Покупка
		 if Price < lastPrice then Price = lastPrice                 --Если Price больше lastPrice то, к Price присваивается lastPrice
			 elseif Proc>-Procent then message("Произведена покупка по цене="..tostring(lastPrice))   --sendTransaction(tB)-- --Иначе, если Proc>-0.005 то отправляется заявка на покупку
		 --Покупка произведена
		 ----------------------------------------------------
		 end
		 --Продажа
		 if Price > lastPrice then Price = lastPrice
		         elseif Proc>Procent then message("Произведена продажа по цене="..tostring(lastPrice))
		 --Продажа произведена
		 end
     sleep(5000)                                             --Прерывание скрипта на 5 секунд
	 end
end
function OnStop()
run=false
end

Однако.....А вы знали, что уникальных комбинаций на шахматной доске больше чем атомов в видимой вселенной ?

    • 19 мая 2020, 00:15
    • |
    • Boris
  • Еще
 Материал из Википедии — свободной энциклопедииПерейти к навигации Перейти к поиску


Число́ Ше́ннона
 — оценочное минимальное количество неповторяющихся шахматных партий, вычисленное в 1950 году американским математиком Клодом Шенноном. Составляет приблизительно 10120. Вычисление описано в работе «Программирование компьютера для игры в шахматы» (англ. «Programming a Computer for Playing Chess»), опубликованной в марте 1950 года в журнале Philosophical Magazine и ставшей одним из фундаментальных трудов в развитии



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

Поделитесь роботом на Луа....плиз...

Какое-то время были посты от благодетелей, которые предлагали выкладывать скрипты для создания роботов.

Так как не все далеко тут программисты, то прошу добрых людей выложить полный скрипт робота на луа (который можно сразу загрузить, и он будет работать) с какой-нибудь простой стратегией вроде пересечения средних.
Комментарии к скрипту бы приветствовались.

Думаю, что многие бы сказали спасибо...


  • обсудить на форуме:
  • Quik Lua

Об опционах без зауми.

    • 16 мая 2020, 16:40
    • |
    • 3Qu
  • Еще

Для начала, все таки, немного зауми.

1. Об опционах рекомендую почитать книгу — А.Н.Балабушкин Опционы и фьючерсы. Кратко, сжато, все по делу и без воды. Много хорошей математики. В общем, математику можно пропустить, нужно уловить только общий смысл — о чем эта математика.
2. На сайте eLearning есть 6-7 бесплатных лекций Твардовского — просто, ясно, доступно. Он хорошо и интересно излагает. Смотрел лет 10 назад, 2 раза. Очень рекомендую.

Теперь непосредственно об опционных стратегиях.
Простейшей стратегией является — покупка опциона. Если цена базового актива (БА) растет или будет расти — покупаем опцион CALL вне денег, в нескольких страйках (лучше не более 4-5) от центрального. Если БА падает, аналогично покупаем опцион PUT. Больше стоимости опциона при его покупке вы никак не проиграете (хотя, теперь уж и не знаю )). ГО опциона равно его стоимости, и об этом можно не беспокоится.

Теперь более сложная стратегия для совсем ленивых. Если вы считаете, что актив будет хорошо расти или падать, на центральном страйке покупаем CALL и PUT — такая позиция называется Стрэддл. Теперь, куда бы не пошла цена БА, мы будем в выигрыше. Однако, если цена за пару дней никуда существенно не сдвинется, мы проиграем из за уменьшения внутренней стоимости опциона. Это называется временной распад.
Позиция Стрэддл хороша тем, что думать вообще ни о чем не надо, однако, она, пожалуй, очень, даже слишком, дорогая, и, далеко не самая хорошая за такие-то деньги.) Вообще, начинающим в позиции типа Стрэддлы лучше не лезть.

Пожалуй наилучшей позицией в опционах является Стрэнгл. Суть его в том, что мы покупаем опцион CALL вне денег в нескольких страйках от центрального (тоже желательно не более 4-5), и примерно симметрично ему покупаем опцион PUT. Теперь, как и в случае со Стрэддлом, куда бы цена не пошла, мы получаем прибыль. Такая позиция гораздо дешевле Стреддла, и у нее есть масса других преимуществ, но это уже ближе к зауми.
Ну, и недостатки у Стрэнгла аналогичны Стрэддлу — если цена 2-3 дней никуда существенно не пойдет, мы опять получим убытки от временного распада.
Кроме того, Стрэнгл сложнее конструировать, чем Стрэддл, для которого вообще думать не надо.
В опционах есть такой параметр — Дельта, это скорость изменения цены опциона от изменения цена БА
       Дельта = (Изменение стоимости опциона)/(Изменение стоимости БА)
Т.е., на сколько рублей изменится стоимость опциона, при изменении стоимости БА на 1 рубль. От страйка к страйку эта скорость меняется, и при приближении нашего опциона к центральному страйку и переходе опциона в деньги она будет возрастать.
Дельта транслируется в Quik, и ее можно добавить в таблицу опционов.
При выборе Стрэнгла желательно, чтобы параметры Дельта для опционов CALL и PUT были равны или близки друг к другу. Можно купить несколько опционов CALL и PUT в разных страйках, чтобы суммы их Дельт были примерно равны для CALL и PUT. Если же вы считаете, что актив скорее пойдет, например вверх, то Дельту для CALL можно выбрать и побольше, чем для PUT. И наоборот, в случае уменьшения стоимости БА.
Графически позиция Стрэнгл выглядит так:



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

Опыт доработки QLua-скриптов для QUIK 8.5.2

    • 15 мая 2020, 16:29
    • |
    • _sk_
  • Еще
В новой версии терминала QUIK 8.5.2 произведён апгрейд языка Lua для написания торговых скриптов с версии 5.1 до версии 5.3. Это нужно для того, чтобы корректно обрабатывать 19-значные номера заявок и сделок на срочном рынке МосБиржи. Типа number в Lua 5.1 не подходит: там все числа хранятся как double, соответственно целые числа до 2^53 = 9 007 199 254 740 992 записываются без потери точности, а 19-значные номера заявок и сделок будут больше этой границы.

Версия Lua 5.3 обратно несовместима с Lua 5.1. Я почти не использовал внешние библиотеки и для меня было два важных изменения: отказ от module (это было сделано в версии 5.2) и введение целочисленной арифметики (версия 5.3).

Для избавления от использования module пришлось переработать много кода, хотя изменения были несложные. Приведу пример. Раньше был такой код Arrays.lua для работы с массивами:

--
-- Выполнение действий с массивами.
--

local pairs = pairs
local type = type

module(...)

--- Создать копию массива (таблицы)
-- @return копию массива (таблицы)
function copy(array)
    local copy_array = {}
    if type(array) ~= "table" then
        return array
    end
    for k, v in pairs(array) do
        if type(v) == "table" then
            copy_array[k] = copy(v)
        else
            copy_array[k] = v
        end
    end
    return copy_array
end

--- Узнать, начинается ли индексация в массиве с нуля или с единицы.
-- @return 0 или 1
function base(array)
    if array[0] ~= nil then
        return 0
    else
        return 1
    end
end

--- Вычислить число элементов в массиве.
-- @return число элементов в массиве
function size(array)
    local n = 0
    for _, _ in pairs(array) do
        n = n + 1
    end
    return n
end

--- Проверить пустой или нет массив.
-- @return true/false
function isEmpty(array)
    for _, _ in pairs(array) do
        return false
    end
    return true
end

--- Получить первый индекс массива, где ничего не записано. Поиск начинается с 1.
-- @return первый индекс массива, где ничего не записано
function firstEmptyIndex(array)
    local i = 1
    while array[i] ~= nil do
        i = i + 1
    end
    return i
end


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

Что такое ЗВР. Коротко

Ни к каким долгам они отношения не имеют, ибо очень глупо взять в долг, и эту же сумму держать в резервах.

ЗВР — это обеспечение местной валюты, поскольку, если исчезнет возможность обменять её на «старшие» (доллар, евро, йена), доверия к ней не будет и люди перестанут ей пользоваться. Вот почему отношение М2 к ЗВР — важнейший параметр для курса.

Альфадирект налоги развод

    • 13 мая 2020, 09:42
    • |
    • PK
  • Еще
Пост гнева.

Альфадирект удержал налоги за 2020!!! по положительным сделкам на фонде, а отрицательные на ФОРТС не учел. Раздевают средь бела дня.

Предистория: Торговал ФОРТС с убытком в марте (немного потерял на Ri фучах тк не ожидал такого веселья), все вывел на ММВБ и купил старых добрых папир и на отскоке закрыл дыру.

Проблема: вывел в апреле со счета деньги на карманнаые расходы и недосчитался 13% налогов за 2020. Эти деньги растворились в системе)

Позвонил в альфадирект — ответ вежливого менеджера по телефонным звонкам — «налоги  по положительному результату ММВБ за 2020 сняли сейчас в полном обьеме, а вот убытки ФОРТС учтут в налоговом периоде 2021». Я немного прифигел. И пофиг им на то что налоговый период за 2020 будет только в 2021.

Мне видется здесь развод хомяков просто в особо крупных размерах.

Кто сталкивался с таким же? что за фигня такая? может коллективный иск сделаем?



Игра про QE. Бесплатно без регистрации)))

В 2016 году на фестивале FreedomFest в Лас-Вегасе компания BullionStar впервые запустила игру QE Defender.
Поскольку центральные банки идут на обесценивание денег всеми средствами количественного смягчения и печатания денег, игра защитника QE становится более актуальной, чем когда-либо. Обновлены персонажи игры, в которую можно играть бесплатно.

Без регистрации запускаете по ссылке
www.bullionstar.com/games/qe-defender/index.html
Игра про QE. Бесплатно без регистрации)))
Игра про QE. Бесплатно без регистрации)))

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

Кино 2019

1. Чернобыль (Chernobyl) (мини-сериал)
2. 1917
3. Джокер (Joker)
4. Платформа (El hoyo)
5. Кролик Джоджо (Jojo Rabbit)
6. Джентльмены (The Gentlemen)
7. Солнцестояние (Midsommar)
8. Мы (Us)
9. Достать ножи (Knives Out)
10. Ford против Ferrari (Ford v Ferrari)
11. Неогранённые драгоценности (Uncut Gems)
12. Прощание (Farewell)
13. Ирландец (The Irishman)
14. Прачечная (The Laundromat)
15. Скандал (Bombshell)
16. Маленькие женщины (Little Women) (фильм 2019 года!)
17. Доктор Сон (Doctor Sleep)
18. Клаус (Klaus) (мультфильм)
19. Паразиты (Gisaengchung)
20. Арахисовый сокол (The Peanut Butter Falcon)
21. Аладдин (Aladdin)


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

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