Рыночная экономика нашей страны прежде всего зависит от нас, потребителей. Нам всегда интересно, почему вдруг повышаются цены на продуктовые товары, промышленные товары или услуги. Надо понимать, что все это в первую очередь зависит от топлива. Оно необходимо для любого производства, а также транспортировки продукции и т.д. Как только топливо повышается в цене, мы, безуловно, ощущаем это, отправляясь в очередной раз в магазин за продуктами, понимаем, цены «ползут» вверх. Цены на нефть и на газ прямо пропорциональны ценам на приобретаемые нами продукты. Но нефть – это основа фармацевтики, косметики, горючего для автомобилей. Поэтому и они растут в цене. В итоге получается такой закон: дорожает нефть – повышается стоимость всех товаров.
Компанией-монополистом в России по добыче нефти, ее переработке и продаже является компания «Роснефть», основанная в 1993 году. «Роснефть» – первая и основная нефтекомпания России, удерживающая монополию в добыче и переработке нефти. «Роснефть» первой вышла на фондовый рынок, а все существующие в настоящее время акционерные общества, занимающиеся продажей и переработкой нефти, а также ее добычей, входят в ей структуру. Кстати, компании, занимающиеся нефтепродуктами, тоже работают под началом «Роснефти». Президентом компании с 1998 по 2010 год являлся Богданчиков Сергей Михайлович, который своим чутким руководством смог значительно улучшить показатели компании. В 2010 году по приказу президента России Д. А. Медведева его сменил Эдуард Худайнатов.
На приватизационном аукционе в период работы Богданчикова С.М. состоялся тендер по оценке компании «Роснефть», выигранный одним из банков Германии, победивших на этом аукционе трех российских и такое же количество зарубежных претендентов.
Напомним, основная компания России, занимающаяся вопросами нефтедобычи и нефтепереработки, продажи нефтепродуктов? "Dresden Kleinwort Benson", тот самый банк, выигравший торги назвал эту цену: она оказалась равной 650 000 американских долларов. Представитель банка, предложившего такую стоимость, отказался комментировать свое предложение.
Российское же федеральное правительство посчитало необходимым нанять для проведения аукциона независимого аудитора для объективной оценки и предложения стартовой цены. Аудитор по итогам своей проверки будет сообщать ей результаты комиссии тендера, а последняя огласит стартовую цену компании на торгах.
Инвесторам необходимо повышение процента акций, выставленных "Роснефтью" на продажу. Они стремятся «выжать» из российского правительства более 75 процентов акций, тогда покупатели будут не против поднять начальную стоимость акций.
Если говорить о ближайших партнерах «Роснефти», необходимо указать «Всероссийский банк развития регионов». «Роснефть» владеет 76.47% акций банка.
Естественно, даже не очень близкий к вопросам экономики человек сделает заключение, что не стоит продавать западным инвесторам более 49% акций основной нефтедобывающей компании, иначе у западных инвесторов окажется контрольный пакет акций, а результате чего контроль над всей экономикой России перейдет в руки западных стран.
На российском фондовом рынке существует восьмерка акций, наиболее привлекательных для инвесторов. По завершении финансового кризиса 2008-2009 гг. именно эти акции показали наиболее высокий рост. Условно эту восьмерку называют «портфелем ММВБ-8» или просто ММВБ-8. Аббревиатура ММВБ означает, что эти акции торгуются на Московской Межбанковской Валютной Бирже.
Прежде, чем начать разговор об акциях ОАО «Газпром», давайте вспомним, что они принадлежат к той группе акций фондового рынка России, которые обладают наибольшей ликвидностью. Котировки, а, соответственно, и стоимость этих акций меняются каждые несколько минут в ходе биржевых торгов. Конкретные текущие данные по котировкам постоянно публикуются на интернетовских финансовых порталах и сайтах брокерских фирм.
Недавний кризис не обошел и ценные бумаги ОАО «Газпром». Так, если перед началом кризиса, в июне 2008 г., одна его обыкновенная акция стоила 370 руб., то 31 декабря этого же года она оценивалась всего в 108 руб. И это при том, что минимум цены пришелся на октябрь 2008 г. и составил 90 руб. То есть, менее, чем за полгода акции Газпрома подешевели на ММВБ почти на три четверти.
Но с начала 2009 г. уже наблюдался стабильный рост цены на акции Газпрома. За период с января по конец апреля 2009 г. стоимость одной обыкновенной акции возросла на 40% и достигла 150 руб. Более подробно с динамикой изменения их стоимости можно ознакомиться на графике, представленном на нашем сайте (данные ММВБ).
Финансовые аналитики относят эти акции к «голубым фишкам» и непременно включают их в состав всех фондовых российских индексов, в частности, ММВБ и РТС. Вместе с ценными бумагами Сбербанка России акции Газпрома постоянно держатся в числе наиболее ликвидных на фондовом рынке РФ.
Каковы прогнозы изменения цен акций ОАО «Газпром» на близкую и отдаленную перспективу? Простого ответа на этот вопрос нет. Может оказаться, что через год или меньше их стоимость будет совершенно отличной от той, какая существует сегодня. Причем, измениться она может и в положительную, и в отрицательную сторону. Удел аналитиков и владельцев акций – делать прогнозы и строить предположения. Одним из основных аргументов, который приводится финансовыми экспертами, является утверждение, что акции Газпрома в мире очень недооценены, поэтому их падение в будущем маловероятно.
Это и понятно. Компания постоянно расширяет свой бизнес, увеличивает объемы поставок газа на рынок, соответственно, растут выручка и прибыль. Будучи крупнейшей газодобывающей компанией мира, ОАО «Газпром» дает 20% всех поступлений в российский бюджет и обеспечивает выработку половины всей электроэнергии страны. Контрольным пакетом акций Газпрома в размере 50,002% владеет государство. Но следует понимать, что никто не застрахован от форс-мажорных обстоятельств, вроде финансового кризиса и т.п.
Покупка акций Газпрома оправдана, если вы рассчитываете на то, что их курсовая стоимость со временем увеличится, а также, если возможна выплата по ним больших дивидендов. Дивиденды как часть прибыли компании выплачиваются по решению годового собрания акционеров. Если собрание примет решение о направлении прибыли на развитие компании, то рядовые акционеры могут в каком-то году остаться и без дивидендов.
Имея акции Газпрома, на дивиденды по ним не стоит сильно рассчитывать, поскольку они обычно крайне невелики и находятся в пределах 0,3 – 2,66 руб. на одну обыкновенную акцию. С 2000 г. по 2007 г. их размер постоянно увеличивался и был максимальным в 2007 году. Но 2008 год принес финансовый кризис, а вместе с ним и самый низкие за всю историю Газпрома дивиденды. Устав ОАО «Газпром» вообще не регламентирует акционеров в отношении того, какие дивиденды они должны получат и должны ли получать их вообще.
Главным ориентиром должно стать изменение цены на акции, что может принести их владельцам 100% годовых и более.
Если вы – частный инвестор, то приобретение вами на бирже акций Газпрома, как и любых других, возможно только с помощью посредников, профессионально работающих на фондовом рынке. Такими посредниками являются компании-брокеры.
Осуществляя через брокера сделку по покупке или продаже акций, вы должны заключить с ним договор на проведение обслуживания. За услуги брокер взымает комиссию, обычно она невелика и не превышает 0,1% от суммы сделки. На размеры комиссионных очень влияет конкуренция между брокерскими компаниями, поэтому они в процентном выражении постепенно снижаются.
Хранение акций осуществляется в особом финансовом учреждении, называемом «депозитарий». Причем, сейчас никто не выдает владельцу акции в бумажном виде, поскольку существуют они лишь в виде электронных записей. Депозитарий также берет комиссию за свою работу. Однако, ряд брокеров получили право совмещать услуги по проведению сделок по акциям с услугой депозитария. В этом случае за хранение акций плата с клиента не берется.
Индекс ММВБ10 является ценовым индексом, который рассчитывается в виде средней арифметической величины значений изменений цен десяти самых ликвидных акций, торги по которым осуществляет Московская Межбанковская Валютная Биржа (ММВБ).
Для расчета индекса ММВБ10 берутся акции десяти ведущих компаний России, и именно те акции, которые активно покупаются и продаются в данное время. В исходный момент доли каждой из компаний в индексе равны и составляют по 10%.
Для аналитиков величина индекса ММВБ10 является индикатором общего состояния фондового рынка Российской Федерации. Растет рынок – растет и ММВБ10, ухудшается ситуация на рынке – ММВБ10 падает.
Каждые 3 месяца состав индекса пересматривается и пересчитывается. Вовсе не обязательно, что компания, входившая в число десяти ведущих в феврале, останется среди лидеров по ликвидности в апреле. Одни эмитенты акций в начале квартала уходят, другие эмитенты с своими акциями приходят им на замену. Однако основную часть индекса ММВБ10 уже долгое время формируют одни и те же акционерные компании.
При этом фондовая биржа исключила из индекса акции компании «Уралкалий», входившие в него ранее, введя вместо них акции компании «Северсталь».
Постоянных участников индекса ММВБ10 часто, по аналогии с Западом, называют «голубыми фишками», имея в виду популярность и ликвидность их акций.
Расчет ММВБ10 проводится с 1997 года, в качестве исходного значения была выбрана цифра 100. Расчеты идут в реальном времени, следовательно, в ходе торгов на ММВБ при изменении цены какой-либо акции сразу изменяется и общее значение индекса.
Отдельным инвесторам, включая частных, интереснее всего знать не абсолютную величину ММВБ10, а его динамику в течение дня, месяца или года. Это значительно упрощает понимание ситуации на фондовом рынке и прогнозирование ее перспектив.
Самая полная информация о составе, принципах расчета и конкретных значениях индекса представлена на сайте ММВБ.
Сравнивая ММВБ10 с другими российскими индексами (ММВБ или РТС), можно увидеть, что все они практически совпадают и по динамике не отличаются один от другого. И эта их похожесть только подтверждает корректность выбранных методик расчета и правильность выводов, получаемых после их анализа.
Индекс ММВБ-10 – это индекс, рассчитанный с учетом изменения цен десяти самых ликвидных акций, принимающих участие в торгах на московской межбанковской валютной бирже. Инвестирование в ММВБ-10 – это самый простой способ заработать на росте фондового рынка России. Почему? Вам нет необходимости самим выбирать акции, которые нужно приобрести. В состав индекса ММВБ-10 входят десять акций, поэтому ваш первоначальный финансовый вклад будет минимальным. Если фондовый рынок поднимается в цене, то, соответственно, поднимается и стоимость вашего портфеля акций. Если же рынок падает, то и стоимость вашего портфеля также снижается. Однако стоит помнить, что общая тенденция фондовых рынков склонна к росту с течением времени, а значит, в конечном итоге, ваши шансы заработать на большом промежутке времени достаточно велики.
Динамика основных российских фондовых индексов (индекса РТС, индекса ММВБ-10 и индекса ММВБ) одинакова. Они или одновременно растут или одновременно падают или же сохраняют стабильность. Поэтому нет необходимости вкладывать средства в акции того индекса, который труднее рассчитывать. Например, в расчет индекса РТС входит 50 ценных бумаг, в то время как в индекс ММВБ-10 – только десять. Таким образом, новичку, пока он еще не освоился на фондовом рынке, проще будет сделать инвестицию в индекс ММВБ-10.
Инвестиция в индекс ММВБ-10 требует минимальных затрат времени. Это самый оптимальный вариант для вкладчика – то, что называется «купи и держи» («buy&hold»). Достаточно лишь раз в месяц просматривать, как изменился состав индекса ММВБ-10, который меняется один раз в квартал. В случае необходимости можно докупить акции, вошедшие в индекс или продать те, которые из индекса были исключены.Для этого нужно:
Вы должны будете приобрести акции десяти компаний, которые входят в индекс ММВБ-10 в одинаковых долях, например 10% от ваших финансовых средств использовать на покупку акций Норильского никеля, 10 % на покупку акций Лукойла и т.д. Нужно помнить, что на бирже ведется торговля лотами. Так, для акций ВТБ один лот равняется тысячам акций. Таким образом, у вас не получиться купить полторы акции Лукойла, а получившиеся пропорции не будут равны десяти процентам, а будут отличаться в ту или иную сторону. Это не является принципиально важным.
Таким образом, имея небольшой стартовый капитал и минимум знаний относительно фондового рынка, можно начать зарабатывать, выгодно вложив деньги в индекс ММВБ-10.
Сейчас основная масса ценных бумаг (облигаций, акций и т.п.) имеет бездокументарную форму, то есть, существуют только в электронном виде. Их учет и хранение производится в особом финансовом учреждении – депозитарии, профессионально работающем в этой сфере. Здесь, путем электронных записей, фиксируются права владельцев на акции и прочие ценные бумаги. Так, если у вас имеется 1000 акций Сбербанка России, то депозитарий внесет в свои записи информацию, что Петров Петр Петрович владеет одной тысячей акций Сбербанка.
Поскольку, депозитарий является одним из важнейших участников рынка ценных бумаг, а его главными функциями является хранение ценных бумаг, а также учет переходов прав на них, он обязательно должен получить специальную лицензию на этот вид деятельности. Такие лицензии выдает Федеральная Служба по Финансовым Рынкам (ФСФР).
Для тех, кто желает самостоятельно выступать инвестором на фондовом рынке, открывается брокерский счет. Одновременно с ним открывается и счет «депо», на котором впоследствии и будет вестись хранение и учет ценных бумаг. Как правило, в качестве оплаты за услуги депозитария по обслуживанию счета депо берется комиссия, составляющая или определенный процент от объема инвестиций, или фиксированную сумму.
В момент купли-продажи каких-либо ценных бумаг, происходит их списание со счета депо продавца с одновременным зачислением их на счет депо покупателя. Такая операция производится в бездокументарном виде с использованием электронных носителей информации. Самый близкий аналог хранения акций в депозитарии – хранение денег в безналичной форме на счете в банке.
Такие крупнейшие российские биржи как ММВБ и РТС для хранения обращающихся на них ценных бумаг пользуются двумя основными депозитариями, отличающимися надежностью и большими объемами проводимых операций. Это НДЦ (Национальный Депозитарный Центр), сотрудничающий, в основном, с ММВБ и ДКК (Депозитарно-Клиринговая Компания), хранящая ценные бумаги, обращающиеся, в свою очередь, на РТС.
Важно иметь в виду, что оба этих системообразующих российских депозитария не работают с физическими лицами, а ведут на одном счете учет хранения всех ценных бумаг клиентов каждого брокера или инвестиционной компании. Работу по учету ценных бумаг клиентов брокера, включая физические лица, осуществляют более мелкие депозитарии.
Две ведущие российские фондовые биржи – ММВБ и РТС постоянно торгуют акциями Сбербанка России. Поскольку, согласно законодательству Российской Федерации, торговля ценными бумагами на биржах разрешена лишь профессиональным участникам фондового рынка - брокерским или инвестиционным компаниям, то все желающие приобрести акции Сбербанка могут воспользоваться их услугами.
Процедура покупки акций начинается с выбора покупателем надежного брокера, заключения с ним договора на обслуживание и открытия брокерского счета. Когда персональный брокерский счет открыт, на него можно вносить денежные средства и с их помощью осуществлять сделки по продаже и купле акций на фондовых биржах. Сейчас наиболее быстрый и безопасный для покупателя способ проведения торговых операций с ценными бумагами – интернет-трейдинг, позволяющий в оперативном режиме участвовать в торгах как обыкновенными, так и привилегированными акциями Сбербанка России.
Чтобы оценить примерную динамику цен на акции (обыкновенные) Сбербанка России, воспользуемся официальной информацией за 2009 год. В этом году не удалось остановить их падение, которое началось в 2008 году вместе с началом кризиса. В самом конце 2008 года на ММВБ акции стоили около 23 рублей. Однако уже в середине 1-го квартала 2009 года они продавались по 13,5 рублей, что явилось минимальной ценой на них за всю историю торгов. К концу марта ситуация начала резко меняться, и цена составляла 26 рублей, демонстрируя рост 85%. Этот рост продолжился в 2009 году и далее, что было связано с общим ростом индекса ММВБ, свидетельствовавшим о позитивных результатах правительственных мер по выводу российской экономики из затяжного кризисного периода.
На этот вопрос пока еще нет однозначного ответа. Все дело в целях такой сделки, в сроках, на который покупаются акции (горизонте инвестирования), в моменте точки входа, финансовой стабильности банка в конкретный момент и т.п. Покупая акции Сбербанка, вы находитесь исключительно в зоне своей ответственности, то есть должны быть готовы не только к росту их стоимости, но и продолжительному падению.
О возможных рисках покупателя говорит и динамика доходности этих акций с 2000 по 2007 год. Лишь один раз (в 2000 году) простые акции Сбербанка России были для их владельцев убыточными и однажды (в 2007 году) принесли нулевой доход. Все остальные годы наблюдался их постоянный рост, а доходность держалась в пределах 40 – 240% (средняя за весь период – 72%). Но даже самые лучшие текущие показатели не дают гарантии будущей стабильной прибыли. Это продемонстрировал кризисный 2008 год, ознаменовавшийся резким падением стоимости многих ценных бумаг, в том числе и акций Сбербанка.
Акции Сбербанка |
2000г. | 2001г. | 2002г. | 2003г. | 2004г. | 2005г. | 2006г. | 2007г. | За 8 лет | Среднегод. |
Доходность | -34% | 240% | 135% | 39% | 71% | 192% | 109% | 1% | 7630% | 72% |
Текущие котировки акций можно узнать как в деловой периодической печати (газеты «Коммерсант», «Ведомости»), так и на ряде российских финансовых порталов (например, Quote.ru или Skrin.ru), на официальных сайтах самого Сбербанка России (раздел «Акционерам и инвесторам») и бирж ММВБ и МТС.
Курс обыкновенных акций Сбербанка в 2008 году
Курс обыкновенных акций Сбербанка в 2009 году
В середине 2007 года, в связи с деноминацией рубля, произошло дробление акций Сбербанка. Результатом этой процедуры стала конвертация одной обыкновенной акции в 1000 штук, а привилегированной – в 20 штук. При этом, их номиналы уравнялись и составили 3 рубля за штуку (вместо 3000 рублей за одну обыкновенную акцию и 60 рублей за одну привилегированную). Рыночная же их стоимость после дробления осталась прежней. Так, одна акция Сбербанка России, имеющая рыночную цену 100 тысяч рублей, соответствует по стоимости одной тысяче акций стоимостью по 100 рублей каждая.
Стоит ли определенная компания вашего внимания? Нужно ли инвестировать именно в акции этой, а не другой фирмы? Как избежать ошибок и как не пожалеть о своем решении? Каждый из вас сможет ответить на эти вопросы после прохождения серии наших уроков. Вы сможете принимать грамотные инвестиционные решения, начнете разбираться в балансовых отчетах и научитесь определять настоящую стоимость акций.
В первом уроке мы расскажем вам о фондовых рынках, причинах их существования. Вам станет понятно, через что проходит обычный домашний бизнес на пути к становлению корпорацией с выставленными на продажу акциями.
Работающие на фондовых биржах люди делятся на две категории. Первые из них являются азартными игроками. Для них биржа и инвестиции - это игра, в которой проигрыш неизбежен и смысл есть только в азарте. Такие люди глубоко заблуждаются относительно того, чем на самом деле являются фондовые рынки. Их страх и неуверенность вызваны опытом близких и друзей, потерявших свои сбережения, или же у них самих мог быть печальный личный опыт. На самом же деле, люди из первой категории не имеют четкого представления о фондовых рынках, у них недостаточно опыта и знаний.
Ко второй категории относятся те, кто понимает важность инвестиций и имеет желание заниматься этим делом в будущем. Однако эти люди не знают, с чего же им стоит начать. Они также забивают себе голову некоторыми страхами и предрассудками полагая, что в инвестициях везет лишь ограниченному кругу лиц. Люди из этой категории чаще всего пользуются услугами профессионалов и сами толком не разбираются в особенностях фондовых рынков. Занимаются инвестициями они лишь потому, что это в теории и перспективе может принести прибыль. Удивительно, что эти люди находятся в гораздо более серьезной опасности, чем азартные игроки из первой группы. Их баланс зачастую уходит в глубокую просадку, и они удивляются, почему не могут достичь выдающихся результатов.
На самом же деле, любой обычный инвестор в силах самостоятельно определить баланс компании. С помощью весьма простых математических формул он сможет легко вычислить стоимость фирмы и настоящую цену ее акций. Это позволит вкладчику в долгосрочной перспективе получить неплохую прибыль.
Но перед началом урока об особенностях оценки компаний, необходимо разобраться в сути бизнеса и фондового рынка. Это является одним из самых важных моментов в обучении инвестированию.
Фундаментом любой экономики является бизнес. Большинство самых крупных мировых корпораций в былые время являлись маленькими, никому не известными фирмами. Такие финансовые гиганты, как Wal-Mart, Dell и McDonalds когда-то были малыми предприятиями, но в этом году их совместная прибыль составила более $10 млрд. Например, Wal-Mart когда-то был всего-лишь маленьким магазинчиком в штате Арканзас. Майкл Делл, создатель корпорации Dell, собирал в комнате своего общежития компьютеры, которые затем продавал. Что же касается сети ресторанов McDonalds, то когда-то это был обычный ресторанчик. Все эти фирмы начинали с малого, но стали одними из самых крупных предприятий а США и мире. Это удалось им благодаря продаже акций.
При росте любой компании всегда возникает проблема финансирования. Для ее решения обычно прибегают к двум известным способам. Один из них - взять деньги в банке или в венчурной фирме. Но проблема в том, что банки далеко не всегда выдают кредиты. Более рентабельным вариантом является продажа части бизнеса инвесторам. Вырученные с этого хода деньги можно пустить на расширение бизнеса. Таким образом, отказавшись от какой-то части прибыли можно получить финансы на расширение. Этот вариант выгоден еще и тем, что деньги берутся не в долг. Кроме того, благодаря началу работы на фондовом рынке, менеджеры компаний смогут расплачиваться акциями своего бизнеса, а не наличными.
Давайте на примере вымышленной фирмы ОАО "Обувь" посмотрим, как работает фондовый рынок.
Семья решила организовать свой небольшой бизнес, чтобы проводить больше времени с детьми и просто быть более свободными в финансовом плане. Решено было открыть небольшую фирму по продаже и ремонту обуви, так как обоим супругам всегда была интересна эта тема. Для получения стартового капитала они взяли кредит в банке. Затем они официально зарегистрировали фирму "Обувь" и открыли свой магазин. Их доход в первые годы был минимальным, так как было необходимо выплачивать кредит, закупать новый товар и оборудование.
По прошествии порядка десяти лет, фирма значительно расширилась. На данный момент их задолженность банку полностью погашена, а прибыль составляет $500000 в год. Такой рост является большим успехом и семейная пара решила, что пришло время для открытия филиалов фирмы в двух соседних городах. Глубокий анализ рынка показал, что для открытия новых магазинов им потребуется достаточно крупная сумма - более $4 миллионов. Вариант нового кредита даже не обсуждался, так как придется выплачивать очень большую сумму в качестве комиссии. Тогда супруги договорились продать акции своей компании.
В прошлом выпуске был приведен пример эксперта, с использованием функции OrderCloseBy(). Здесь мы для начала расскажем о самой функции, а потом разберем каждую новую строчку нашего эксперта.
bool OrderCloseBy(int ticket, int opposite, color сolor=CLR_NONE)
Функция OrderCloseBy() закрывает одну позицию другой позицией по тому же самому инструменту. В случае успеха она возвращает true, а в случае ошибки - false. Код ошибки можно в дальнейшем узнать с помощью функции GetLastError().
Параметры функции OrderCloseBy():
Разберем каждую новую строчку нашего эксперта:
// попробуем найти локированную позицию по этому же инструменту int ticket0; ticket0 = OrderTicket();
string symbol0; symbol0 = OrderSymbol();
int ordertype0; ordertype0 = OrderType();
int i; for (i = 1; i<OrdersTotal(); i++) { if (!OrderSelect(i, SELECT_BY_POS)) // в случае неудачи выйти из цикла break; if ((symbol0==OrderSymbol()) && (OrderType()==((ordertype0+1)%2)) ) { if (!OrderCloseBy(OrderTicket(), ticket0)) { Print("Ошибка ", GetLastError()," при закрытии позиции ", OrderTicket(), " позицией ", ticket0); break; } else { i = -2; break; } } } // если CloseBy успешна, то пауза и завершить итерацию цикла if (i==-2) { Sleep(10000); continue; }
// заново выделим нулевую позицию if (!OrderSelect(ticket0, SELECT_BY_TICKET)) // в случае неудачи выйти из цикла break;
Вначале запомним номер тикера, инструмент и тип операции выделенной позиции (первой в списке открытых позиций и отложенных ордеров) в переменных ticket0, symbol0 и ordertype0 соответственно:
int ticket0; ticket0 = OrderTicket();
string symbol0; symbol0 = OrderSymbol();
int ordertype0; ordertype0 = OrderType();
После этого в цикле переберем все оставшиеся позиции в поиске позиции, чтобы найти позицию по тому же инструменту, но открытую в другом направлении (OrderType()==((ordertype0+1)%2)):
int i; for (i = 1; i<OrdersTotal(); i++) { if (!OrderSelect(i, SELECT_BY_POS)) // в случае неудачи выйти из цикла break; if ((symbol0==OrderSymbol()) && (OrderType()==((ordertype0+1)%2)) ) { ... } }
Если такую позицию мы нашли, то закроем ее и нашу первоначально выделенную позицию с помощью функции OrderCloseBy() и в случае успеха присвоим переменной i значение -2.
Далее мы проверяем были ли закрыты локированные позиции. Если "да", то делаем паузу и переходим к следующей итерации цикла while, т.е. смотрим следующую позицию/ордер - кандидатов на закрытие/удаление:
if (i==-2) { Sleep(10000); continue; }
Если же локированные позиции были не найдены, то вновь выделяем первую позицию в списке открытых позиций и отложенных ордеров:
if (!OrderSelect(ticket0, SELECT_BY_TICKET)) // в случае неудачи выйти из цикла break;
Далее пытаемся закрыть эту позицию с помощью функции OrderClose().
Следующий выпуск будет посвящен кодам ошибок, которые могут вызывать торговые операции.
В прошлом выпуске мы рассказали о том, как можно закрыть открытую позицию с помощью функции OrderClose(). Практических примеров применения этой функции можно привести бесчисленное количество, т.к. в большинстве экспертов существует потребность закрывать позиции не только по Stop Loss или Take Profit ордеру, но и по текущей цене.
Мы же в качестве примера применения функции OrderClose() рассмотрим эксперт, который закрывает все открытые позиции и удаляет все отложенные ордера в пятницу после 22:00 (по времени торговой платформы).
//+------------------------------------------------------------------+ //| Close everything on Friday.mq4 | //| Copyright © 2006, Andrey Vedikhin | //| http://www.vedikhin.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, Andrey Vedikhin" #property link "http://www.vedikhin.ru"
//---- input parameters extern int MyHour=22; extern int MyMinute=00;
// 5 - Friday #define MyDay 5
datetime LastTradeTime;
//+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- // установим время последней торговой операции вчерашним днем LastTradeTime = CurTime()-24*60*60; //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //----
//---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- // проверим, не закрывали ли мы все уже сегодня // если да - выходим if (TimeDayOfYear(CurTime())==TimeDayOfYear(LastTradeTime)) return(0);
// если не пятница - выходим if (DayOfWeek()!=MyDay) return(0);
// проверим, не наступило ли время закрывать позиции if (((TimeHour(CurTime())==MyHour)&&(TimeMinute(CurTime())>=MyMinute)) ||(TimeHour(CurTime())>MyHour)) { // закроем все позиции и удалим ордера while (OrdersTotal()>0) { // выделим первую позицию или ордер в списке if (!OrderSelect(0, SELECT_BY_POS)) break; // в случае неудачи выйти из цикла
// если отложенный ордер, то удалить if (OrderType()>OP_SELL) { if (!OrderDelete(OrderTicket())) { Print("Ошибка ", GetLastError()," при удалении отложенного ордера ", OrderTicket()); break; } } // если открытая позиция, то закрыть else { double price; if (OrderType()==OP_SELL) price = MarketInfo(OrderSymbol(), MODE_ASK); else price = MarketInfo(OrderSymbol(), MODE_BID);
if (!OrderClose(OrderTicket(), OrderLots(), price, 3)) { Print("Ошибка ", GetLastError()," при закрытии позиции ", OrderTicket()); break; } }
// пауза 10 секунд Sleep(10000); } if (OrdersTotal()==0) LastTradeTime = CurTime(); }
//---- return(0); } //+------------------------------------------------------------------+
Итак, изучив код этого эксперта, давайте разберемся, как он работает.
Прежде всего этот эксперт имеет несколько параметров:
extern int MyHour=22; extern int MyMinute=00;
Эти параметры имеют следующих смысл:
Напомню, что о том, как описать в коде параметры эксперта, я рассказывал в выпуске "Внешние переменные".
Мы объявили глобальную переменную LastTradeTime:
datetime LastTradeTime;
С ее помощью мы сможем избежать "сработки" эксперта на каждом тике после 22:00, если в этот день мы уже закрыли все открытые позиции и удалили отложенные ордера.
При инициализации эксперта в функции init() мы присваиваем этой переменной значение вчерашнего дня:
int init() { //---- // установим время последней торговой операции вчерашним днем LastTradeTime = CurTime()-24*60*60; //---- return(0); }
Напомню, что функция CurTime() возвращает текущее время в формате datetime.
На каждом тике вызывается функция start(), в которой мы сначала проверяем, не закрывали ли мы уже сегодня открытые позиции и не удаляли ли мы уже отложенные ордера:
if (TimeDayOfYear(CurTime())==TimeDayOfYear(LastTradeTime)) return(0);
Здесь используется функция TimeDayOfYear():
int TimeDayOfYear( datetime date )
Эта функция возвращает порядковый номер дня (с начала года): 1 - 1 января, ... , 365 или 366 - 31 декабря.
Если же порядковый номер дня последней торговой операции - TimeDayOfYear(LastTradeTime) - равен порядковому дню текущего времени - TimeDayOfYear(CurTime()), - значит мы уже сегодня ордера удаляли и позиции закрывали, поэтому выходим из эксперта: return(0).
Проверим, не пятница ли сегодня:
if (DayOfWeek()!=MyDay) return(0);
Функция DayOfWeek() возвращает порядковый номер дня недели (воскресенье - 0, 1 - понедельник, ..., 6 - суббота) последнего известного времени сервера.
Теперь проверим, не наступило ли время закрывать позиции:
if (((TimeHour(CurTime())==MyHour)&&(TimeMinute(CurTime())>=MyMinute)) ||(TimeHour(CurTime())>MyHour)) { ... }
В этом кусочке кода я использовал две новые функции:
Далее с помощью функции OrderSelect() мы начинаем выделять первую позицию/ордер в списке, пытаться ее закрыть или удалить ордер, а потом с помощью цикла while этот процесс повторяется вновь и вновь, пока есть открытые позиции или отложенные ордера. Также цикл прерывается в случае ошибки.
Обязательно между торговыми операциями мы выдерживаем паузу в 10 секунд:
Sleep(10000);
Функция Sleep(int milliseconds) делает паузу в работе эксперта на milliseconds милисекунд (1 секунда = 1000 милисекунд).
После того, как все позиции закрыты и все отложенные ордера удалены, мы задаем время последней "сработки" советника текущим временем:
if (OrdersTotal()==0) LastTradeTime = CurTime();
В коде эксперта Вы видите еще одну незнакомую нам функцию - MarketInfo():
double MarketInfo(string symbol, int type)
С помощью этой функции можно получить различную информацию об инструменте symbol. Вид получаемой информации зависит от значения параметра type:
Константа | Значение | Описание |
MODE_LOW | 1 | Минимальная цена за день |
MODE_HIGH | 2 | Максимальная цена за день |
MODE_TIME | 5 | Время поступления последней котировки |
MODE_BID | 9 | Последний Bid |
MODE_ASK | 10 | Последний Ask |
MODE_POINT | 11 | Размер пункта в валюте котировки |
MODE_DIGITS | 12 | Количество цифр после десятичного точки в цене инструмента |
MODE_SPREAD | 13 | Спрэд в пунктах |
MODE_STOPLEVEL | 14 | Минимально допустимый уровень стоп-лосса/тейк-профита в пунктах |
MODE_LOTSIZE | 15 | Размер контракта в базовой валюте инструмента |
MODE_TICKVALUE | 16 | Размер минимального изменения цены инструмента в валюте котировки |
MODE_TICKSIZE | 17 | Минимальный шаг изменения цены инструмента в пунктах |
MODE_SWAPLONG | 18 | Сторидж для длинных позиций |
MODE_SWAPSHORT | 19 | Сторидж для коротких позиций |
MODE_STARTING | 20 | Дата начала торгов по инструменту (для фьючерсов) |
MODE_EXPIRATION | 21 | Дата окончания торгов по инструменту (для фьючерсов) |
MODE_TRADEALLOWED | 22 | Флаг разрешения торгов по данному инструменту |
MODE_MINLOT | 23 | Минимальный размер лота |
MODE_LOTSTEP | 24 | Шаг изменения размера лота |
MODE_MAXLOT | 25 | Максимальный размер лота |
В следующй статье мы познакомимся с функцией OrderCloseBy().
Есть что сказать? Не стесняйтесь!
Последние статьи:
Видео по теме:
УГОЛОК АДМИНИСТРАТОРА