Избранное трейдера kaliostro
Осознав и пережив)), что сопли … , ... ни кому не интересны.
Буду публиковать здесь график «бычьего процента» ММВБ.
Может кому интересно.
график построен на основе данных 47 эмитентов торгующихся на ММВБ.
красная зона — зона перекупленности, синяя — зона перепроданности.
До новых процентов!)
Не особо углубляясь крепко в прошлое, рассмотрим историю нашей «дружбы»за последние полтораста лет.
1856 год. Заключен Айгунский договор, по которому Россия оттяпала у Китая кусок Сибири, границей стала река Амур. 600 тыс км
1860 год. Заключен Пекинский договор, по которому Россия оттяпала у Китая Дальний Восток, Сахалин. 400 тыс км
Всего – около 1 мил. км. Наши историки утверждают, что все было мирно и добровольно. Россия сделала Китаю предложения, а Китай радостно согласился. Почему бы нет? Берите, нам не жалко! Увы, китайские историки утверждают, что договор слабому Китаю навязали силой. Ну, как гораздо позже Брестский мир Ленину.
Вот что по этому поводу писали современники:
«И тайпины, и няньцзюны, действуя весьма победоносно, представляют себе врожденную болезнь. Соседняя с нашими территориями Россия, стремящаяся отгрызть наши земли, как шелковичный червь, фактически наносит нам удар в грудь. Что же касается Англии, то ее целью является установление торговли, чего она добивается крайне жесткими мерами, без учета каких-либо человеческих приличий. Если ее не удержать в рамках, мы не сможем устоять на ногах. Она наносит удар по нашим конечностям. Поэтому мы должны в первую очередь подавить восстание тайпинов и няньцзюней, затем поставить под контроль русских, а потом заняться Англией” © из докладной записки императору от сводного брата князя Гуна
Профиль волатильности. Есть такой зверь и он не может не есть. Что бы его поймать, мы вернемся к нашей стратегии лимитных заявок. Если вы видели гениальный биржевой график (а они все гениальные, потому что простые), то должны были заметить, что там цена ходит не просто вверх вниз, но и еще направо (на лево не ходит). Это должно было натолкнуть вас на мысль, что в торговле и торговой системе должно присутствовать время. Вход в рынок и выход из него должен происходить с учетом того, сколько времени вы там будите. Когда вы интересуетесь свой зарплатой или зарплатой соседа, вам важно как часто такая зарплата платится. В нашей ТС мы смотрим на стодневную свечу. Это значит, что торгуем мы сто дней и рассчитываем свою зарплату за 100 дней. И если с этим ни кто спорить не будет, вернемся к распределению случайностей. Помните, мы брали сто свечей и строили колокол. Но вот проходит 50 дней, мы откидываем 50 свечей и наш колокол становиться уже. И если наша сигма за сто дней была 10% (отклонение от цены БА +-) то через 50 дней (остается еще 50 дней) наша сигма уже 7,5%, а через 99 дней она будет 1%. Допустим, по нашей ТС с лимитками мы определились работать в рамках одной сигмы. Сто дней 10% делим на 100 ордеров, шаг сетки у нас 0,1%. Проходит 50 дней и шаг сетки 0,75%, а на 99 день 0,01%. Но, если ставить отложки через каждые 100 рублей это куда не шло. А вот через каждый рубель, тут уже очко жим жим. Нам такой скальпинг не нужен. Если цена пройдет больше процента в день? Без отката. И как говорилось выше про очко, а оно не железное, его надо укрепить. Например, вставить бронзовую втулку. И естественной бронзовой втулкой является сетка поширше или пошерее. Но тем самым мы расширяем наш колокол распределения и увеличиваем нашу IV. И тут возникает такой эффект, как горизонтальная волатильность.
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Как запустить и настроить: