Избранное трейдера Vitastic
В первую очередь, следить собираюсь, если рынок пойдет на 1500-1600 по широкому индексу ММВБ, за ГМК Норникель, ВСМПО Ависма, Росагро, Фосагро, Мосбиржа, ЛСР. Кроме того, Газпром, Роснефть, Мечел пр., ФСК, Русал, Ленэнерго пр. присутствуют в моем портфеле в заметных количествах, так что тоже приглядывать буду волей-неволей. Если цены будут существенно ниже текущих – я буду добирать акции этих списков, вероятно.
PORTFOLIO_EX BRENT_RUB; DESCRIPTION Нефть в рублях; CLIENTS_LIST ALL_CLIENTS; FIRMS_LIST ALL_FIRMS; PROGRAM ' =========Пользовательские настройки============= INSTRUMENT_BRENT="BRK7" ' код инструмента BRENT INSTRUMENT_USDRUB="USD000UTSTOM" ' код инструмента USDRUB_TOM CLASSCODE_FUT="SPBFUT" ' код группы CLASSCODE_ETC="CETS" ' код группы PriceBrent = 0 + GET_PARAM(CLASSCODE_FUT,INSTRUMENT_BRENT, "OFFER") PriceUSDRUB = 0 + GET_PARAM(CLASSCODE_ETC,INSTRUMENT_USDRUB, "OFFER") BRENT_RUB=PriceBrent*PriceUSDRUB ' ===============СЕРВЕРНЫЕ ДАТА И ВРЕМЯ=============== SERVERDATE=GET_INFO_PARAM("TRADEDATE") ' дата сервера в формате DD.MM.YYYY SERVERTIME=GET_INFO_PARAM("SERVERTIME") ' время сервера в формате HH:MM:SS DATETIME(SERVERDATE,SERVERTIME) ' вызов функции даты-времени ' ===============ДАННЫЕ В ТАБЛИЦУ=============== OUTPUT_BRENT=CREATE_MAP() OUTPUT_BRENT=SET_VALUE(OUTPUT_BRENT,"BRENT_RUB" , BRENT_RUB) OUTPUT_BRENT=SET_VALUE(OUTPUT_BRENT,"SERVERTIME" , SERVERTIME) OUTPUT_BRENT=SET_VALUE(OUTPUT_BRENT,"SERVERDATE" , SERVERDATE) OUTPUT_BRENT=SET_VALUE(OUTPUT_BRENT,"INSTRUMENT" , INSTRUMENT_BRENT) DELETE_ALL_ITEMS() ADD_ITEM(1,OUTPUT_BRENT) ' ===============ФУНКЦИИ=============== ' ФУНКЦИЯ СЕРВЕРНЫХ ДАТЫ И ВРЕМЕНИ FUNC DATETIME(FSERVERDATE,FSERVERTIME) CURYEAR=SUBSTR(FSERVERDATE,6,4) ' текущий год в текстовом формате CURMONTH=SUBSTR(FSERVERDATE,3,2) ' текущий месяц в текстовом формате CURDAY=SUBSTR(FSERVERDATE,0,2) ' текущий день в текстовом формате CURDATE=CURYEAR & CURMONTH & CURDAY ' дата в текстовом формате CURHOUR=SUBSTR(FSERVERTIME,0,2) ' текущие часы в текстовом формате CURMIN=SUBSTR(FSERVERTIME,3,2) ' текущие минуты в текстовом формате CURSEC=SUBSTR(FSERVERTIME,6,2) ' текущие секунды в текстовом формате CURTIME=CURHOUR & CURMIN & CURSEC ' время в текстовом формате END FUNC END_PROGRAM PARAMETER SERVERDATE; PARAMETER_TITLE Дата; PARAMETER_DESCRIPTION Дата; PARAMETER_TYPE STRING(10); END PARAMETER SERVERTIME; PARAMETER_TITLE Время; PARAMETER_DESCRIPTION Время; PARAMETER_TYPE STRING(10); END PARAMETER BRENT_RUB; PARAMETER_TITLE Нефть (руб.); PARAMETER_DESCRIPTION Нефть (руб.); PARAMETER_TYPE STRING(10); END END_PORTFOLIO_EXссылка на скрипт
Жизненные двустишья (пожалуй надо выучить)
Не надо делать мне как лучше,
оставьте мне как хорошо
*
я не хотела вас обидеть,
случайно просто повезло
*
поскольку времени немного,
я вкратце матом объясню
*
башка сегодня отключилась,
не вся, конечно, — есть могу
*
следить стараюсь за фигурой,
чуть отвлекусь — она жуёт
*
шаман за скверную погоду
недавно в бубен получил
*
всё вроде с виду в шоколаде,
но если внюхаться — то нет
*
обидеть Таню может каждый,
не каждый может убежать
*
ищу приличную работу,
но чтоб не связана с трудом
*
мои намеренья прекрасны,
пойдёмте, тут недалеко
*
я за тебя переживаю —
вдруг у тебя всё хорошо
*
держи вот этот подорожник —
щас врежу, сразу приложи
*
я понимаю что вам нечем,
но всё ж попробуйте понять
*
о, приключеньями запахло,
спускаю [***] с поводка
*
мы были б идеальной парой,
конечно, если бы не ты
*
как говорится, всё проходит,
но может кое что застрять
*
кого хочу я осчастливить,
тому уже спасенья нет
*
а ты готовить-то умеешь?
— я вкусно режу колбасу
*
звони почаще — мне приятно
на твой «пропущенный» смотреть
*
зачем учить нас, как работать,
вы научитесь, как платить
*
характер у меня тяжёлый,
всё потому, что золотой
*
чтоб дело мастера боялось,
он знает много страшных слов
*
вы мне хотели жизнь испортить?
спасибо, справилась сама
*
её сбил конь средь изб горящих,
она нерусскою была
*
когда все крысы убежали,
корабль перестал тонуть
*
дела идут пока отлично,
поскольку к ним не приступал
*
работаю довольно редко,
а недовольно каждый день
*
была такою страшной сказка,
что дети вышли покурить
*
когда на планы денег нету,
они становятся мечтой
*
женат два раза неудачно —
одна ушла, вторая – нет
*
есть всё же разум во вселенной,
раз не выходит на контакт
*
уж вроде ноги на исходе,
а юбка всё не началась
*
я попросил бы вас остаться,
но вы ж останетесь, боюсь
*
для женщин нет такой проблемы,
которой им бы не создать
*
Олегу не везёт настолько,
что даже лифт идёт в депо
*
меня запомните весёлым,
а завтра я начну ремонт
*
зевну, укроюсь с головою,
будильник заведу на март
*
мы называем это жизнью,
а это просто список дел
*
всё то, что нас не убивает,
богаче делает врачей
*
и жили счастливо и долго...
он долго, счастливо она
*
я не туплю, а экономно
расходую потенциал
*
мне психиатр сказал: присядьте,
щас успокоюсь и начнём
*
в народ ходили депутаты
лишь только по большой нужде
*
сержант почти поймал бандита,
но тот по званью выше был
*
в постели ты великолепен,
все две минуты просто бог
*
пришла ко мне сестра таланта,
но не достала до звонка
*
я ненавижу власть и деньги,
когда они в чужих руках
*
Олег весь день крутил баранку,
потом не выдержал и съел… ok.ru/video/271020656072
Лениво бродив по западному интернету, нашел интересную стратегию, которая своими корнями уходит к некоему Larry Connors. Стратегия построена на простом RSI с периодом 2.
Суть ее в следующем:
покупаем индексный ETF, когда значение меньше 15 на закрытии дня (да, это можно сделать без проблем и проскальзываний на всех ликвидных ETF) и продаем, когда клоуз текущего дня выше хая предыдущего (можете придумать свои выходы, стратегия не очень-то чувствительна к выходам).
В общем MR в чистом виде. И в принципе это должно работать на большинстве ETF развитых рынков.
Тестил на Multicharts.Net, код ниже.
using System; using System.Drawing; using System.Linq; using PowerLanguage.Function; using ATCenterProxy.interop; namespace PowerLanguage.Strategy { public class rsi_2_spy : SignalObject { public rsi_2_spy(object _ctx):base(_ctx){} private IOrderMarket buy_order; private IOrderMarket sell_order; private RSI m_RSI; private VariableSeries<Double> m_myrsi; private ISeries<double> Price { get; set; } protected override void Create() { // create variable objects, function objects, order objects etc. buy_order = OrderCreator.MarketThisBar(new SOrderParameters(Contracts.Default, EOrderAction.Buy)); sell_order = OrderCreator.MarketThisBar(new SOrderParameters(Contracts.Default, EOrderAction.Sell)); m_RSI = new RSI(this); m_myrsi = new VariableSeries<Double>(this); } protected override void StartCalc() { // assign inputs Price = Bars.Close; m_RSI.price = Price; m_RSI.length = 2; } protected override void CalcBar(){ // strategy logic m_myrsi.Value = m_RSI[0]; if (Bars.Close[0]>Bars.High[1]){ sell_order.Send(); return; } if (m_RSI[0]<15){ buy_order.Send(); } } } }
Индикатор ATR (Average True Range) показывает среднюю величину изменения цены внутри дня за указанный период. Отлично подходит для выбора уровней стопов. Также индикатор показывает рост волатильности в активе, когда сохраняет высокие значения.
Работаем на Quantopian (см. сюда), код пишем на Python. Проверяем стратегии: