Здравствуйте, гость ( Вход | Регистрация )

IPB

 Обучение  трейдингу БЕСПЛАТНО!      Общение С БОНУСАМИ !!!    Подробности здесь

 Регистрация на форуме отдельная от сайта и ручная! Обращаться через КОНТАКТЫ

2 страниц V   1 2 >

BQQ
Отправлено: 28.11.2008, 11:15


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


Вход Мск 10:46 по цене 1,2924

СБД на стох М5 + ретест сверху уверенно пробитого уровня мюр 1,2924
Движение от ТЕ на М5 после кратковременного её прокола, до ТЕ на М15 оставался 1 пункт - почти коснулись.

Стох М15 не был в зоне перепроданности.
Почему не ждал перепроданности на М15: ретест пробитого уровня, он может быть и кратковременным, стох М15 не успеет дойти до перепроданности.

Результат - ТП +15 пунктов (на уровне Мюр 1,2439)
  Форум: Самые первые пробы новичков · Просмотр сообщения: #25430 · Ответов: 4122 · Просмотров: --

BQQ
Отправлено: 19.7.2008, 12:20


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


В прошлом посте разбиралась стратегия торговли пробоев канала Боллинджера.
Основная идея её в том, что отклонение случайной величины более чем на 2 сигмы от своего среднего - крайне маловероятное событие.
Далее молчаливо предполагалось, что "истинным" значением цены является её среднее , а отклонения от среднего - случайны.

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

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

Напишем аналогичные по структуре сигналы и подвергнем нашу стратегию точно такому же тестированию, как и стратегию из прошлого поста. Прямо в текст код не вставляю, он есть во вложении и несложен.

Как видно из отчета, и прибыльность и профит-фактор полученной стратегии на интервале тестирования заметно хуже, чем у стратегии пробоя канала Боллинджера (т.е. пробоя отклонения от обычной средней).
Однако при рассмотрении графика оптимизации параметра пробоя можно заметить любопытное явление - стратегия пробоя отклонений от экспоненциальной средней заметно менее чувствительна к занчению параметра, чем стратегия пробоя отклонения от обычной средней (см. графики), оставаясь прибыльной во всем диапазоне разумных значений параметра пробоя. Это есть хороший признак.
Прикрепленное изображениеПрикрепленное изображение

Проверим теперь стратегию на слепом тесте, сместив интервал времени на год (всё точно также. как и в прошлый раз). Ура! стратегия осталась прибыльной, хотя и принесла меньше прибыли, чем в том интервале, на котором она оптимизировалась. Прибыль уменьшилась по сравнению и с интервалом оптимизации примерно вдвое (для прошлой стратегии прибыль уменьшилась в 80 раз).
Повторим оптимизацию на интервале до 1 января 2008 года и протестируем стратегию на интервале до 1 июля 2008 года. На слепом первом полугоде 2008 года стратегия принесла убыток 67 пунктов. Это, конечно, нехорошо, но не идет ни в какое сравнение с прошлой стратегией, принесшей в первой половине 2008 года при использовании параметров, оптимизированных до 1 января 2008 года убыток больше, чем в 1200 пунктов!

Важные выводы из рассмотренных примеров, которые я хотел донести до читателей (если читатели найдутся), следующие:
1. При тестировании стратегии не только обязателен слепой тест - это уже все понимают (надеюсь). крайне важно при оптимизации глазомерно контролировать разумность оптимальных значений параметров. Для стратегии пробоя канала Боллинджера значение параметра пробоя 1.2 есть значение неразумное, не обеспечивающее уверенной отстройки от случайных выходов за границы канала.
2. График оптимизации очень полезен. Форма его может помочь составить представление о том, насколько устойчивыми окажутся оптимальные значения параметров при использовании стратегии вне интервала оптимизации.
Прикрепленный файл  DEMA.rar ( 28,39 килобайт ) Кол-во скачиваний: 79

3. Не обязательно придумывать революционные идеи, неплохой эффект достигается также более тщательной реализацией общеизвестной идеи.
========
Если кто-нибудь прочтет этот пост и захочет задать вопрос именно по коду - прошу делать это в ветке про программирование. Здесь - обсуждение системостроительства.
  Форум: Omega (Омега) + Tradestation · Просмотр сообщения: #16233 · Ответов: 7 · Просмотров: 6.230

BQQ
Отправлено: 17.7.2008, 15:23


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


Здравствуйте. После длитетльного пререрыва, вызванного служебными делами, продолжаю делиться опытом системостроительства.

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

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

Общеизвестен индикатор полос Боллинджера.
У него есть два применения (как и у всех канальных индикаторов) - на пробой и на отбой.
Рассмотрим стратегию пробойную. Какова её основная идея?
Если цена отклоняется от своей средней больше, чем на некоторое число среднеквадратичных отклонений (часто говорят "сигм" ), то это - крайне маловероятное событие, если считать эти отклонения обусловленными случайностями. Появляется естественное предположение, что эти отклонения обусловлены не только случайностью, т.е. на рынке началось направленное движение. Поэтому при пробое канала Боллинджера (при закрытии вне канала) открывается позиция в направлении пробоя.
Выход из пробойной позиции разумно выполнять по любому короткому трейлингу.
В данном случае выход - по обратному пересечению ценой экспоненциальной средней с малым временем усреднения.

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

Вход
Код
Inputs: Len(20), Ampl(2);
Variables: BBBot(0),BBTop(0);

BBBot=BollingerBand(Close, Len, -Ampl); {BollingerBand - встроенная функция}
BBTop=BollingerBand(Close, Len, Ampl);

    
if close > BBTop  then buy ("BolBreak_Up")this bar on close;
if close < BBBot  then sell ("BolBreak_Dn")this bar on close;


Выход
Код
inputs: N(20);

if close > XAverage(close,N) then ExitShort this bar on close;
if close < XAverage(close,N) then ExitLong this bar on close;

Подбор параметров и тестирование.
Тестировать будем на дневном графике.
Дабы не плодить сущностей, заморозим значение параметра Len=20. Так как в месяце 22 рабочих дня - будем для торговли на днях анализировать интервал месяц, решение естественное. Поставим эту стратегию на график евро на период, оканчивающийся 1 января 2007 года и длительностью 500 дней.
Оптимизация по ширине канала (Ampl) от 1 до 3 через 0,1, а по параметру эксп.средней для выхода - от 5 до 20.
Результаты радуют глаз: профит-фактор чуть больше 3, отношение профита за период к просадке - тоже около 3.
Однако посмотрим, что же произойдет при попытке торговать вне того интервала времени, на котором проводилась оптимизация.
Не меняя оптимизированных параметров стратегии, сменим параметры графика (контекстное меню format symbol), положив конец периода на 1 января 2008 года. Общий результат остается положительным, но нас интересуют сделки только 2007 года. Они принесли только 11 пипсов...
Аналогичное действие - оптимизация для периода до 1 января 2008 года и проверка на первой половине 2008 года приносят совсем удручающий результат.

Почему же здравая идея принесла такой провал в 2008 году? Присмотримся к результатам оптимизации на периоде до конца 2007 года. Оптимальное значение ширины канала получилось только 1.2! Так как из теории мы знаем, что выброс на 1.2 среднеквадратичных отклонения с большой вероятностью случаен, можно заключить, что оптимизация в данном случае ухватилась за специфику рассматриваемого периода времени. Я приложил график оптимизации, который можно экспортировать из Омеги. На графике виден пик около значения 2, что соответствует вероятности случайного выброса примерно 1%. Это - важный урок системостроительства: при оптимизации на различных временных периодах надо следить за разумностью получающихся значений. Хорошей практикой является сопровождение одного и того же пика без перескока на другой.

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

Следующий пост - улучшение идеи.Прикрепленный файл  BolBreak.rar ( 28,78 килобайт ) Кол-во скачиваний: 80
  Форум: Omega (Омега) + Tradestation · Просмотр сообщения: #16128 · Ответов: 7 · Просмотров: 6.230

BQQ
Отправлено: 3.7.2008, 9:46


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


Сработал ТП +10 по МИНИ евро.

Вход был при повторной отработке уровня 1,5862 по цене 1,5865 в 10:24 Мск.
Движение от ТЕ на М5 и М15. Стохи М5 и М15 в перепроданности.

Были сомнения по входу, так как стохастики убывали быстро (на М5 увеличивалось расстояние между главной и сигнальной линиями). Вошел, так как отработка уровня - повторная (первая - ранним утром). и в базовых правилах про это противопоказание ничего не сказано.
  Форум: Самые первые пробы новичков · Просмотр сообщения: #15385 · Ответов: 4122 · Просмотров: --

BQQ
Отправлено: 22.4.2008, 10:04


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


По причине избытка чувств от свежеполученного профита 20 пунктов пишу ВладМиху благодарность.

Дело, конечно, не в пунктах. Эти 20 пунктов примечательны тем, что я впервые на реале (хотя торгую с переменным успехом уже чёрт знает сколько) вошёл по пробойной системе без внутренней дрожи. Ранее для меня войти в уже начавшееся движение представляло непреодолимую психологическую трудность: казалось, что поезд уже ушел.

Еще раз скажу: живое деловое общение на этом форуме несколько перестраивает мышление в части рынка. А это - самое главное.
Я получил от форума много нового как раз не в описаниях ТС, а в чём-то, что крайне трудно выразить словами. Чего не найдешь в правилах ТС и не переложишь ни на Easy, ни на MQL.
======
Отдельная благодарность Брайту за его содержательные и доброжелательные комментарии к постам членов первой группы.
  Форум: Административные, организационные и общеознаком... · Просмотр сообщения: #12645 · Ответов: 65 · Просмотров: 42.685

BQQ
Отправлено: 17.4.2008, 9:45


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


Цитата(VladMih @ 16.4.2008, 14:11) *
1. А нет желания сначала разобраться с тем что такое 2В?
Это как раз то, о чём я написал в ветке по диверам.

2. Параметр Nbars - введён на будущее и возможно будет одним из критерием "устаревания" актуальности паттерна, когда цена задержится над пробитым уровнем на Nbars>= какой-то величины.

3. Значит, что она открылась ниже хая пробоя при 2В вниз,
желательно и ниже уровня HL1. При НТ - наоборот.

P.S. "Остальные персонажи" - мутно. Всё там сформировано.

1. Желание разобраться, что такое 2В у меня есть.
Но вам-то нужно, чтобы было реализовано не моё понимание 2В, а именно ваше, понимание заказчика. Можно по разному понимать 2В - вы же сами приводили пример другого понимания с другого форума.
Как раз это и написано вами в ветке о диверах - умение слышать заказчика как основное качество программиста-исполнителя.
Это накладывает на вас обязанность сформулировать правила чётко и однозначно (чтобы это был именно алгоритм). Дело это как правило итерационное, заказчика раздражает тупость программиста, задающего допвопросы и добивающегося той самой однозначности. Программиста раздражает неспособность заказчика сразу сформулировать - чисто рабочие моменты.

Но тут уж ничего не поделаешь. Программист не имеет права догадываться о смысле формулировки, которая кажется заказчику однозначно понимаемой. Характерный пример - уточнение понятия Nbars.

2. Уточнение Nbars.
Вы определили Nbars как "количество баров НАД уровнем пробоя при 2В вниз".
Что значит "бар над уровнем"? Лоу бара над уровнем? Закрытие бара над уровнем? Хай бара над уровнем?
Что значит "количество"? Общее количество или количество баров, которые подряд над уровнем, т.е. между ними нет бара, который не "над уровнем"?

3. Что такое "хай пробоя"?
Если понимать слова "Значит, что она открылась ниже хая пробоя при 2В вниз" как "открылась ниже хая свечи, хай которой впервые превысил HL1", так это всегда так будет за исключением тех случаев, когда свеча, впервые проколовшая уровень HL1, не имеет верхней тени.
==============
Цитата
"Остальные персонажи" - мутно. Всё там сформировано


Имеем уровень HL1 - хай первой вершины. Имеем достаточный откат otp.
В момент первого возрастания цены до уровня HL1 цена равна HL1, и мы ещё не знаем ни HL2, ни HL2мах, ни Nbars.
Никто из них еще не сформировался.
============
ВладМих, честное слово, я над вами не издеваюсь.
Дело в том, что именно так и происходит обычно согласование задания при заказной работе. Это согласование само по себе требует труда как от исполнителя, так и от заказчика.
Более того, бывало и так, что заказчик после согласования задания отмечал за рюмкой чая, что его собственное понимание вопроса углубилось, так как исполнитель задавал "детские" вопрсы, что стимулировало заказчика еще раз взглянуть на то, что представлялось ему "самоочевидным".

У меня было так с заказчиком, который заказывал программу для определения параметров вдоха/выдоха человека.
Там есть такой параметр как "объем выдоха за первые полсекунды форсированного выдоха". Я спросил - какой момент считать началом выдоха? Дело в том, что датчик скорости потока, через который обмеряемое тело дышит, никогда ноль не показывает. И где начало выдоха? Врач задумался, ответил через неделю и сказал. что прояснение этого понятия ему самому было весьма полезно.
  Форум: Тусовка программистов и их гостей · Просмотр сообщения: #12415 · Ответов: 10 · Просмотров: 7.463

BQQ
Отправлено: 17.4.2008, 8:51


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


Так это ровно как раз то, о чем я и писал!
Основной недостаток многих программистов - принцип "дадим заказчику не то, что он просит, а то, что ему надо". все остальные, как вы правильно заметили, - вполне преодолимы или терпимы.

Из меня это выколотила именно работа на заказ. Причем - программирование в тех предметных областях, где я ничего не понимал.
Заказчик всегда лучше знает, что ему надо.

Другое дело - такая организация работы требует очень чёткой формулировки алгоритма на русском языке со стороны заказчика. Так как надеяться на то, что программист что-то поймет сам - невозможно.
  Форум: Тусовка программистов и их гостей · Просмотр сообщения: #12409 · Ответов: 10 · Просмотров: 7.463

BQQ
Отправлено: 16.4.2008, 11:37


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


1. Как программист, имеющий опыт работы на заказ, считаю широко представленный в начале ветки напряг между ВладМихом и Bearushka (медведик?) характерным примером работы, которая началась без ТЗ. Точнее, поскольку заказчик изначально совпадал с исполнителем, ТЗ было никому не ведомо.

Поэтому предлагаю напрячься и на русском языке сформулировать алгоритм обнаружения дивергенции (абсолютно не важно, чего с чем!!!). Пусть цены и стохастика.
ВладМих от конструктивного сотрудничества не откажется. Или кто другой, опытный в практике торговли по диверам.

Только после формулировки алгоритма на русском языке можно его программировать!!!
Плюс еще проверки на общность понимания этого алгоритма на русском (который не очень для записи алгоритмов подходит) для заказчика и программиста (т.е. для трейдера и программиста).

2. конструктивно по п.1.
Нет никакой сложности найти экстремум как цены, так и индикатора. Проблема в правильном сопоставлении экстремумов. Поскольку сильный интеллект заложить трудно (хотя бы на первом этапе), предлагаю ограничиться полумерами - опираться на экстремум индикатора и искать экстремумы цены в некотором временном промежутке около экстремума индикатора.

3. Есть понятие существенного экстремума в распознавании образов, обнаружении сигналов и т.п. прикладных областях. А именно: минимум между двумя существенными максимумами функции обязательно должен быть ниже нижнего из этих максимумов не менее чем на ...
В противном случае рассматривается как существенный только больший из этих максимумов.
Предлагаю проверять экстремумы (как индикатора, так и цены) на существенность. Значение порога для признания экстремума существенным естественно вычислять для стоха в абсолютных цифрах, так как его масштаб фиксирован. Для цены хочется привязать этот порог к волатильности, например к ATR за несколько баров.
============
Приглашаю откликаться опытных глазомерных обнаружителей дивергенций, в первую очередь НачТаможни. Нам надо вербализовать ваш опыт. А запрограммировать можно всё, ясно изложенное на русском (это вопрос вложенной трудоемкости и немного - вопрос адекватности применяемого языка программирования, но в данном случае язык достаточен) - это принцип заказных программистов!
  Форум: Тусовка программистов и их гостей · Просмотр сообщения: #12354 · Ответов: 23 · Просмотров: 15.221

BQQ
Отправлено: 16.4.2008, 10:03


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


Цитата
Вход с рынка 1,5844. ТП 1,5836 СЛ 1,5856+спред. Ждём-с

Дождались, сработал ТП из поста №98
  Форум: Самые первые пробы новичков · Просмотр сообщения: #12341 · Ответов: 4122 · Просмотров: --

BQQ
Отправлено: 16.4.2008, 9:51


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


Уровень 1,5846
Время 10:36

Стох М5 развернулся в перекупленности. Стох М15 развернулся в перекупленности.
До ТЕ чуть меньше 40 пунктов.

Вход с рынка 1,5844. ТП 1,5836 СЛ 1,5856+спред. Ждём-с
  Форум: Самые первые пробы новичков · Просмотр сообщения: #12340 · Ответов: 4122 · Просмотров: --

BQQ
Отправлено: 14.4.2008, 10:15


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


Не совсем понял вопрос
Цитата
Архив в формате Омеги при подключении через ДДЕ скачивать не нужно?

Подключение по DDE пополняет архив ГлобалСервера текущими котировками.

Автоматическое восполнение дыр не производится (как я понял их описание). То есть надо или постоянно держать комп "под парами" или начинать рабочий день с импорта данных за ночь.

Ваша идея состоит в том, чтобы искусственно заставить МТ перепринять историю путем её уничтожения?
Надо проверить, но пока не вполне представляю, как.
  Форум: Omega (Омега) + Tradestation · Просмотр сообщения: #12200 · Ответов: 20 · Просмотров: 12.685

BQQ
Отправлено: 11.4.2008, 14:34


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


Удалось достичь работы в реальном времени
связки МТ4->MetaServer RT 2.0 Pro build 2.0.0.2 -> GlobalServer -> Omega TradeStation.

1. Дистрибутив MetaServer (ломаный или с честным ключевым файлом - не знаю) брался по ссылке
http://www.adamaz.ru/programs/20-professio...gramma-mt4.html

Ссылка безопасна (не запускает скачивание автоматически), дистрибутив (RAR-архив) весит 1,5 Мб.

2. Установка собственно MetaServer - строго по инструкции, входящей в комплект загрузки. Там всё просто, только не забыть рестартовать MetaServer после указания ему ключевого файла.

3. Настройки GlobalServer - по хелпу к MetaServer .
Внимание 1 В момент настройки GlobalServer лучше, чтобы Omega TradeStation не была запущена - может капитально сойти с ума.
Внимание 2 Настройка GlobalServer выполняется его мастером настройки. Внимательно читайте предупреждение при старте мастера настройки, иначе он снесёт вам ваш имеющийся архив данных, и всю историю придется импортировать заново.

Устанавливаем источник данных DBC SubServer и вообще делаем всё, как написано в хелпе.
Включая активацию соответствующего Symbol collection template (он будет потом источником некоторого неудобства).

4. редактируем файл конфигурации MetaServer'а.
Выбираем существующий символ в главном окне MetaServer и правой мышью жмем Edit selected, появляется окно конфигурирования символа.
а) В файле конфигурации из комплекта загрузки имя DDE-сервера прописано как МТ. У меня (МТ от Альпари, поток данных демо-сервера Альпари) заработало получение данных из МТ4 в MetaServer после смены имени DDE-сервера на МТ4. Что естественно - имя DDE-сервера есть имя приложения в операционной системе. Будьте внимательны - имя приложения может быть изменено поставщиком МТ4 при его привязке к конкретному брокеру.
б) Строго соблюдаем совпадение имени символа в портфеле GlobalServer с именем в соответствующем поле окна конфигурирования символа. Пробелы и тип тире в имени, если они есть, - значимы.
в) Большинство пользователей хранит в архиве данных GlobalServer только цены bid. Поэтому естественное желание - прописать в окне конфигурирования символа только получение bid (но не Ask).
Так вот, надо прописать и Ask тоже. Без этого получаемые данные будут проигнорированы GlobalServer'ом.
Симптом - в закладке Performance GlobalServer покажет в Quotes received - постоянно растущее число, а в Quotes processed - вечный ноль.
Это и есть то самое неудобство от Symbol collection template. В нем прописано получение данных Ask. Если поля Ask нету - то и данные bid игнорируются (не согласованы с темплетом)

Новые символы добавляем и конфигурируем аналогично.
======================
Внимание 3 - нигде не написано!
Правильный порядок включения:
- сначала GlobalServer, на подсказку отвечаем Start Online
- дождаться старта MetaServer , который должен запуститься автоматически
- потом Omega TradeStation и нужный workspace.

Если запустить MetaServer руками, а потом GlobalServer, то они не свяжутся (во всяком случае, у меня не связывались).
Если запустить Omega TradeStation раньше, то график не будет обновляться, хотя данные в GlobalServer из MetaServer будут поступать (во всяком случае, у меня не обновлялись).

Эти последние наблюдения по порядку включения обошлись мне в примерно три часа ломания головы и тыкания в кнопки.
  Форум: Omega (Омега) + Tradestation · Просмотр сообщения: #12124 · Ответов: 20 · Просмотров: 12.685

BQQ
Отправлено: 11.4.2008, 10:02


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


Спасибо, доселе не знал функциональности кнопки "Цитата".
  Форум: Самые первые пробы новичков · Просмотр сообщения: #12107 · Ответов: 4122 · Просмотров: --

BQQ
Отправлено: 10.4.2008, 9:02


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


По моей единственной и утренней для Aldridge сделке у нас есть расхождение в трактовке:
- Aldridge отметил дивер на М5 и увеличил цель;
- я оставил ТП обычным, так как дивер еще только формировался, но не был завершен.
==========
В этот раз я был неправ.
  Форум: Самые первые пробы новичков · Просмотр сообщения: #12045 · Ответов: 4122 · Просмотров: --

BQQ
Отправлено: 9.4.2008, 10:19


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


Уровень 1,5739
Повторная отработка (первая - полчаса назад).
Стох М5 побывал в перекупленности и вышел из нее.
Стох М15 в перекупленности.

ТЕ на М5 1,5703, ТЕ на М15 1,5704

Вход 11:03 Мск с рынка по цене 1,5737.
ТП установлен на 1,5727, так как есть шансы на усиливающую сигнал дивергенцию на М5, но сам дивер не сформирован на момент входа.
==============
Пока отписывался - стало ясно, что профит недобран, но на момент входа не видел причин увеличить цель.
===
Пост отредактировал, была опечатка в уровне ТП.
  Форум: Самые первые пробы новичков · Просмотр сообщения: #12002 · Ответов: 4122 · Просмотров: --

BQQ
Отправлено: 9.4.2008, 9:12


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


1. Общеизвестная (но лично мной не пробованная) связка МТ-->MetaServer-->GlobalServer.
Я этим просто не занимался, мне Квотрума хватало.
Ваш запрос пнул меня в этом ранее заброшенном мной направлении.

Сейчас попробую добиться работы от бесплатной версии MetaServer. К сожалению, сейчас на сайте разработчика нет скачивания этой программы (или я не нашел?). Скачал в другом месте, но системные работы на моем компе возможны не ранее пятницы. О результате (даже об отрицательном) отпишусь.

2. Вставка истории вручную в ГлобалСервер довольно проста. Практически все ДЦ имеют архивы котировок в формате xpo, используемом ГлобалСервером. Тупо жмем на пункт меню Импорт, и всё далее само делается.
Собственно, так и поступает Квотрум - его автоматическая подкачка истории есть некий скрипт, имитирующий нажатие мышью нужных кнопок на ГлобалСервере.
Кстати, именно поэтому пользователям Квотрум рекомендуется (хотя это и не есть строгий запрет) оставить мышь в покое во время подкачки истории.

3. про "у меня в библиотеке 68 инструментов и среди них ни одного с Форекса
у вас так же?" - недопонял вопрос. В какой библиотеке? В Symbol Portfolio ГлобалСервера?
У меня там есть форекс, а как же иначе жить:wacko: ?
==========
Число 68 навело меня на мысль: проверьте, как установлен у вас фильтр на закладке Symbol Portfolio ГлобалСервера. У меня одно время ГлобалСервер всё время при старте устанавливал фильтр в положение All Stocks и, естественно, показывал именно все акции. Потом привык и сейчас сам при старте встает в положение All Forex.
  Форум: Omega (Омега) + Tradestation · Просмотр сообщения: #11996 · Ответов: 20 · Просмотров: 12.685

BQQ
Отправлено: 8.4.2008, 9:42


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


1. У меня есть подключение реалтайм ГлобалСервера к Квотрум форексайтовскому.
Могу прислать настройки и т.п. Но поток, естественно, форексайтовский.

2. Правильно ли я вас понял, что вам нужно подключить реалтайм какой-то определенный поток котировок? Чей именно?
Дело в том, что поставщики потоков стали теперь сами лепить программы-посредники к ГлобалСерверу, я натыкался на это при чтении Интернета.

3. Перечитал описание Квотрума. Через ДДЕ он работает (как я понял) только в сторону передачи котиовок, а не приема. Это и естественно: распространяя бесплатную программу реалтайм подключения к Омеге, форексайт замнивает клиентов именно к себе.

4. Если есть ДДЕ-источник котировок, то можно направить его в ГлобалСервер через программу с именем MetaServer, но бесплатная версия её может работать только с двумя парами валют, а ломаную я пока толком не искал (мне не надо было). Хотя видел объявления о продаже MetaServer за 2 или 3 WMZ, т.е. явно ломаный дистрибут.
==============
Если вы укажете, чей именно поток вы хотите использовать, могу поспрашивать знакомых финансовых компьютерщиков.
  Форум: Omega (Омега) + Tradestation · Просмотр сообщения: #11952 · Ответов: 20 · Просмотров: 12.685

BQQ
Отправлено: 7.4.2008, 11:23


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


"Вы хочете стохастика - их есть у меня"

Разберем входящую в стандартный комплект поставки стратегию с именем Stochastic Crossover.
Пусть у нас работают Жлобальный Сервер и собственно Омега.
====================
Первая наша задача - понять, как устроена эта стратегия.
Запустим (пункт меню Go Омеги или ГлобСервера) приложение TradeStation StrategyBuilder, в списке стратегий (по алфавиту) найдем и выделим Stochastic Crossover, после чего нажмем кнопку справа Edit.

Откроется окно с пятью закладками. По порядку:
General. Кроме тривиальных имени стратегии и примечания к имени тут задается важный параметр - максимальное число баров назад, которые требуются стратегии для работы. Например, если в стратегии есть простая средняя на 22 бара, то требуется по меньшей мере 22 бара назад для того, чтобы стратегия смогла работать.
Важность этого параметра в том, что при его неправильном задании вы можете потерять много времени при оптимизации, так как сообщение об ошибке выработается только при фактическом запросе бара вне указанных пределов, а все промежуточные результаты будут потеряны.
Signals. самая интересная закладка. Здесь задаются сигналы, применяемые в стратегии, и порядок их применения. Порядок регулируется кнопками Move Up, Move Down. Птички около сигналов показывают, какие решения принимает этот сигнал. В рассматриваемую стратегию входят сигнал Stochastic Bull Crossover (в виде сокращения Crss), генерирующий вход в лонг, и сигнал Trailing Stop LХ, генерирующий выход из лонга.
К моему удивлению, встроенного сигнала с выразительным именем StopLoss в этом списке нет... ag.gif
Inputs. Закладка задает значения параметров используемых сигналов. По умолчанию имя параметра конструируется из имени сигнала и имени параметра внутри сигнала. В данном случае имя параметра Stochastic_Length построено по правилам, а имя параметра OverSold_Level - нет. Кнопка Reset устанавливает параметру значение по умолчанию (то, которое прописано в тексте сигнала на Изи). Действие кнопки Combine достаточно сложно и в этом посте не рассматривается (тем более, что в данной конкретной стратегии применение этой кнопки бесмысленно).
Pyramiding - разрешает/запрещает повторный вход. обращу внимание на то, что разрешение на повторный вход может быть частичным: разрешается открытие сделки в том же направлении, что и уже открытая, но по другому сигналу.
Position. Устанавливает максимальные значения открытых лотов и разрешенных входов. Значения по умолчанию установлены с большим запасом - не трогайте.

Так как наша задача - не изменить стратегию. а сперва понять, как она устроена, мы ничего менять не будем. полезная информация для нас - имена сигналов на вход и на выход.
Теперь мы закрываем TradeStation StrategyBuilder и запускаем (пункт меню Go Омеги или ГлобСервера) EasyLanguage Power editor.
В редакторе открываем сигнал Stochastic Bull Crss (внимание, открываем именно сигнал, выбор типа открываемой программы - списком Select Analysis type вверху окна) и смотрим текст в попытке уловить торговую идею автора.

На всякий случай привожу текст.
Код
{*************************************************
******************
Description    : Stochastic Crossover Long Entry
Provided By    : Omega Research, Inc. (c) Copyright 1999
**************************************************
******************}

Inputs: Length(14), OverSold(30);
Variables: KLine(0), DLine(0);

KLine = SlowKCustom(High, Low, Close, Length);
DLine = SlowDCustom(High, Low, Close, Length);

If KLine Crosses Above DLine AND KLine < OverSold AND DLine < OverSold Then
    Buy ("Stch") This Bar on Close;


Из текста такого размера уловить идею можно.
Сигнал имеет внешние переменные (параметры) Length и OverSold.
Внутренние переменные KLine и DLine хранят вычисленные функциями SlowKCustom и SlowDCustom значения главной и сигнальной линий стохастика.
Решающая часть сигнала ищет ситуации, когда главная линия пересекает сигнальную, при этом обе они ниже уровня OverSold. При нахождении такой ситуации сигнал покупает по цене закрытия бара. Это - единственный вход рассматриваемой стратегии (и только в лонг!)

Аналогично смотрим сигнал Trailing Stop LХ.
Код
{*************************************************
******************
Description    : Trailing Stop Long Exit
Provided By    : Omega Research, Inc. (c) Copyright 1999
**************************************************
******************}

Inputs: Length(3), ShowText(False);
Variables: OrderPrice(0), StopText(0);

OrderPrice = LowestFC(Low, Length);

ExitLong ("Trl") Next Bar at OrderPrice  Stop;

If ShowText AND LastBarOnChart Then
    StopText = ShowLongStop(OrderPrice);


Сигнал имеет один содержательный параметр Length.
Из его текста видим, что сигнал вычисляет наименьший лоу за Length баров назад функцией LowestFC(Low, Length) и устанавливает на следующий бар ордер по этой цене.
Замечание:Рассеяно недоумение по поводу отсутствия стопа: так устроенный трейлинг исполняет и функции стопа, так как при старте сделки устанавливается на минимум из нескольких последних лоу.
Важное замечание: в этом месте я испытывал трудности при переключении мозгов между программированием на Изи и МКЛ. Дело в том, что ордер, установленный советником на МКЛ действителен до отмены или до исполнения. А на Изи ордер, установленный в тексте сигнала, действует только один бар! На следующем баре сигнал принимает следующее решение.
Констатируем, что мы поняли торговую логику стратегии.
=================
Следующая задача - тестирование стратегии.
Работа трейдера в Омеге организована посредством объектов WorkSpace и Chart. WorkSpace - аналог профиля в МТ. Он содержит несколько Chart.
Chart - аналог графика в МТ, но более сложно устроенный. Один Chart может содержать графики нескольких торгуемых валют (обычно или одна валюта и несколько таймфреймов или один таймфрейм и несколько валют). Для этой стратегии нам нужен простой Chart с всего одной валютой и одним таймфреймом.

Создаем новый Chart в каком-либо WorkSpace.
Разумно организовывать WorkSpace либо по принципу одна валюта - один WorkSpace, либо по принципу - одна торговая идея - один WorkSpace. Я держу разные WorkSpace для исследования пробойных, трендовых и шумовых торговых идей.

Изучаемая стратегия трендовая и только лонг. Поэтому, предвкушая хороший результат, откроем на нашем чарте Евро-дневки. После этого поставим на чарт (правой кнопкой мыши или грячей клавишей F7) стратегию.
Чарт приобретет примерно такой вид.
Прикрепленное изображение

Буквы Stch и Trl рядом со стрелочками входа и выхода показывают имена сигнала, котрый сделал это действие. Вы найдете эти буквы в Изи-тексте сигналов в операторах ExitLong и Buy.

Для лучшего понимания можно одновременно установить индикатор, но надо не запутаться в стохастиках - в Омеге их три штуки. Для незапутывания надо изучить по Изи-тексту индикаторов, какой из индикаторов использует те же функции , что и наш сигнал.
=====================
Разглядывание отчета тестера стратегий.
В Омеге жмём меню View-> Strategy Performance Report
Открывается отчет тестера с 11 (!) закладками.
Главная закладка первая - Summary.
На этой закладке все слова, в общем, понятны.
Детальный анализ отчета - не в этом посте, просто отчет очень подробный.

Полезная возможность Омеги - экспорт отчета (кроме графиков) в виде файла Excel. Я экспортировал отчет, но движок форума не разрешил загрузить xls-файл. Пришлось зарарить. Распаковывайте и разглядывайте отчет.
======================
Важное замечание: я уже писал, что можно без программирования менять логику стратегии в рамках общей идеи. И вот пример: вместо трейлинга по сигналу Trailing Stop LХ можно использовать выходы по StopLoss/TakeProfit или превратить стратегию в переворотную добавлением сигнала Stochastic Bear Crss (он тоже входит в стандартную поставку).
Прикрепленный файл  StochBullEuroDay.rar ( 17,33 килобайт ) Кол-во скачиваний: 84
  Форум: Omega (Омега) + Tradestation · Просмотр сообщения: #11891 · Ответов: 7 · Просмотров: 6.230

BQQ
Отправлено: 7.4.2008, 9:05


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


1. А так ли нужна подкачка данных в Глобал Сервер именно в реальном времени?
Ведь для совершения сделок всё равно надо открывать торговый терминал, для большинства из нас это МТ4.
Я пользуюсь Омегой не в реальном времени (хотя Квотерум себе установил и настроил) для проверки торговых идей, подбора параметров индикаторов и для разглядывания в выходные общей ситуации.

2. Мне известны 2 бесплатных пути подкачки данных в ГлобалСервер в реальном времени: Альпари Лоадер и Форексайт Квотерум.
Альпари Лоадер мне так и не удалось настроить в свое время. Позадавал вопросы на форуме Альпари, пополучал ответы - и отвял. Лоадер требует для работы наличия фиксированного IP-адреса у потребителя., что есть не у всех. Квотерум - не требует. Поэтому работа через прокси провайдера с квотерумом возможна, а с Лоадером - только в некоторых спецслучаях (открытие провайдером порта с каким-то номером в прозрачном режиме, а этого фиг добьешься и т.п.). Квотерум имеет достаточно интеллекта для того, чтобы автоматиченски восполнять дыры в истории.
Настройка Квотерума проста и понятна.
Дополнтельное преимущество его - наличие внятной инструкции на русском на сайте Форексайта.

Единственный недостаток Квотерума - то, что его (форексайта) поток котировок сильно выглажен. То есть при попытке применить на реале пипсовочную ТС, проверенную на потоке Форексайта, вы можете столкнуться с тем, что поток котировок вашего ДЦ будет значительно более "тенистым".
Хорошим критерием является сравнение ATR(100) на одноминутном графике во время различных сессий для вашего ДЦ и для Квотерума. Если отличие не режет глаз - хорошо.
====
В общем, сам пользуюсь Квотерумом и не жужжу.
  Форум: Omega (Омега) + Tradestation · Просмотр сообщения: #11875 · Ответов: 20 · Просмотров: 12.685

BQQ
Отправлено: 4.4.2008, 8:57


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


Цитата(VladMih @ 3.4.2008, 12:49) *
ОК. Пока всё понятно и ИНТЕРЕСНО. ay.gif Я о себе, остальные сами скажут. ab.gif
Только со сравнением кодов МАКДов не захотели меня понять.

В приведённой вами цитате моих слов см. вторую строчку. Видимо вы её "не увидели".
Там ведь огромный блок определения дивергенций вставлен, поэтому
неподготовленного человека зрительно код МАКДа под МТ просто убивает своим размером.
Я понимаю, что это и было вашей целью, но не таким же способом! ab.gif

1. За похвалу - спасибо. Особенно - про "понятно".
2. Про сравнение кодов МАКД. Непонимание взаимное. Давайте проговорим еще раз, тем более что в этой ветке я выступаю в шляпе препода, и желание правильно понять вопрос у меня очень сильное - согласно должностной инструкции препода biggrin.gif .

Если вы под "огромный блок определения дивергенций" понимаете блок, содержащий функцию start(), так этот блок никаких дивергенций в трейдерском смысле (как мы ищем дивергенции осциллятора и цены), не определяет.
Этот блок только вычисляет значение индикатора МАКД, ничего более.
И удалить там ничего нельзя без существенного изменения поведения индикатора.
Так что МАКД на МКЛ есть именно "голый МАКД", никаких бонусов.

В МАКД на ИЗИ лишнее (алерт и эксперт комментари) - именно лишнее (дополнительное, бонус), его можно удалить, и не изменится ни время вычислений, ни результат вычислений МАКД.
  Форум: Omega (Омега) + Tradestation · Просмотр сообщения: #11758 · Ответов: 16 · Просмотров: 12.173

BQQ
Отправлено: 4.4.2008, 8:37


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


Цитата(VladMih @ 3.4.2008, 12:58) *
1. Высший пилотаж в каком смысле?
а) техническая сложность скомбинировать в Омеге? (плохо)
б) трейдерская сложность в "сочинении" таких комбинаций? (переживём ab.gif )
2. Есть ли возможность, освоив азы, просто слегка "подправлять" стандартные?
Или они, как базовые индикаторы в МТ, не редактируются?
3. ИМХО входы в лонг и шорт по многим стратегиям разные, в т.ч. и на форексе, особенно если они с применением осцилляторов.
С пробойно-отбойными ТС проще, а вот осцилляторы верх и низ в трендах и на откатах показывают по-разному.


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

Быть может, я преувеличил, и это всего лишь "средний пилотаж".
Отдельно отмечу очень полезную возможность Омеги экспортировать детальный отчет тестирования стратегии в файл Эксела. Я при попытках обследовать последствия одновременного применения двух стратегий не заморачиваюсь написанием объемлющей. а анализирую экспортированные в Эксел два отчета.

2. Практически все встроенные функции доступны в исходниках. Исключения есть, но они редки и обычно относятся к малополезному ИМХО жанру толкований показаний индикаторов (функции ExpertCommentary...)

3. За замечание спасибо, присмотрюсь. Мне раньше казалось, что лонг и шорт на форексе симметричны.
============
ВладМих, так как вы пока единственный читатель (активный), то задаю вопрос: какой пример лучше разобрать первым - реализация какой-либо классической стратегии на встроенных сигналах или пример построения стратегии на очевидно разумной идее от нуля с программированием сигнала?
  Форум: Omega (Омега) + Tradestation · Просмотр сообщения: #11753 · Ответов: 7 · Просмотров: 6.230

BQQ
Отправлено: 3.4.2008, 11:38


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


Торговая система (в Омеге их называют "стратегия") собирается из отдельных сигналов.
Сигнал - результат программирования на языке Easy торговых правил.
Именно наличие этого промежуточного слоя сигналов позволяет построить основанную на классических идеях торговую систему вообще без программирования, так как стандартный комплект поставки содержит большое число (порядка сотни) предопределенных сигналов.

Наличие этого промежуточного слоя позволяет также при исследовании торговой системы сравнительно просто варьировать её торговые правила, просто заменяя одни сигналы другими.
Для сигналов на вход это малооправданная практика, так как сигнал на вход соответствует торговой идее, на которой основана ТС. А для выхода трендследящие системы часто применяют трейлинг-стоп. Можно не ограничиваться сменой значений параметров, а менять логику трейлинга путем смены сигнала. Комбинировать в одной стратегии можно любое число сигналов.
Комбинирование в одной стратегии нескольких сигналов на вход и нескольких на выход позволяет исследовать вопрос диверсификации по торговым системам. Но это уже - высший пилотаж.

Если строго следовать правилу отказа от программирования, то приходится обходиться сигналами из стандартного комплекта поставки Омеги.
Набор стандартных сигналов достаточно богат, но следует отметить, что изначально Омега была разработана для фондового рынка, поэтому каждый стандартный сигнал на вход в сделку существует там в двух видах: для входа в лонг и для входа в шорт.
Лично я для себя постепенно их объединяю в двунаправленные сигналы, так как считаю раздельную оптимизацию по параметрам входа в лонг и в шорт делом на форексе вредным.
============
Первый пост немного пустоватый (хотелось ветку зачать, чтобы не засорять сетку "Программирование..."), следующий будет разбором примера.
  Форум: Omega (Омега) + Tradestation · Просмотр сообщения: #11714 · Ответов: 7 · Просмотров: 6.230

BQQ
Отправлено: 3.4.2008, 11:21


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


Цитата(VladMih @ 2.4.2008, 11:13) *
1. Не совсем корректное сравнение. В МАКДе Омеги чуток лишнего, а в МАКДЕ MQL лишнего МНОГО.
Целый большой блок дивергенций-конвергенций чего стОит?!
Корректным было бы сравнение ЧИСТЫХ МАКДов. ИМХО, конечно.

В том-то и дело, что в МАКДе Омеги "лишнее" ({Alert Criteria} и {MACD Expert Commentary}) можно убрать из текста, и индикатор будет рисоваться точно также. А в МАКДЕ MQL много неинтересного, но лишнего нет. То есть если убрать что-нибудь из функции start(), то индикатор будет работать по-другому. Первые строки функции start() вычисляют переменную limit, которая используется для того, чтобы не пересчитывать уже сосчитанные бары в прошлом.
Так что это - не лишняя часть в том смысле, что её можно убрать, но совершенно лишняя в том смысле, что она не имеет отношения к правилам вычисления индикатора.

И отсутствие таких мест - сильное преимущество Easy над MQL.
Можно сказать так: на Easy достаточно написать, что именно ты хочешь вычислить, а на MQL приходится писать еще и кое-что про то, как это вычислять.

Цитата(VladMih @ 2.4.2008, 11:13) *
2. "#property indicator_separate_window" означает отображение индикатора в отдельном окне под графиком (это я для тех, кто хуже меня рубит в этой ботанике ab.gif ), но в МТ есть возможность такой же индикатор нарисовать и прямо по цене. Это очень полезная способность и если бы я умел программировать нормально, то обязательно ею воспользовался. Я пробовал, но не справился с приведением значений к цене, требующемся на многих индикаторах в подобной ситуации чтобы линии индикатора уходили от цены на разумное расстояние на разных инструментах.
а) есть ли такая возможность в Омеге?
б) нет ли больше таких "подводных" камней из-за "упрощенчества"?

В Омеге есть возможность выставлять без вмешательство в текст индикатор в любое окно: на цену, на окно, где уже стоит другой индикатор, на окно цены другого инструмента (это не шутка, я часто пользуюсь такой возможностью: ставлю, например, стохастик с часовок и стохастик с 15 минут в одно окно и долго разглядываю).
Основная проблема при совмещении разных графиков в одном окне - упомянутый вами вопрос масштабирования. Я не вполне понимаю, как разумно проделать то, о чем вы говорите - нарисовать MACD "прямо по цене". то есть проблемы здесь не в программировании, а в существе задачи (если я правильно понял вопрос).

Настройки масштабирования индикатора задаются при его выставлении на график. Появляющееся при этом диалоговое окно имеет 4 закладки: Inputs, Style, Scaling, Properties.
Inputs задает значения внешних параметров индикатора, которые объявлены в его тексте в операторе Inputs.
Style задает цвет и стиль линий.
Scaling задает тип масштабирования. Для индикаторов, имеющих размерность и смысл цены (например, ЕМА и родственники) и рисующихся в том же окне, что и цена, надо выбирать масштабирование "same as symbol". Для индикаторов, имеющих границы, типа RSI, надо выбирать "user defined" и явно указывать границы. Для RSI от 0 до 100 и т.п.
Properties задает, на каком инструменте будет вычисляться индикатор (напомню, что в Омеге в одном chart можно размещать несколько инструментов) и в каком окне рисоваться.

Цитата(VladMih @ 2.4.2008, 11:13) *
3. Стартовые строки описания переменных в МТ написать не трудно, зато они выполняют одну очень полезную функцию - этими описаниями можно выносить любые переменные во внешние настройки. Это даёт возможность оперативной переподстройки индикатора.
А главное - в МТС это совершенно развязывает руки по оптимизации, которая возможна по любому количеству внешних параметров.
Как с этим делом в Омеге?

Абсолютно также. Переменные, объявленные оператором Inputs, являются внешними. Для индикатора можно их изменить во время работы, щёлкнув правой кнопкой мыши на любом месте графика и выбрав в появившемся контекстном меню строку "Format Analisys Techniques..." - вторая сверху строка меню.
Если речь идет о внешних параметрах не индикатора, а сигнала, участвующего в ТС, то по ним можно оптимизировать ТС.
  Форум: Omega (Омега) + Tradestation · Просмотр сообщения: #11712 · Ответов: 16 · Просмотров: 12.173

BQQ
Отправлено: 2.4.2008, 9:15


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


EasyLanguage отличается от "нормальных" языков программирования двумя особенностями.
1. Общее для всех "торговых" языков наличие переменных, представляющих из себя наращивавемые массивы, где с каждым новым баром появляется новое значение.
2. Язык разрабатывался как Easy, т.е. сведены к минимуму (я вообще пока не нашел) требующиеся от программиста действия для указания второстепенных операций вспомогательно-обеспечивающего типа.
Программисты меня поняли, для новичков (для которых, собственн этот пост и пишется) приведу сравнение текста программ индикатора MACD для МТ4 и для Омеги.

В EasyLanguage программы бывают разных типов. На первых порах и для форекса интересны функции, индикаторы, сигналы. Отмечу, что функция, индикатор и сигнал могут иметь совпадающие имена, система разберется.
Для Омеги рисование индикатора MACD обеспечивается несколькими програмами.

Собствено рисование индикатора обеспечивается индикатором
Код
{*************************************************
******************
Description    : This Indicator plots MACD
Provided By    : Omega Research, Inc. (c) Copyright 1999
**************************************************
******************}

Inputs: FastMA(5), SlowMA(34), MacdMA(5);

Plot1(MACD(Close, FastMA, SlowMA), "MACD");
Plot2(XAverage(MACD(Close, FastMA, SlowMA), MacdMA), "MACDAvg");
Plot3(Plot1 - Plot2, "MADiff")
;
{Alert Criteria}
If Plot3 Crosses Over 0 Then
    Alert("MACD has generated a bullish alert")
Else
    If Plot3 crosses under 0 Then
        Alert("MACD has generated a bearish alert");

{MACD Expert Commentary}
#BeginCmtry
    Commentary(ExpertMACD(Plot1));
#End;


Обязательные строки здесь кончаются строкой
Plot3(Plot1 - Plot2, "MADiff")

Дальше идут строки, создающие некие выскакивающие предупреждения при пересечении нуля и вызывающие функцию, формирующую развернутые текстовые комментарии для непонятно кого.
Это - "паньски вытребеньки".
Итого обязательных строк 4 - первая объявляет входные параметры и задает им значения по умолчанию (которые потом можно будет при использовании поменять), три последующие рисуют три линии, вызывая для их вычисления функции MACD и XAverage.

Функция XAverage (встроенная) вычисляет экспоненциальное среднее.
Функция MACD вычисляет разность экспоненциальных средних и выглядит так
Код
{*************************************************
******************
Description: Moving Average Convergence Divergence
Provided By: Omega Research, Inc. (c) Copyright 1999
**************************************************
******************}

Inputs: Price(NumericSeries), FastMA(NumericSimple), SlowMA(NumericSimple);

MACD = XAverage(Price, FastMA) - XAverage(Price, SlowMA);


Как видим - ничего лишнего.

/////////////////////////////////////////////

Рассмотрим индикатор MACD для МТ4, приведенный как пример текста индикатора.
Код
//+------------------------------------------------------------------+
//|                                                  Custom MACD.mq4 |
//|                      Copyright © 2004, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2004, MetaQuotes Software Corp."
#property  link      "http://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 2
#property  indicator_color1  Silver
#property  indicator_color2  Red
#property  indicator_width1  2
//---- indicator parameters
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
//---- indicator buffers
double     MacdBuffer[];
double     SignalBuffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexDrawBegin(1,SignalSMA);
   IndicatorDigits(Digits+1);
//---- indicator buffers mapping
   SetIndexBuffer(0,MacdBuffer);
   SetIndexBuffer(1,SignalBuffer);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")");
   SetIndexLabel(0,"MACD");
   SetIndexLabel(1,"Signal");
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
  {
   int limit;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- macd counted in the 1-st buffer
   for(int i=0; i<limit; i++)
      MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- signal line counted in the 2-nd buffer
   for(i=0; i<limit; i++)
      SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- done
   return(0);
  }


Читатель легко(?) найдет внутри этого текста собственно вычислительную часть - те же 2 строки.
Одна из них
MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_
CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
вычисляет разность экспоненциальных средних и соответствует строке в функции MACD на Easy.
Другая
SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalS
MA,0,MODE_SMA,i);
вычисляет сигнальную линию и соответствует строке в индикаторе MACD на Easy.

Три строки в начале объявляют входные параметры и задают начальные значения, а практически весь остальной текст для МТ4 решает системные задачи: объявляет буфера для рисования, связывает буфера с индексами функцией SetIndexBuffer и т.п.

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

А Easy избавляет прикладного (торгового) программиста от необходимости писать те части кода, которые не соответствуют логике разрабатываемого индикатора.
Особенно тяжелое впечатление производит явно выписанный цикл по барам в программе на MQL.
Ведь на самом деле все предыдущие значения уже вычислены, и на практике этот цикл почти всегда состоит из одного оборота. Но выписывать его на MQL нужно, а на Easy - нет.

===============================
Задачей этого поста было убедить читателя в том, что даже непрофессионал может создавать на Easy индикаторы и торговые системы самостоятельно с нуля (от торговой идеи), в то время как на MQL большинство непрофессионалов вынуждены ограничиваться правками в готовых текстах.

При разработке индикаторов преимущство Easy над MQL сравнительно невелико, гораздо больше оно при написании торговых систем, но об этом - в будущей ветке "Системостроительство"
  Форум: Omega (Омега) + Tradestation · Просмотр сообщения: #11632 · Ответов: 16 · Просмотров: 12.173

BQQ
Отправлено: 31.3.2008, 8:40


Мимо проходил
*

Группа: Пользователи
Сообщений: 47
Регистрация: 29.11.2007
Пользователь №: 223


1. Я нашел за выходные русский перевод именно учебника. То есть систематически от начала.
Но весит - 2,6 Мб в архиве (картинок много). Можно его положить, а английский оригинал - для оригиналов.

2. Установка и настройка - в идеале иметь такую тему отдельно. Но здесь есть препятствие - я уже упоминал. Все дистрибутивы Омеги - ломаные, причем по-разному ломаные. Трудно дать совет именно по установке. А сам дистрибутив большой (мой около 400 Мб), его сюда не положишь для того, чтобы канонизировать именно этот дистрибутив и потом именно про него всё и объяснять.
Так что устанавливать придется самостоятельно.
А настройки - они и в вашем большом архиве инструкции описаны как их делать. А я могу поделиться тем, какие настройки хороши для форекса. Я себе поставил настройки так, чтобы отчет тестера показывал результат в пунктах.

3. Вступление напишу (но не сегодня), для злобной рекламы выложу одну и ту же программу для МТ4 и для Омеги - пусть сравнят размер текста и, главное, интуитивную понятность. Помянутые вами живые консультации - так я готов ответить на почти любой вопрос.
Но по себе знаю, что если ты совсем уж начинающий - то не знаешь слов для того, чтобы задать вопрос. И доброжелательный текст более опытного человека "я отвечу на любой вопрос" звучит как издевательство.

4. Ваще пожелание уделить внимание установке, настройке и использованию - сам понимаю, что так лучше. Но про установку - уже отметил трудности. А про использование - не могу сообразить, что написать. Вроде просто - бери и пользуйся...
Как вы представляете, что можно было бы написать про использование?

5. В ветке "золотой софт" я писал, что осную ветку "системостроительство в Омеге", если в ветке программирования будет жизнь.
Передумал: осную её завтра (нужно время написать хороший первый пост с примером), так как характерным отличием Омеги от МТ является то, что можно ваять собственную ТС вообще без программирования.
  Форум: Omega (Омега) + Tradestation · Просмотр сообщения: #11480 · Ответов: 16 · Просмотров: 12.173

2 страниц V   1 2 >

Новые сообщения  Открытая тема (есть новые ответы)
Нет новых сообщений  Открытая тема (нет новых ответов)
Популярная тема  Горячая тема (есть новые ответы)
Нет новых  Горячая тема (нет новых ответов)
Опрос  Опрос (есть новые голоса)
Нет новых голосов  Опрос (нет новых голосов)
Закрыта  Закрытая тема
Перемещена  Тема перемещена
 

Текстовая версия Сейчас: 29.3.2024, 1:38