[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 1069
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Проведём простейший эксперимент, доказывающий что просадка в отдельной (каждой) сделке на графике баланса/эквити НЕ ОТОБРАЖАЕТСЯ.
Напишем советник из двух строк кода:
Запустим его на D1 графике EURUSD на участке с 1 мая 2010г по 1 августа 2010г. Он должен будет купить евру по цене 1.2200 без стопа и закрыть позицию по тейку по цене 1.3000 Будем наблюдать просадку на графике баланса/эквити и на графике визуализации:
Как видим, на графике визуализации (верхнем на скриншоте) просадка видна, а на графике баланса/эквити её НЕТ. Там всего одна сделка. Посмотрим отчёт тестера:
В отчёте тестера просадка ФИГУРИРУЕТ.
Надеюсь, теперь вопрос снят?
.
Возможно, остался вопрос "ПОЧЕМУ так сделано?" Это уже вопрос не к нам, юзерам, а к разработчикам МТ4. На мой взгляд это неправильно, т.к. на графике баланса/эквити не видны пересиживания.
Коллеги, может сталкивался кто.
Существует ограничение по количеству файлов, открытых одновременно? 4 все нормально, 5 - открывается но запись в него не идет. Не могу понять в чем дело.
Есть проблема. Сделка должна открываться при пробхождении через верхнюю (buy) или нижнюю (sell) границу коридора индикатора.
double barier = 0.08; // собственно, границы относительно
R() - функция индикатора
функция проверки условия прохождения верхней или нижней границы:
int RFilter()
{
if ( R(2)> -barier && R(1) < -barier ) return (-1);
if ( R(2)< barier && R(1) > barier ) return (1);
}
По факту получаеся, что советник открывает позицию сразу при прохождении индикатором границы (без разницы какой). Если вверх - buy, вниз - sell
Есть проблема. Сделка должна открываться при пробхождении через верхнюю (buy) или нижнюю (sell) границу коридора индикатора.
...
По факту получаеся, что советник открывает позицию сразу при прохождении индикатором границы (без разницы какой). Если вверх - buy, вниз - sell
Вопрос знатокам
Могу ли создать собственный торговый инструмент для тестера?!
Заменить EURUSD30_2.fxt своим или както по другому.
metaquotes\tester\history\EURUSD30_2.fxt
пробовал создать simple_csv2fxt но тестер заменил файл на свой.
Может есть у кого то опыт создания, спасибо.
Немного увеличьте значение переменной barier
Не помогло. Могло это возникнуть в связи с ошибкой присвоения знака?
Можно погадать на кофейной гуще или еще как покамлать, т.к. явно недостаточно информации.
1. Индикатор или осциллятор:
2. Если осциллятор, то имеет ограничения или нет? Если имеет, то какие у него максимум и минимум?
3. Возможно проблемы не в коде вышеприведенной функции, а в коде ее интерпретации?
Поскольку здесь телепатов не имеется, а вся необходимая информация у Вас под грифом секретно, то каков вопрос - таков ответ. Т.е. навскидку, судя по указанной Вами информации увеличение переменной должно было решить проблему.
Можно погадать на кофейной гуще или еще как покамлать, т.к. явно недостаточно информации.
1. Индикатор или осциллятор:
2. Если осциллятор, то имеет ограничения или нет? Если имеет, то какие у него максимум и минимум?
3. Возможно проблемы не в коде вышеприведенной функции, а в коде ее интерпретации?
Поскольку здесь телепатов не имеется, а вся необходимая информация у Вас под грифом секретно, то каков вопрос - таков ответ. Т.е. навскидку, судя по указанной Вами информации увеличение переменной должно было решить проблему.
Это индикатор вот с такой формулой:
double R(int shift)}
Ограничения: (-1;1)
Это индикатор вот с такой формулой:
double R(int shift)}
Ограничения: (-1;1)
Тогда по идее Ваша функция должна работать правильно по условиям указанным в комментах:
int RFilter()
{
if ( R(2)> -barier && R(1) < -barier ) return (-1); // Короткая поза, если значение индикатора на прошлом баре выше нижнего барьера и на текущем ниже этого самого барьера
if ( R(2)< barier && R(1) > barier ) return (1); // Длинная поза, если значение индикатора на прошлом баре ниже верхнего барьера и на текущем выше этого самого барьера
return(0); // Ничего не предпринимать во всех остальных случаях.
}
Тогда по идее Ваша функция должна работать правильно по условиям указанным в комментах:
int RFilter()
{
if ( R(2)> -barier && R(1) < -barier ) return (-1); // Короткая поза, если значение индикатора на прошлом баре выше нижнего барьера и на текущем ниже этого самого барьера
if ( R(2)< barier && R(1) > barier ) return (1); // Длинная поза, если значение индикатора на прошлом баре ниже верхнего барьера и на текущем выше этого самого барьера
return(0); // Ничего не предпринимать во всех остальных случаях.
}