Избранное трейдера Demen

по

Статья про Срочный Рынок. Прочтите пожалуйста!

Доброго времени суток, коллеги!

К сегодняшнему дню подготовил важный материал, который относится к Срочному Рынку FORTS (далее СР). Данную статью готовил по той причине, что по опыту многие Клиенты не понимают, как торговать на СР, куда смотреть, откуда берутся цифры и т.д. Надеюсь, она развеет Ваши пробелы в знаниях, если таковые имеются. Статья получилась объемной.

Всего в ней не описать, но я постарался отразить самое важное.

Материал подготовлен относительно торговли фьючерсами.

Итак, на СР Вам потребуется две основные таблицы:
Статья про Срочный Рынок. Прочтите пожалуйста!

В ней отображается информация по Вашим денежным средствам на СР, свободные деньги, вариационная маржа и т.д.

Данную таблица открывается (версия quik 7) через “Создать Окно”>”Все типы окон”

Далее открываем таблицу:
Статья про Срочный Рынок. Прочтите пожалуйста!



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

Зачем России нужны золотовалютные резервы

Из года в год не утихают споры о том, зачем России нужны огромные золотовалютные резервы и нужно ли держать деньги за границей. Чтобы разобраться в данном вопросе, для начала стоит привести модельный пример.

К примеру, в 2005 году в России было построено 44 млн. квадратных метров жилья, при средней цене 25 тысяч рублей за метр, что в совокупности дает общий рынок в размере 1,1 трлн. рублей. Позже, в 2007 году, при росте объемов ипотечного кредитования рынок вырос до 3 трлн. рублей, почти в три раза, за счет увеличения спроса. При этом объем строительства вырос только на 40%, до 61 млн. квадратных метров, основной прирост рынка произошел за счет роста цен на недвижимость, которые удвоились всего за два года, достигнув 50 тысяч рублей за метр. 

Если в теории общий спрос вырос бы до 2 трлн. рублей или же до 4 трлн. рублей, то, скорее всего, эти изменения мало бы коснулись объемов строительства, а больше бы отразились на цене, поскольку в экономике относительно легко увеличить совокупный спрос в деньгах, но гораздо тяжелее увеличить фактическое производство, например цемента. Строители тогда просто физически не могли удовлетворить резко выросший спрос на недвижимость. Поэтому рынок отрегулировал текущие процессы простым увеличением цен. При росте рынка до 4 трлн. рублей цена за метр выросла бы до 60 тыс. рублей при том же объеме строительства. Более того, эффект для самой экономики был еще меньше, чем рост объема строительства, поскольку рост объема строительства в значительной мере был достигнут за счет увеличения импорта того же цемента и за счет увеличения количества иностранных рабочих, которые часть заработанных денег вывозят из страны. Поэтому наряду с ростом цен увеличился и отток денег по счету текущих операций. 



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

41 самый полезный инвестиционный пост смартлаба.

41 самый полезный инвестиционный пост смартлаба.

Тимофей запилил пост "Самые полезные посты смартлаба". Поскольку мне интересна только инвестиционная тематика то я сделал подборку самых полезных постов лучших инвестиционных авторов ресурса. В список вошли посты Малышка, Шадрина, Ларисы Морозовой, Горчакова и мои. В рейтинг вошли посты, набравшие не менее 50 добавлений в избранное (например, за последние 7 дней столько набрал лишь один пост на смартлабе). Ну хватит предисловий, ловите мой ответ Чемберлену Тимофею:

1. Александр Здрогов "Начинаю выкладывать курс по фин. анализу". Отличное начало для желающих понимать финансовую отчетность. Без этого инвестором не стать. 146 раз в избранном.
2. Александр Шадрин "Проект Разумный инвестор. Россия — страна возможностей". Огромный пост Шадрина о его фундаментальной системе (на самом деле система Бенджамина Грэма) и результатах ее тестирования. Спойлер: результаты отличные. 136 раз в избранном.

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

Про общеизвестное, или гений экономики

Из комментария в моем предыдущем посте: При Хрущеве то как раз экономика развивалась бешенными темпами, и народ был накормлен.
«Общеизвестный факт», но мы-то  знаем, цену тому, что все знают и необходимости идти против толпы и мнения большинства.
Итак, гений экономики.
Данные Института экономики Академии наук СССР: Период, годы Среднегодовые темпы прироста общественного продукта в %
1950-1953 10,6
1953-1956 11,1
1956-1959 8,9
1959-1962 6,9
1962 6,0
1963 5,0
Целина, кукуруза, денежная реформа 1961 г, Новочеркасск, запрет подсобных хозяйств, передача всего и вся союзным республикам — Госснаба, совнархозов, территорий. Провал пятилетки и ввод семилетки, чтобы спасти лицо. Передача техники колхозам (Сталин в 52м «Эти расходы может взять на себя только государство, ибо оно и только оно в состоянии принять на себя убытки от вывода из строя старых машин и замены их новыми, ибо оно и только оно в состояния терпеть эти убытки в течение 6–8 лет с тем, чтобы по истечении этого срока возместить произведенные расходы. Что значит после всего этого требовать продажи МТС в собственность колхозам? Это значит вогнать в большие убытки и разорить колхозы, подорвать механизацию сельского хозяйства, снизить темпы колхозного производства»).

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

Об упущенных возможностях в трейдинге 1998-2017

    • 05 апреля 2018, 11:53
    • |
    • А. Г.
      Проверенный аккаунт
  • Еще

Оглядываясь в прошлое, зная о примерах больших заработков с даже меньших сумм, чем стартовал ты, невольно задаешься вопросом: «А что было упущено в прошлые годы?»

Сентябрь 1998-2007

Историю своих заработков в эти годы я подробно изложил в мемуарных записках под общим названием «История одного управления»

Невооруженным глазом видно, что «монстрам» того времени – Газпрому и Сбербанку я проиграл по доходности в «одну калитку». А если б еще и плечо взять в этих эмитентах, то легко можно было бы стать и долларовым миллионером с тех самых 2000$, с которыми я пришел на рынок в сентябре 1998-го, не говоря уж о довложениях, возможности для которых у меня были за счет получаемых премий в «хлебные» годы: 1999, 2000 и 2003. Но! Упустил ли я что-то? С одной стороны, упустил тем, что торговал не только Газпромом, но и невнятными РАО ЕЭС и Лукойлом, а Сбером не торговал вовсе сначала из-за низкой ликвидности, а потом из-за дороговизны одной акции (нынешние 1000 акций Сбера равны 1 тогдашней). Но с другой, по тому же соотношению «доходность-просадка» я выиграл даже у Газпрома, не говоря уж о портфеле buy&hold.  Как я мог не упустить доходность? Только беря на себя большие риски и плечи, т. е. терпя более глубокие и долгие просадки с неясными перспективами выхода из них в случае, если растущий  тренд на нашем рынке закончится (кстати, изредка интервьюируемый Верниковым «безымянный трейдер» так и поступил и стал долларовым миллионером именно в те годы с 2002 по 2007, так что это вполне реальная история). Это если говорить о долларовом миллионерстве. Но не миллионы долларов, но в разы больше того, что получилось в реальности, я мог бы получить, торгуя только Газпромом и даже не неся риски, как в плечевом buy&hold. Но что это? Это отказ от диверсификации, это умение выбирать «лидера» (как?) и в конце концов  это повышенный риск ошибки (опять же урок от того же «безымянного трейдера»: удачно уйдя с рынка перед кризисом 2008-го, вернулся он во второй половине 2009-го именно на Газпром по старой привычке, но помучавшись с ним без особого успеха, переключился на Сбербанк и снова успешно). Есть ли у меня какие-то алгоритмы по выбору «лидера»? Увы,  нет. Были попытки найти решение? Конечно были, но устроившего меня не нашлось. А значит об упущенных возможностях в этот период говорить некорректно. Это скорее, сидящий в «подкорке», подход к торговле на рынке: «сохранить и преумножить», где глаголы расставлены по своим приоритетам.

2008-2009

Вот тут даже говорить не о чем. Все сделано грамотно. Покажите мне еще трейдера, сделавшего почти 200% за эти два  года на сотнях миллионов рублей,  почти без использования плечей и шортов? Думаю, таких в России можно пересчитать по пальцам пары рук. Да и материально это лучшие мои годы после 2000-го, досрочно погашен ипотечный кредит на квартиру дочери, оплачена куча строительных и ремонтных работ и создана «подушка безопасности», которая даже при 10% годовых больше годового дохода среднего россиянина. Хотя конечно для покрытия расходов моей семьи надо 20-25%% годовых. В чем проблема? В том, что в последующие годы этих 20-25%% годовых в среднем и не было…

2010- 2011

Почему не было? Да рынок изменился. Простая статистика: возьмем росты на 10%+ за 5-7 дней в 3 самых ликвидных акциях. Сколько их было в среднем в 1999-2009? От 3-х и больше каждый год.  А сколько получаем в 2010-2014? Около 1 в среднем в указанные годы.  А ведь именно эти три акции – большая доля моего портфеля.  А кто я? Да как правильно выразился один из участников форума howtotrade в далеком 2007-м: «Горчаков – ловец кусочно-перпендикулярных трендов». Он только забыл добавить, что растущих. Еще одна грустная статистика для моей торговли: время  контртрендовых участков на дневках тоже выросло по сравнению с 1999-2009. Упущено ли что-то? Да конечно. Чтобы понять происходящее, мне потребовалось два года (с июля 2009 по июль 2011 – именно в июле 2011 на дневках нашего рынка встречается самый длинный  по времени контртрендовый участок за его всю историю с сентября 1995-го).

И еще год мне потребовался на «перестройку». Что собственно она показала? А то, что в РИ можно было в эти годы делать по 20-30%% годовых в лонгах без тех же плечей (т. е. при расчете от номинала, а не ГО). Почему? Да потому что его долларовость увеличивала движения. Но я упорно «бежал» от фьючей, о чем говорил в своем интервью журналу D’. И только первый и последний годовой минус за всю историю моей торговли в 2011-м заставил меня изменить позицию. Как это по-русски: «Пока гром не грянет…». Второй вывод: куча прибыли упущено в шортах, где те же самые движения на 10%+ за 5-7 дней встречались гораздо чаще, чем в 2001-2007 (в 1999-2000 такие были). И в том же 2011 можно было бы сделать 40% на шортах в моих системах. Сделал бы я это? Да даже с сегодняшнего понимания – нет, потому что шорты в акциях я торгую только на одну треть от лонгов, а во фьючерсах на половину. Но 13% в акциях и еще 20% на РИ на шортах-2011 можно было сделать. А если к этому добавить «фильтр пилы» также созданный в первой половине 2012, который убрал большую часть убытка в лонгах акций в 2011-м и увеличил прибыль в лонгах Ри с 12% до 25%, то получим, что уж не меньше 10%+ годовых в 2011-м я получить точно мог (Каленкович считает это «нулем», но для меня это хорошая «прибавка в жалованию» — см. выше). А что в реальности? -16,8% за 2011. А если взять еще и 2010 с его +8.7%, которые легко «превращаются» в 25%+ «по новому». Итого больше 40% прибыли за два года упущено. Кошмар! Вот «цена» консервативности и … «почивания на лаврах» после успешных 2008-июнь 2009 :(  Ведь «первый звонок» прозвучал на росте в июле 2009-го. Но тут сыграл свою роль метод аналогий: в сентябре-декабре 2006 была та же «байда», но в 2008-м все сменилось радикально: надо просто ждать «своего рынка» и терпеть. Сколько? Как оказалось, на фондовом рынке до 2015-го. Немало…

2012-2013

Как я уже написал первая половина 2012-го прошла в «перестройке», ну а потом, если и было что-то упущено, то только из-за решения ограничить просадку 15%, а не 25%, как было до июля 2012-го. Почему? Да очень просто: в момент смены управления старая «парадигма» имела просадку 24,4%, а новая с риском 25% — 7,2%. Проиграть еще 10-15%% без «слома парадигмы» — это нормально для торговли, но ненормально по рискам. Упустил ли я что-то? С точки зрения принципа «сохранить и преумножить» — ничего. Ну такой у нас был в эти годы низковолатильный рынок, ничего не поделаешь. Мы помним истории «успеха» в эти годы, кроме hft на небольших объемах? Нет, тогда еще и инвестиции с дивидендами были не модны. Что делать? Да только менять  профессию или рынок  и я всерьез думал над этим до 3 марта 2014-го, который хоть и дал мне кучу убытка, но в корне изменил мой взгляд на будущую волатильность. Эх, если б я угадал, где она «стрельнет»…

2014

А «стрельнула» она осенью 2014-го в рубле-долларе, но не в ликвидных рублевых акциях. Что удивительно: и в 1998 и в 2008-м волатильность в акциях в среднем была выше волатильности в рубле-долларе, а тут, хоть и выросла, но оказалась значительно ниже того, что давал рубль-доллар. Та система в Си, которую я поставил в торговлю в январе 2015, в 2014-м дала 83% прибыли и она  была самой низкой по доходности в 2014-м, некоторые из моих систем давали и по 200%+. Почему я выбрал ее? Да потому что она лучше всех «прошла» 2012-2013 (те системы, что дали 200%+ в 2014-м, в 2012-2013 «ушли в минус», а зачем мне еще и дополнительный  минус и так в низкодоходные годы?). И, как показал опыт 2016-2017, с этим отбором я оказался прав, если опять же придерживаться принципа «сохранить и преумножить».

2015-2017

Что упущено? Наверное, только то, что на личном счете я не увеличил риски до 25% в просадке 10%+.  Но тому есть объяснение: на счете компании я торговал с рисками 27,5% и имел «виды на премию», которая была бы больше в абсолюте дополнительных 25-30%% на моем счете за три года. Да и упустил ли я, если на одной трети счета под автоследованием Форума в январе 2015-сентябре 2016 заработал гораздо больше, чем эти 20-25%% от оставшихся 2/3. А «геммороя» прибавилось бы. А вот с премией вышел «облом»:

Об упущенных возможностях в трейдинге 1998-2017

ни 35% годовых  фондирования  в 2015-м (в формуле премирования в том году такой цифры не было,  а была доля в постоянных расходах компании пропорциональная лимитам управляющего,  но на практике это и было примерно 35% годовых), ни 25% годовых в 2016-м (в этом году % фондирования и ФОТ управляющего были введены вместо доли в постоянных расходах)  я превзойти в компании не смог. Ну в 2017-м и вопрос с премией не стоял, а стоял вопрос выхода из просадки в компании, а значит риски там снижать было нельзя, а увеличивать у себя было и не приоритетно.

 

И что в «сухом остатке»? А то, что если ставить во «главу угла» принцип «сохранить и преумножить», то упустил то я только дважды: июль 2009-июль 2012 (два года на осознание и год на исправление)   и рубль-доллар 2014.  И по деньгам и по %% — это небольшая доля прибыли за весь период с сентября 1998-го, о которой не стоит жалеть, но уроки извлечь надо. Отказаться от приоритета «сохранить» и признать, что упущено гораздо больше, чем заработано? Не знаю. Да, надо признать, что с «сохранить» за все годы у меня получилось гораздо лучше, чем с «преумножить», но ведь так и были расставлены приоритеты.  Причем четыре кризиса: 1998-й, доткомов, ипотечный и нефтяной сыграли в моем случае за «преумножить», а вот остальные годы не столь удачны в этой части. А потому приглашаю Вас сегодня на мой бесплатный вебинар, посвященный тому, что у меня получалось лучше

www.finam.ru/webinars/lesson1343/item11293

Жизнь с рынка: размышления и наработки


Собираясь «уходить в свободное плавание», необходимо учитывать ряд моментов. Для себя подметил следующее:

1.Высокий уровень самоорганизации. Занятие не для недисциплинированных товарищей, захотевших «легких денег». То, что на обычной работе за тебя делает работодатель, придется делать самому – планировать. Рабочий день, время на трейдинг, на исследование новых идей. Достигать целей и ставить новые задачи. Способность день за днем, месяц за месяцем, год за годом самостоятельно следовать этой рутине есть не у всех. Даже сказал бы, что у меньшинства.

Майкл Беллафиоре об этом написал так: «Какой смысл учить трейдера дисциплинированному поведению на рынке, если он расхлябан и несобран в повседневной жизни?»


2. Нелинейность дохода. Цикл «аванс-зарплата-аванс» превращается в цикл «То густо-то пусто». Периоды пустоты в доходах могут растягиваться на несколько кварталов. Несколько кварталов неоплачиваемых затрат времени и эмоционального здоровья. Лучше заранее подготовиться к данной ситуации. И финансово, и психологически.

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

Кто будет покупать трежерис?

Федеральный долг США в середине февраля достиг $20,76 трлн. Это увеличение на $266 млрд с момента последнего преодоления потолка долга. 
Кто будет покупать трежерис?

Конечно, это дополнительно усиливает долговую нагрузку, коэффициент долга к ВВП находится на уровне 105%.

Кто будет покупать трежерис?

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

Манипулирование рынком или кое-что о техническом анализе

Нашел на просторах интернета)))

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

 Высказывания различных аналитиков, в принципе, тоже можно считать влиянием на рынок с целью манипулирования оным, но аналитика трудно уличить в злом умысле, поскольку он всегда может привести разные доводы в пользу своего мнения, и он, как человек, имеет право на ошибку, и вполне может не принять в расчёт тот или иной фактор, способный повлиять на его выводы, которые он озвучил в прессе. То есть высказывания аналитиков за манипулирование рынком обычно не считается.

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



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

Код робота на LUA для QUIK

В двух словах: робот анализирует спот, выставляет лимитные и стоп-лимитные заявки по фьючерсу. Делает пересчет сигналов по выбранному тайм-фрейму, снятие выставленных заявок, запись в файл текущего состояния, ведение логов, сообщения, запрос текущей позиции и пр. Из робота удалена алгоритмика вычисления сигнала и в текущем виде скрипт будет иметь сигнал на покупку на каждом баре.

Предназначается для новичков в алготрейдинге, что-то типа болванки.

Важно: выставление заявок я закомментировал, поэтому можете смело запускать этот скрит, он не натворит ужаса по счету.

require"QL"

log = "sbrf.log"
seccode = "SRM6"
lots_in_trade = 80
accnt = ""
better = -5
chart = "sberbankxxx"
is_run = true
prev_datetime = {}
len = 100
basis = 9
k_bal = {0,1,2,3}
sell = false
buy = false
id = 0
first = true

function trade_signal(shift)
        number_of_candles = getNumCandles(chart)
        bars_temp,res,legend = getCandlesByIndex(chart,0,number_of_candles-2*len-shift,2*len)
        bars={}

        i=len
        j=2*len
        while i>=1 do
                if bars_temp[j-1].datetime.hour>=10 then
                        sk=true
                        if bars_temp[j-1].datetime.hour==18 and bars_temp[j-1].datetime.min==45 then
                                sk=false
                        end
                        if sk then
                                bars[i]=bars_temp[j-1]
                                i=i-1
                        end
                end
                j=j-1
        end

        t = len+1

        do_sell = false
        do_buy = true

        value = 0
        if do_sell then value = 1 end
        if do_buy then value = -1 end
        toLog(log,"value="..value.." on candle: "..bars[len].datetime.year.."-"..bars[len].datetime.month.."-"..bars[len].datetime.day.." "..bars[len].datetime.hour..":"..bars[len].datetime.min.."   O="..bars[len].open.." H="..bars[len].high.." L="..bars[len].low.." C="..bars[len].close.." V="..bars[len].volume)
        return value
end

function mysplit(inputstr, sep)
        if sep == nil then
                sep = "%s"
        end
        local t={} ; i=1
        for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
                t[i] = str
                i = i + 1
        end
        return t
end

function OnInit(path)
        log=getScriptPath()..'\\'..log
        toLog(log,"==========OnInit: START")
        toLog(log,"==========OnInit: FINISH")
end

function OnStop()
        is_run = false
        toLog(log,"==========OnStop: script finished manually")
end

function CheckBit(flags, bit)
   -- Проверяет, что переданные аргументы являются числами
   if type(flags) ~= "number" then error("Ошибка!!! Checkbit: 1-й аргумент не число!"); end;
   if type(bit) ~= "number" then error("Ошибка!!! Checkbit: 2-й аргумент не число!"); end;
   local RevBitsStr  = ""; -- Перевернутое (задом наперед) строковое представление двоичного представления переданного десятичного числа (flags)
   local Fmod = 0; -- Остаток от деления
   local Go = true; -- Флаг работы цикла
   while Go do
      Fmod = math.fmod(flags, 2); -- Остаток от деления
      flags = math.floor(flags/2); -- Оставляет для следующей итерации цикла только целую часть от деления
      RevBitsStr = RevBitsStr ..tostring(Fmod); -- Добавляет справа остаток от деления
      if flags == 0 then Go = false; end; -- Если был последний бит, завершает цикл
   end;
   -- Возвращает значение бита
   local Result = RevBitsStr :sub(bit+1,bit+1);
   if Result == "0" then return 0;
   elseif Result == "1" then return 1;
   else return nil;
   end;
end;

function killorders(ccode,scode)
    for i=0,getNumberOf("orders")-1,1 do
        local t=getItem("orders", i)
        if t ~= nil and type(t) == "table" then
            if( t.seccode == scode and CheckBit(t.flags, 0) == 1) then
                local transaction={
                    ["TRANS_ID"]=tostring(math.random(2000000000)),
                    ["ACTION"]="KILL_ORDER",
                    ["CLASSCODE"]=ccode,
                    ["SECCODE"]=scode,
                                        ["ACCOUNT"] = accnt,
                    ["ORDER_KEY"]=tostring(t.ordernum),
                }
                                res=sendTransaction(transaction)
            end
        end
    end
end

function killstoporders(ccode,scode)
    for i=0,getNumberOf("stop_orders")-1,1 do
        local t=getItem("stop_orders", i)
        if t ~= nil and type(t) == "table" then
            if( t.seccode == scode and CheckBit(t.flags, 0) == 1) then
                local transaction={
                    ["TRANS_ID"]=tostring(math.random(2000000000)),
                    ["ACTION"]="KILL_STOP_ORDER",
                    ["CLASSCODE"]=ccode,
                    ["SECCODE"]=scode,
                                        ["ACCOUNT"] = accnt,
                    ["STOP_ORDER_KEY"]=tostring(t.ordernum),
                }
                                res=sendTransaction(transaction)
            end
        end
    end
end


function main()
        toLog(log,"==========main: START")
        while is_run do
                if isConnected() == 1 then
                        ss = getInfoParam("SERVERTIME")
                        if string.len(ss) >= 5 then
                                hh = mysplit(ss,":")
                                str=hh[1]..hh[2]
                                h = tonumber(str)
                                if (h>=1000 and h<1400) or (h>=1405 and h<1845) or (h>=1905 and h<2350) then
                                        if first then
                                                for ti = 50,2,-1 do     trade_signal(ti) end
                                                if buy and not sell then message(seccode.." Current state: green and buy",1) end
                                                if sell and not buy then message(seccode.." Current state: red and sell",1) end
                                                if buy and sell then message(seccode.." ERROR: green and red",1) end
                                                if not buy and not sell then message(seccode.." WARNING: nothing",1) end
                                                first = false
                                        end
                                        prev_candle = getPrevCandle(chart,0)
                                        if not isEqual(prev_candle.datetime,prev_datetime) then
                                                current_value = trade_signal(1)

                                                if current_value ~= 0 then
                                                        optn = "B"
                                                        if current_value==1 then optn = "S" end
                                                        curvol=0
                                                        no=getNumberOf("FUTURES_CLIENT_HOLDING")
                                                        if no>0 then
                                                                for i=0,no-1,1 do
                                                                        im=getItem("FUTURES_CLIENT_HOLDING", i)
                                                                        if im.sec_code==seccode then
                                                                        curvol=im.totalnet
                                                                        end
                                                                end
                                                        end
                                                        trvol = -current_value*lots_in_trade-curvol
                                                        if trvol ~= 0 then
                                                                killorders("SPBFUT",seccode)
                                                                killstoporders("SPBFUT",seccode)
                                                                f = io.open(getScriptPath().."\\sbrf2_pos.txt","r")
                                                                sbrf2_pos=f:read("*n")
                                                                f:close()
                                                                f = io.open(getScriptPath().."\\sbrf3_pos.txt","r")
                                                                sbrf3_pos=f:read("*n")
                                                                f:close()
                                                                pr,n,l = getCandlesByIndex ("futsber", 0, getNumCandles("futsber")-1, 1)
                                                                local trans =
                                                                {
                                                                        ["ACTION"] = "NEW_ORDER",
                                                                        ["CLASSCODE"] = "SPBFUT",
                                                                        ["SECCODE"] = seccode,
                                                                        ["ACCOUNT"] = accnt,
                                                                        ["OPERATION"] = optn,
                                                                        ["PRICE"] = toPrice(seccode,pr[0].close+current_value*better),
                                                                        ["QUANTITY"] = tostring(math.abs(curvol-sbrf2_pos-sbrf3_pos)),
                                                                        ["TRANS_ID"] = tostring(getTradeDate().month*100+getTradeDate().day+id)
                                                                }
                                                                id = id+1
                                                                --res = sendTransaction(trans)
                                                                message(seccode.." Send : " .. res, 2)
                                                                toLog(log,"Send: ".. res)
                                                                for btr=0,200,5 do
                                                                        local trans =
                                                                        {
                                                                                ["ACTION"] = "NEW_STOP_ORDER",
                                                                                ["CLASSCODE"] = "SPBFUT",
                                                                                ["SECCODE"] = seccode,
                                                                                ["ACCOUNT"] = accnt,
                                                                                ["OPERATION"] = optn,
                                                                                ["PRICE"] = toPrice(seccode,pr[0].close-current_value*btr),
                                                                                ["STOPPRICE"] = toPrice(seccode,pr[0].close-current_value*(btr+better)),
                                                                                ["QUANTITY"] = tostring(6),
                                                                                ["TRANS_ID"] = tostring(getTradeDate().month*100+getTradeDate().day+id),
                                                                                ["EXPIRY_DATE"] = "GTC"
                                                                        }
                                                                        id = id+1
                                                                        --res = sendTransaction(trans)
                                                                        message(seccode.." Send : " .. res, 2)
                                                                        toLog(log,"Send: ".. res)
                                                                end
                                                                if current_value == 1 then
                                                                        message(seccode..' RED: buy->sell',1)
                                                                        toLog(log,"RED signal")
                                                                else
                                                                        message(seccode..' GREEN: sell->buy',1)
                                                                        toLog(log,"GREEN signal")
                                                                end
                                                        else
                                                                if current_value == 1 then
                                                                        message(seccode..' RED: buy->sell',1)
                                                                        toLog(log,"RED signal, but nothing to do")
                                                                else
                                                                        message(seccode..' GREEN: sell->buy',1)
                                                                        toLog(log,"GREEN signal, but nothing to do")
                                                                end
                                                        end
                                                else
                                                        if buy and not sell then toLog(log,"Nothing to do. Current state: green and buy",1) end
                                                        if sell and not buy then toLog(log,"Nothing to do. Current state: red and sell",1) end
                                                        if buy and sell then toLog(log,"Nothing to do. ERROR: green and red",1) end
                                                        if not buy and not sell then toLog(log,"Nothing to do. WARNING: nothing",1) end
                                                end
                                                prev_datetime = prev_candle.datetime
                                        end
                                end
                        end
                end
                sleep(5*1000)
        end
        toLog(log,"==========main: FINISH")
end
  • обсудить на форуме:
  • Quik Lua

11 лет в трейдинге

В этом месяце исполняется одиннадцать лет, как открыл первый брокерский счет на российском фондовом рынке. Хороший срок. Уже почти треть жизни живу в торговле и инвестициях. Захотелось описать некоторые моменты своего пути на рынке. Во-первых, для того, чтобы самому освежить в памяти. Время идет. Все постепенно забывается. Во-вторых, может кому-то окажется полезным. Итак…

 

Предыстория

На начало 2006 года сложились несколько факторов. Бизнес, которым начал заниматься после универа, стал приносить лишнюю копейку. Высвободилось время, которое можно было посвятить саморазвитию. Фактически, это был поиск новой ниши, которой можно посвятить время и вложить свободные деньги.

Знакомый посоветовал «Руководство богатого папы…» Кийосаки. Зона поиска сузилась. Через неделю открыл счет на рынке акций. Оглядываясь назад, думаю, что повезло, так как избежал форекса: кухонь, излишних плечей и т.п.



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

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