Здравствуйте.
Помогите, пытаюсь разместить продукт на маркете, но автопроверка выдает ошибку о том что советник не может торговать на каких то парах, хотя ограничений никаких нет, в тестере все отлично прогоняется.
Так же ошибки 130 и 145, хотя так же в коде присутствуют все проверки при открытии ордеров и модификации на уровень StopLevel
В чем может быть причина?
Примерно вот так все проверяю:
if (sl > 0 && op - sl <= MarketInfo(_symbol,MODE_STOPLEVEL) * _point) { Print("Ошибка StopLevel для StopLoss in ",TypeToString(type)," paramerts: op=",op," sl=",sl," tp=",tp," price=",MarketInfo(_symbol,MODE_BID)," lot=",lot); return (false); }
if (tp > 0 && tp - op <= MarketInfo(_symbol,MODE_STOPLEVEL) * _point) { Print("Ошибка StopLevel для TakeProfit in ",TypeToString(type)," paramerts: op=",op," sl=",sl," tp=",tp," price=",MarketInfo(_symbol,MODE_BID)," lot=",lot); return (false); }
1. Сравниваются ненормализованные цены (op-sl уже такое) - это критическая ошибка для робота, надо бросать такую привычку, а то можно невзначай влететь на бабло.
2. даже если MODE_STOPLEVEL отдаёт 0, считайте что он не менее 2-х спредов, а если и тот 0, то и не менее 2-х пунктов
3. опция: ставить (тем более близко) Sl/Tp сразу при открытии не вполне прилично ;-) Потому как не везде можно открывать сразу со стопом и к тому до момента открытия вы не знаете точно какая цена получится у позиции. Может проскользнуть и придётся пересчитывать Sl/Tp
Привет!
Уберите МаркетИнфо-стоплевел. Найдите к нему простое решение.
Допустим -Если стоплосс задан меньше 200 пипс то Принт-"нельзя такое!" и ретурн.
Обычно брокеры не дают информацию о МаркетИнфоСтоплевел.
Спред надо найти с разницы Аск и Бид, а не через МаркетИнфо. Обычно даже когда скачки спреда идут большие , то МаркетИнфо показывает меньший спред и и сделка открывается с диким спредом.
ИМХО
Всем спасибо за рекомендации. Действительно в stoplevel была проблема.
Решил проблему вот так:
stoplevel = (int)MarketInfo(_Symbol,MODE_STOPLEVEL);
if (stoplevel == 0) stoplevel = 1;

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте.
Помогите, пытаюсь разместить продукт на маркете, но автопроверка выдает ошибку о том что советник не может торговать на каких то парах, хотя ограничений никаких нет, в тестере все отлично прогоняется.
Так же ошибки 130 и 145, хотя так же в коде присутствуют все проверки при открытии ордеров и модификации на уровень StopLevel
В чем может быть причина?
Примерно вот так все проверяю:
if (sl > 0 && op - sl <= MarketInfo(_symbol,MODE_STOPLEVEL) * _point) { Print("Ошибка StopLevel для StopLoss in ",TypeToString(type)," paramerts: op=",op," sl=",sl," tp=",tp," price=",MarketInfo(_symbol,MODE_BID)," lot=",lot); return (false); }
if (tp > 0 && tp - op <= MarketInfo(_symbol,MODE_STOPLEVEL) * _point) { Print("Ошибка StopLevel для TakeProfit in ",TypeToString(type)," paramerts: op=",op," sl=",sl," tp=",tp," price=",MarketInfo(_symbol,MODE_BID)," lot=",lot); return (false); }