А цены открытия Buy и Sell хранить в переменных (ну и стопы с тейк/профитами).
Вопрос разработчикам: в МТ3 размер маржи по открытию 1 лота по любой валютной паре при бэк-тестинге всегда равен 1000$. В МТ4 это будет считаться более правильно или так и останется?
Будет считаться правильно, но с оговорками:
dBalance = dBalance + 100 * (Low[nBar] - dOpenPrice - 5 * Point) * dLotSize;
Здесь
else if(nType == 1 && High[nBar] >= dStop) // If SELL and stop loss reached
тоже спред
надо
else if(nType == 1 && High[nBar] >= dStop-5*Point) // If SELL and stop loss reached
тоже спред
И вообще, если стоплосс фиксированный в 150 пунктов, зачем вычислять размер лося, надо просто отнимать от Balance это количество пунктов.
Пока все
> И вообще, если стоплосс фиксированный в 150 пунктов, зачем вычислять размер лося, надо просто отнимать от Balance это количество пунктов.
Ну, это ведь общая стратегия. Может быть, кто-то будет динамически менять стоп лосс...
Спасибо за помощь.
С уважением,
Кварк
Я таким образом проверил парочку стратегий еще в "ранних" билдах. Идея рабочая в принципе. Советовать ничего не буду, просто поделюсь "наработанными" наблюдениями. На примере длинной позиции. Если условия срослись на каком-то баре, открываемся на следующем баре по цене Low+spread (=Ask). Закрываемся на баре, на котором срослись условия, по цене Low. Эти уровни запоминаются в двух переменных, разница между которыми даёт профит в пунктах. Деньги считать не надо и баланс тоже, в принципе не нужен (и связанные со всем этим проверки). В файле получается общий профит в пунктах +350 или -540, т.е. сразу всё становится ясно. В файл записывается ДатаВремя, тип (buy,sell), валюта, уровень открытия, уровень закрытия, профит в пунктах. Получается очень простой для анализа в Excel'e файл. И достаточно близко к реалиям. Одну стратегию я проверял неделю на демо, потом этот же кусок истории "прогнал" таким вот образом. Расхождения в 1-3 пункта по сделке. Да и тело программы-индикатора-тестера получается довольно простым и компактным. Есть только один момент, за которым надо последить. Поскольку тестер работает со статичной историей, он может открываться и закрываться лучше, чем на живом рынке - проскальзывание. Поэтому в индикаторе надо специально ухудшать условия. Т.е., например, добавить пару пунктов к уровню открытия, убрать пару пунктов от уровня закрытия.
Также, мне кажется, честнее и открываться и закрываться на следующем баре.
Если условия срослись на каком-то баре, открываемся на следующем баре по цене Low+spread (=Ask). Эти уровни запоминаются в двух переменных, разница между которыми даёт профит в пунктах. Деньги считать не надо и баланс тоже, в принципе не нужен (и связанные со всем этим проверки). В файле получается общий профит в пунктах +350 или -540, т.е. сразу всё становится ясно.
Проходили, знаем. Очень четко заметна разница: работаем по текущему бару - есть профит, например, 500pt. Пробуем работать по следующему бару - сразу почти такой же убыток, например, -500pt. Это к вопросу о важности момента принятия решения. А вот насчет проскальзывания - если работать по следующему бару хотя бы на часовике - проскальзывание вряд ли ощутишь - большинство сделок пройдут нормально. С другй стороны, часовой бар пунктов в 50 - не редкость и ждать его завершения для принятия решения не всегда правильно. Не грааль, в общем, будем искать...

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
При тестировании используется худшая возможная цена, что снимает вопрос "где брать внутренние цены бара".
Подразумевается, что каждый вписывает свои несколько строчек логики тестера, та стратегия, которую я использовал в этом примере, прибыльной не является - это всего лишь пример.
Индикатор генерирует файл (test.txt) с отчетом, пользуясь к-л программой (например, Эксель), можно построить график прибыли, также рассчитывается дродаун.
Заранее спасибо за критику :)
Кварк