Этот топик о том, как искать условия для входа на одном графике, торгуя при этом на другом. Также здесь я покажу, как открывать позицию в программе Multicharts не «по рынку», а по стопу или по лимитному ордеру.
Использование нескольких графиков одновременно – это может быть как один инструмент с несколькими открытыми таймфреймами, так и несколько инструментов. Например, можно торговать расхождение Си и Ри. Или смотреть на Америку, торгуя Россию. Правда, во втором случае, придется попариться с первоначальными настройками инструментов – так, чтобы разное время свечек американских инструментов и российских совпадали по моменту, когда они реально торгуются. Для этого в настройках биржи и инструментов указываются часовые пояса, правила перехода на летнее/зимнее время. А поскольку наш любимый МирДверьМяч отменил перевод часов, делать всё автоматически сложно. Наверное. Скажу честно – сам я никогда этим не занимался. Когда будет необходимость – буду постигать. А пока что мне хватает сравнения разных инструментов на одной площадке.
Сегодня я покажу вам использование разных графиков на примере двух разных таймфреймов. Дневки и минутки.
Допустим, мы хотим покупать при пробое хая предыдущего дня, а продавать при пробое лоу предыдущего дня. Можно и на минутках с помощью моих любимых динамических переменных сделать так, чтобы и анализ и торговля происходили на одном графике.
А можно ту же задачу выполнить по-другому, используя для анализа таймфрейм «день», а для торговли – таймфрейм «минута». Откроем наш минутный график. Это будет основной. И добавим на рабочий стол ещё один. Для этого на графике Правой кнопкой Мыши -> Insert Instrument, выбираем необходимый нам РТС, ставим 1 day таймфрейм, выбираем японские свечи для отображение и нажимаем ОК. (как настраивать график я
уже рассказывал тут)
Мультичартс автоматически присвоил новому графику название data2. Если в коде указывать номер данных, Multicharts будет это учитывать. А по умолчанию все действия производятся на Data1. В данном случае – это минутки у нас.
Вот так выглядит рабочий стол теперь. Обратите внимание: дневная свеча рисуется в 23:50, тогда как минутки заканчиваются в 23:49 того же дня. Это из-за того, что в настройках бирже end of session был указан в 23:50. Что ж, сейчас это только на руку.
Теперь всё просто. Берем и пишем код, указывая в нужных местах обращение к данным графика data2.
Введем variables: buylevel(
1000000000), selllevel(
0);
Значения по умолчанию я такие указал для того, чтобы на первом дне на минутном графике не происходило никаких сделок, потому что в этот момент ещё не посчитаны уровни предыдущего дня (т.к. не было ещё никакого предыдущего дня).
Если время на графике data2=2350, тогда начнем считать уровни:
If time of data2=
2350 then begin
buylevel=High of data2;
selllevel=low of data2;
end;
Уровни готовы. Пора вводить условие на вход.
Сейчас мы будем использовать новый для этой серии постов метод входа в позицию – по стопу. Вообще существует несколько типов заявок – «по рынку», стоп заявка, лимитная заявка. «По рынку» в программе бэктестирования реализуется входом по закрытию текущей свечи, либо по открытию следующей. Есть ещё заявка next bar at Market – используется для реальной торговли. При бэкстировании соответствует цене открытия обычно.
Стоп заявка исполняется при достижении цены определенного уровня в сторону движения цены. То есть, если надо купить по цене 150 или выше, то используется стоп заявка. Цена растет: 148, 149, достигает уровня 150 – и происходит покупка «на пробой», что называется. Этот тип заявок можно использовать как для открытия новых, так и для закрытия по стоп-лоссу уже открытых позиций.
Лимитная заявка – это уровень, не выше которого должна произойти покупка. То есть если лимит 150, и цена опускается 155, 153, 151 – покупка произойдет только в том случае, если цена достигнет 150. И ниже 150 не пойдет до тех пор, пока не будет целиком исполнена ваша заявка (в реальных рыночных условиях).
Ещё раз: если мы играем «на пробой», на продолжение тенденции – тогда используется stop заявка. Если идет работа «на отскок», то используется limit заявка.
Запишем условие покупки по уровню хай предыдущего дня:
If time>=
1000 and time<
2349 then begin
buy next bar at buylevel stop;
sell short next bar at selllevel stop;
end;
Выход будет происходить просто в 2349. И сразу после этого будет производиться расчет новых уровней на следующий день.
Код целиком:
Vars:
buylevel(
1000000000),
selllevel(
0);
If time of data2=
2350 then begin
buylevel=High of data2;
selllevel=low of data2;
end;
If time>=
1000 and time<
2349 then begin
buy next bar at buylevel stop;
sell short next bar at selllevel stop;
end;
If time=
2349 then begin
sell this bar close;
buy to cover this bar close;
end;
Всё. Теперь все данные берутся из графика дневок, а торговля идет на минутках.
Точно также можно использовать разные инструменты. Можно дожидаться сигнала на разных таймфреймах (использование стратегий типа «три экрана»).
В данном коде не предусмотрено много моментов. Например, если рынок откроется сильным гэпом вниз, то произойдет продажа не на пробое уровня, а сильно ниже его. Или если вы введете стопы, то при «болтанке» около уровня пробоя будет постоянно «выносить по стопу» и снова входить в позицию в течение одного дня…
Подобные моменты легко выявляются в процессе тестирования. Вы пишете код, вешаете его на график и смотрите сделки. Понимаете, что что-то не то. Устраняете неточности и ошибки. Думаете, какие ещё могут возникнуть проблемы, чего вы не учли.
В принципе, если вы прочитали все мои посты из этой серии, вы уже можете создавать свои системы. И уже имеете необходимую почву для того, чтобы освоить язык. Я в свое время многое дал бы за то, чтобы кто-нибудь показал мне эту дорогу.
Но ещё больше я отдал бы человеку, который избавил бы меня от шишек и синяков при более детальном изучении языка программирования и этой деятельности в целом. Дорого бы я заплатил за правильный взгляд на рынок. За сэкономленные годы бессистемной торговли. За избавление от иллюзий граальности некоторых индикаторов и методов торговли.
Где-то я видел формулу: деньги-время-опыт. Кажется, как-то так. Вы можете выиграть время, если у вас есть деньги и опыт решения проблем. Вы можете заработать деньги, если некоторое время будете использовать свой опыт. И, наконец, для того, чтобы получить опыт, знания – нужно потратить либо немало времени, либо деньги.
Я дал вам хороший старт для того, чтобы вы смогли получить необходимые знания и опыт. Всё есть в интернете, всё можно изучить со временем. Да и я буду продолжать выкладывать материалы по мере их написания, хотя уже и не так активно, как последний месяц – тут у меня с лета накопилось «неопубликованного», что называется.
Но если вы хотите сэкономить время, стать крутым профессионалом своего дела, приобрести знания и опыт, на поиски которых я потратил больше 8 лет своей жизни, занимаясь инвестициями с различной степенью интенсивности – то
мой курс точно для вас.
В этих статьях я просто рассказываю о конкретных ситуациях, объясняя в лучшем случае примером. При живом общении же я не отстану от вас до тех пор, пока вы не поймете сказанное, не научитесь видеть все возможные ошибки, не постигнете всех тонкостей проганья, о которых известно мне:)
Будьте честны сами с собой прежде всего. Не переставайте учиться. И stay tuned, как говорится:)
Для тех, кто только что подключился, рассказываю. Серия постов:
1.
Установка и настройка программы Multicharts.
2. Основы кодинга, структура кода.
3. Исправление ошибок. Дата и время. Проскальзывание.
4. Основы оптимизации и практические примеры в Multicharts.
5. Динамические переменные.
6. Использование нескольких таймфреймов одновременно.
7. Использование мультипозиционных систем.
8. Настройка программы Multicharts, часть 2, атака роботов.
9. Что-нибудь ещё придумаю. Примеры кусков кодов, разбор словаря с наиболее полезными функциями.
Профитов!
P.S. Это было «хорошо»?..
Видишь Герчика? — Нет — И я не вижу. А он есть. ©
Сам MultiCharts можно взять здесь: http://getanyplatform.com