Обсуждение статьи "Как опубликовать свой продукт в сервисе Маркет" - страница 32

 

Решил своего советника разместить на Маркете, в первый раз).
После добавлении файла советника xxxxx.ex5 тестер автовалидации выдал ошибку:


test on EURUSD,H1 (netting)
 2018.04.02 07:00:33   failed instant sell 0.01 EURUSD at 1.23173 [Invalid volume]

Ок, почитал мануал "Какие проверки должен пройти торговый робот перед публикацией в Маркете",
пристроил функцию проверки объем ордера на корректность CheckVolumeValue.
Что она мне выдала: min_volume==0.01    max_volume==200
Вроде у меня все правильно получается? лот объемом 0.01 корректен.

Выставил объем 0.1, потом 0.001 и даже 0.0001, получил ту же ошибку, только объем соответствующий.
Ок, выставил объем 1, после чего тестер автовалидации  выдал уже другую ошибку:

strategy tester report 151 total trades
test on EURUSD,H1 (netting)
 2016.02.01 00:39:59   current account state: Balance: 1.00, Credit: 0.00, Commission: 0.00, Accumulated: 0.00, Assets: 0.00, Liabilities:
0.00, Equity 1.00, Margin: 0.00, FreeMargin: 1.00
 2016.02.01 00:39:59   calculated account state: Assets: 0.00, Liabilities: 0.00, Equity 1.00, Margin: 1083.00, FreeMargin: -1082.00
 2016.02.01 00:39:59   not enough money [instant sell 1.00 EURUSD at 1.08316]

Получается, тестер объем принял, а вот денег не хватило. Получается, он принимает в объеме только целые числа , но для объема в 1 лот на счету д.б. миллион, а на балансе всего 1 доллар.
Продавцы бывалые), подскажите пожалуйста решение этой проблемы.

 

Rashit Ibatullin если меняете стопы чтоб небыли равны текущим. Так-же при установки отложек, стопов нужно проверять стоплевил. Мин. макс. лот само собой. Наличие средств для взятия позиции.
Это все как минимум нужно проверять.

 
Konstantin Nikitin:

Rashit Ibatullin если меняете стопы чтоб небыли равны текущим. Так-же при установки отложек, стопов нужно проверять стоплевил. Мин. макс. лот само собой. Наличие средств для взятия позиции.
Это все как минимум нужно проверять.

Стопов вообще нет, заходит по рынку. В тестере терминала - все ок.
 
Rashit Ibatullin:
Стопов вообще нет, заходит по рынку. В тестере терминала - все ок.

OrderCalcMargin
AccountFreeMarginCheck

 

автоматический валидатор в маркете выдает такую ошибку:

failed instant sell 1.50 EURUSD at 1.16278, close #2137 buy 1.50 EURUSD 1.17211 [Modification failed due to order or position being close to market]
strategy tester report 2366 total trades

у себя в терминале я не могу ее воспроизвести, пробовал разные ТФ и валютные пары, но в журнале ошибок вообще нету, может кто подскажет в чем проблема в чем может быть проблема???

 
Dmitry Melnichenko:

автоматический валидатор в маркете выдает такую ошибку:

failed instant sell 1.50 EURUSD at 1.16278, close #2137 buy 1.50 EURUSD 1.17211 [Modification failed due to order or position being close to market]
strategy tester report 2366 total trades

у себя в терминале я не могу ее воспроизвести, пробовал разные ТФ и валютные пары, но в журнале ошибок вообще нету, может кто подскажет в чем проблема в чем может быть проблема???

Уровень FreezeLevel не проверяете - если цена слишком близко к, например, уровню СтопЛосс, то СтопЛосс невозможно модифицировать. Расстояние заморозки как раз определяется уровнем FreezeLevel

 
Artyom Trishkin:

Уровень FreezeLevel не проверяете - если цена слишком близко к, например, уровню СтопЛосс, то СтопЛосс невозможно модифицировать. Расстояние заморозки как раз определяется уровнем FreezeLevel

спасибо
 

Добрый день. Столкнулся с весьма интересной проблемой при валидации. Сова ее не проходит!!!  Не удивил, подумают многие, /***ую этому правилу. Но обо всем по порядку.

Начну с того какие проверки уже есть,чтобы сразу пресечь очевидные пожелания:

1. Нехватка средств для проведения торговой операции.

2. Неправильные объемы в торговых операциях

3. Ограничение на количество отложенных ордеров

4. Ограничение на количество лотов по одному символу

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

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

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

Что я получаю в результате валидации: 

test on EURUSD,H1 (hedging)

there are no trading operations

test on XAUUSD,D1 (hedging)

there are no trading operations

test on GBPUSD,M30 (hedging)

there are no trading operations

test on EURUSD,M1 (hedging)

there are no trading operations

К чему привели мои эксперименты. Если я при проверке "Нехватка средств для проведения торговой операции" пишу про это в журнал то при валидации я получаю ответ, что получился слишком большой лог файл, оно и понятно на каждом тике пытаюсь открыть позицию и не хватает денежных средств. Если ничего не пишу в журнал, то естественно с журналом все ок, но нет открытых позиций в конце валидации. Поэтому мне кажется, что в алгоритме валидации появился какой то дикий глюк, довольно смелое заявление, согласен, но поправьте если я где то ошибся.

Ну и на закваску данный советник проходил автовалидацию три недели назад, просто возникла необходимость изменить некоторые параметры по умолчанию и поправить пару мелочей, НЕ ЗАТРАГИВАЮЩИХ логику открытия и лотности.

Заранее спасибо всем за дельные советы.

 
Sergey Kasirenko:

Ну и на закваску данный советник проходил автовалидацию три недели назад, просто возникла необходимость изменить некоторые параметры по умолчанию и поправить пару мелочей, НЕ ЗАТРАГИВАЮЩИХ логику открытия и лотности.

Заранее спасибо всем за дельные советы.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Andrey Khatimlianskii, 2019.04.09 21:42

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


 
Dmitry Melnichenko:

автоматический валидатор в маркете выдает такую ошибку:

failed instant sell 1.50 EURUSD at 1.16278, close #2137 buy 1.50 EURUSD 1.17211 [Modification failed due to order or position being close to market]
strategy tester report 2366 total trades

у себя в терминале я не могу ее воспроизвести, пробовал разные ТФ и валютные пары, но в журнале ошибок вообще нету, может кто подскажет в чем проблема в чем может быть проблема???

Artyom Trishkin:

Уровень FreezeLevel не проверяете - если цена слишком близко к, например, уровню СтопЛосс, то СтопЛосс невозможно модифицировать. Расстояние заморозки как раз определяется уровнем FreezeLevel


При чем здесь это? Он пытается закрыть ордер, а не изменить его.

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

Что делать не знаю...