Рынок всегда неправ - страница 3

 

С советником еще не разбирался, но поскольку сам использую подобный код для подсчета эквити

if (AccountEquity() > beginEquity) {
      if (IsTesting()) {
         beginPrice = Bid;
         magicnumber++;
         beginEquity = AccountEquity();
      } else {
         Alert("Please refresh beginPrice, beginEuqity and change magicnumber");
      }

то в качестве второго варианта предлагаю при инициализации переменную приравнивать балансу

int init()
  {
//----
   if (IsTesting()) {
      beginEquity = AccountBalance();
   }
   return(0);
  }

тогда отпадет необходимость лишний проверять состояние депо перед запуском советника,

static double beginEquity = 200000;

потому что перед запуском советника его эквити равен балансу!

Вячеслав.


 
Winner:
Reshetov:
Если есть желание, то можно и так. Иначе средства пойдут на реинвестиции.
А какой риск не слить депо если советник открывает на всё депо позы????
Как только тестер МТ начнет поддерживать мультитрейдинг, можно будет получить эмпирическую оценку вероятности слива на исторических данных.

Пока с помощью тестера можно эмпирически оценить риск только по одиночным парам.

Аналитическую оценку риска для данной тактики на данный момент вывести не удалось.
 
Reshetov:
timbo:
YuraZ:
Очень хорошая стратегия,
...
другой вопрос в том что снятие производится через год - два
Читал какую-то книжку про форекс, сток и пр. Там в частности речь шла об работниках разного рода фондов, что, вроде бы, приумножают деньги вкладчиков, и которых принято считать профессионалами и почти небожителями. Так была там такая мысль на эту тему, что, мол, они там такие же люди как и все, ничем не лучше и не хуже, и ошибаются они не реже. Просто размер "депозита" настолько велик, что позволяет пересидеть любую просадку.
Т.е. если снятие производить не очень торопишься, а размер депозита немерянный, то нет особой разницы в какую сторону открываться - рано или поздно плюс будет.
Если ты откроешь бай на историческом максимуме или селл на историческом минимуме, то плюса придется ждать до следующего исторического экстремума. Разница и для входов в рынок и для выходов из него есть и она весьма существенна.

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

Спасибо за ответ, уважаемый г-н Решетов. Я уже тоже сам понял, что эти строки для подстраховки, что-то типа {try…catch} в других языках. Тем более, в тесте действительно ни разу не вошел в функцию Closeby

Вроде что-то у меня сотворилось для теста. Хотя до сих пор не исключены ошибки, но решил кое-что показать, что понемногу получаю. Вообще собирался это делать на финлисте (мне там уютнее), ну раз Юрий на этом форуме, то видимо начну здесь.

В принципе, то что Вы увидите это помощь в понимании как генерятся сигналы советника.

Пока я занес алгоритм советника версии 1.1. Юрий все новые и новые версии выдает, а я копаюсь как улитка. Все вроде досконально соответствует коду версии 1.1, только для sellprofit стоит значение >0.001, а не 0.01.

Тест я провожу по своему плану, так что не обессудьте. А это значит, что депо я задаю пока как 1000$ и поэтому кол-во используемых пар у меня ограниченно. Пока смотрю только в одной группе EUR. Тест ограничиваю сутками. Программа у меня сделана гибко, и конечно могу поставить продолжительность и 2 и 10 дней. Но пока мне это не важно, а важно общее понимание алгоритма. Тем более, что считается все равно долго. Тестовые сутки – полчаса обсчета, это из-за таблицы view (см. ниже). Это очень долго, но вывожу фактически все присвоения переменных в таблицу и прочее. Даже завидую тесту MQL – как у них все быстро мотает. Конечно, у них сделано все вообще профессиональнее, ну зато увидишь у них далеко не все. А у меня по крупинке – но картина как на ладони.

Некоторые пояснения. Котировки у меня приготовлены специально – это значит, что в них update дыры и др. и т.п.. Такая обработка занимает время, пока я не хочу подгружать свежие данные и диапазон исторических котировок у меня от 01/01/05 по 16/09/06. Так что тест в этих пределах и мне пока достаточно. Да, котировки forexclub, минутные и взяты с forextester.

Я предоставляю 3 таблицы, в которых можно увидеть все развитие ситуации:

1) _history - типа «Истории счета» в mql, но только открытые и закрытые ордера у меня находятся вместе, признак разделения поле [flag]. Ну там все понятно. Поле id_operation: если «1» -то это BUY/

2) _resources – здесь показан суммарные баланс, средства и профит по открытым ордерам в данный момент времени, по всем задействованным вал. парам. Тут тоже должно быть все понятно, кроме поля [ID] – это мой внутренний идентификатор даты. Я могу объяснить более подробно, если будут вопросы, но вобщем какой дате это соответствует можно увидеть в третьей таблице _view, где все подробно, а в _resources выводится итог каждой минуты.

3) _view - все очень подробно, для каждой валютной пары своя история развития сделки. Поле [Actual_price] – это Close минутной котировки. Bid, Ask я получаю +- спред (спред правда взял из Альпари, но т.к. у меня все в таблицах, могу подправить, но смысла особого не вижу, все равно все примерно). Ну а данные читать очень просто – возьмите первую версию советника и номер строки будет указателем, где и в каком месте было присвоение в переменную (например, поле [money_54] соответствует 54 строке советника, где money перерасчитывается. Если «0», то значит в этом месте и расчета не было, т.к. не было соответствующих условий) . Посмотрите поле comment, там операции документируются и соответствуют истории в таблице _history. Да, одна возможная непонятка. Поле Itog_profit это общий профит на данный момент по открытым ордерам по данной валютной паре. Поле sellprofit или buyprofit могут отличаться, т.к. в нем записываются данные только последнего открытого ордера sell или buy. Ну так в цикле <for> для списка открытых ордеров. Остальное должно быть ясным, если только не найдете мои ошибки.

Пока сам только начал смотреть. Сначала тест порадовал. Четыре раза тыкал в первый попавшийся день (я на график даже не смотрю пока) с 2 валютными парами EURUSD+ EURCHF, ставил обсчет суток и выходил в шоколаде – от 15 до 150 п. Ордера не все закрывались на конец обсчета, но общий профит был положительный. Но потом попал в день, когда итог дня закончился -80. Еще раз повторяю, что тест я прерываю и это не верно. Видимо, если тест продолжить, то будет другой результат. Но пока я смотрю так.

Этот вариант теста сродни пипсовке, а Юрий верно говорит, что его советник совсем другое, и депо маленьким не должно быть, т.к. при маленьком депо нарушается технологический процесс работы советника, ну там усреднения не проходят как надо, т.к. не хватает средств и борьба за «живучесть» из-за этого может закончиться и не положительно.

Еще раз скажу, что редкая инженерная мысль вызывало у меня такое восхищение, как советник Юрия. Очень интересный и оригинальный. Но смотрите сами – он как прекрасен, так и опасен, по крайней мере 1 версия.


С уважением, Fed

Да, еще раз: Депо 1000 $, Bl=1000, BeginPrice – текущая на datetime расчета. Цель теста – понять как генерятся сигналы.

Первый тест – 15/03/05 10:00 по 16/03/05 10:00

День этот был «новостной», но т.к. смотрим генерации сигналов (кому интересно) – то это пока все равно.

Сначала для 2 пар EURUSD и EURCHF



Файлы:
 
Теперь те же входные параметры, но взята только одна пара EURUSD
Файлы:
 

Теперь 2 пары EURUSD и EURCHF, депо 1000, bl 1000, c 15/03/05 00:00 по 16/03/05 00:00. Т.е. чуть изменено время, BeginPrice=текущей.

Файлы:
 
Ну и 1 пара EURUSD, депо 1000, bl 1000, c 15/03/05 00:00 по 16/03/05 00:00.




Ну пока перестаю завешивать mql своими творениями. Может это не интересно, может уже на этом этапе кто-нибудь найдет у меня ошибку. А так могу показать изменения расчетов в зависимости от Bl и от BeginPrice <> текущей

С уважением, Fed
Файлы:
 
FION:
Reshetov:
timbo:
YuraZ:
Очень хорошая стратегия,
...
другой вопрос в том что снятие производится через год - два
Читал какую-то книжку про форекс, сток и пр. Там в частности речь шла об работниках разного рода фондов, что, вроде бы, приумножают деньги вкладчиков, и которых принято считать профессионалами и почти небожителями. Так была там такая мысль на эту тему, что, мол, они там такие же люди как и все, ничем не лучше и не хуже, и ошибаются они не реже. Просто размер "депозита" настолько велик, что позволяет пересидеть любую просадку.
Т.е. если снятие производить не очень торопишься, а размер депозита немерянный, то нет особой разницы в какую сторону открываться - рано или поздно плюс будет.
Если ты откроешь бай на историческом максимуме или селл на историческом минимуме, то плюса придется ждать до следующего исторического экстремума. Разница и для входов в рынок и для выходов из него есть и она весьма существенна.

Чтоб такого не получилось , хорошо бы добавить несложнай теханализ, а чтоб особо не заморачиваться выбрать период - день.
Просто timbo книжку читал не внимательно. А в той самой книжке ясно сказано, что торгуют "профессионалы" строго по контртренду и чаще всего по методу усреднения издержек. Поэтому у них не может никак случиться бай даже на локальном максимуме, а селл на локальном минимуме.
 
Fed:

Спасибо за ответ, уважаемый г-н Решетов. Я уже тоже сам понял, что эти строки для подстраховки, что-то типа {try…catch} в других языках. Тем более, в тесте действительно ни разу не вошел в функцию Closeby

Действительно жаль, что MQL объектно не ориентирован. Обработчики исключительных ситуаций и самопальные обработчики событий весьма упрощают жизнь программистам, за счет того, что многие косяки заранее можно пофиксить. А пока нет ООП, приходится на алгоритмическом уровне пытаться предусмотреть различные безобразия и код не слишком кошерным получается.
 
Paha:
Здравствуйте!
Вот те бабушка и юрьев день! Шучу.
Как сказал Mathemat "по поверхностному анализу" ну очень красиво! Ни одного отрицательного значения. Поставлю тестировать в онлайн. Но вот чего не понял (может не правильно понял): Я не выключаю камп, не закрываю терминал. Будет ли выводится алерт в таких условиях, или советник будет торговать сам, как ему и положено? И что произойдет , если будет кратковременнгое отключение от инета, а потом восстановление связи? Без каких либо выключений с моей стороны?
Для меня вопрос очень важный по причине отсутствия меня возле компа как минимум 18 часов в день (Сон работа и т.п) и если в это время произойдет отключение, или я не смогу ввести новые данные. ..... ну не совсем хорошо.
Еще, если правиьно понял: Если включаешь камп или терминал, то просто нужно ввести текущие значения и все пойдет своим чередом, т.е переподключить советника?
Еще, если алерт выведен, но мы ничего не предпринимаем, советник продолжает торговать по старым настройкам или ждет ввода новых?
Если можно, очень прошу, эти моменты поподробнее!!!!
Спасибо за очередной повод поломать немного голову! (в хорошем смысле).
С уважением!!!!
Кратковременное отключение от инета никоим образом на тактику советника не влияет.

Можно вообще обойтись без всяких аллертов и перейти на полуручник, особенно если нет возможности следить за советниками. Для этого вполне подойдет Swaper_1.1. Сам принцип в том, чтобы начать новую игру (т.е. новый магик и beginPrice для всех советников), когда уровень эквити превысит предыдущий.

Т.е. когда есть возможность, смотрим на эквити. Если оно превысило прежний уровень, то:
  1. Останавливаем работу всех советников.
  2. Встречные позы на всех инструментах закрываем через "закрыть перекрытые ордеры", чтобы не потерять на спредах.
  3. Увеличиваем советникам магики на 1 и выставляем им beginPrice по текущим Bid, т.е. начинаем новую игру.
  4. Запоминаем текущий уровень эквити. Например, записываем на бумажке или в какой нибудь файл.
  5. Запускаем советников с новыми настройками.
  6. Идем на работу, по делам или по бабам.
  7. Когда опять появляется возможность глянуть на эквити и поменять настройки, то смотрим на него и если прежний уровень превышен, то переходим к п. 1. Если еще не превышен, то переходим к п. 5
Причина обращения: