Избранное трейдера Камиль
Выложил свою экспериментальную программку OptimalF, может кому пригодится. Простенькая, но позволяет сделать полезные выводы для реальной торговли:
1. Важны не вероятности прибыли/убытка, а их матожидание.
2. Торговать с нулевым (а тем более с отрицательным) матожиданием — нельзя.
3. При торговле с положительным матожиданием — лучше не превышать оптимальную долю счета.
Выводы, наверное, и так очевидные. Просто в программе можно визуально все это увидеть.
Описание и сама программа — здесь.
У меня идет все в жизни гладко
И аварий не было пока.Мне знакома каждая палатка,
Где нальют мне кружечку пивка.(Владимир Гуляев, Х/ф «Весна на Заречной улице», 1956-й год)
Начинаем обходиться на бирже без аварий!
В предыдущей части «Опционов с нуля» я достаточно подробно описал идеологию и технологию выбора опциона или простейшей опционной конструкции (спреда) для покупки.
https://smart-lab.ru/blog/429246.php
Теперь попробуем открыть опционную позицию, используя наши предыдущие рассуждения и наш накопленный опыт.
Как обычно, небольшое лирическое отступление…
В мои золотые-молодые годы, когда я был студентом факультета «Т» (Теоретической и экспериментальной физики) МИФИ, лекции по теоретической физике нам читал некий Черепушкин, как мы его называли промеж себя. Всего Ландау (многотомник по теоретической физике) отчитал.
Settings= { Name = "Piton", N = 100, legend = "price2", line = { { Name = "Sint", Color = RGB(0, 132, 0), Type = TYPE_LINE, Width = 1 } } } function Init() return 1 end Candles = {}; function OnCalculate(index) local numCandles = getNumCandles(Settings.legend); if index <= Settings.N or numCandles <= Settings.N then return nil; end Candles, n, _ = getCandlesByIndex(Settings.legend, 0, index - Settings.N, Settings.N); if n ~= Settings.N then return nil; end -- Предварительный расчет sum1, sum2, sum3 = advancePaynemt(index); -- расчет коэффициента корреляции Пирсона r = sum3/math.sqrt(sum1*sum2); return r; end -- Предварительный расчет ---------------------------------------- function advancePaynemt(index) local sum1 = 0; local sum2 = 0; local sum3 = 0; local j = 0; -- Вычислить среднее арифметическое for i=index - Settings.N + 1, index, 1 do sum1 = sum1 + C(i); sum2 = sum2 + Candles[j].close; j = j + 1; end aver1 = sum1/Settings.N; aver2 = sum2/Settings.N; -- Вычислить сумму квадратов отклонений sum1 = 0; sum2 = 0; j = 0; for i=index - Settings.N+1, index, 1 do sum1 = sum1 + math.pow(C(i) - aver1, 2); sum2 = sum2 + math.pow(Candles[j].close - aver2, 2); j = j + 1; end -- Вычислить сумму произведений разности j=0; for i=index - Settings.N+1, index, 1 do sum3 = sum3 + (aver1 - C(i))*(aver2 - Candles[j].close); j = j + 1; end return sum1, sum2, sum3; endКак запустить и настроить:
Наконец-то, меня выпустили из бана. Ну тут уж я сам оказался дурён и нелюбомудрен. В общем, сам виноват…
Это я к тому, что выкладываю следующую часть с опозданием. Прошу меня за это простить.
Итак, мы решили спекульнуть РИшечкой, чтобы выиграть денюшек на хлебушек.
Лирическое отступление. Да, я не описАлся, ещё мой любимый Альберт Айнстан говорил, что «Все события в природе носят вероятностный характер». Поэтому биржевая торговля – это Игра, Игра и ещё раз Игра! Не работа, не бизнес, а именно ИГРА! С вероятностными исходами.
Ничего плохого или предосудительного в этом не вижу. Шахматы, например, это тоже тяжелая, кропотливая, но игра. В которой, чтобы чего добиться, нужно много и упорно учиться и тренироваться. Но учиться – Игре. И играть, играть, играть…
Или шпионы-разведчики-контразведчики, которые ведут радиоигру и пускают дезу. Тоже игра.