Проблема с валидацией советника на маркете - страница 3

 
Vladimir Zubov:
Если запустить с 1$ ошибка 134 в тестере будет ?
При запуске советника в тестере с TP в 1$ ошибки нет. Еще пол часа назад прогнал))
 
Marat Sultanov:

Хорошо, вы пишите, что должен совершать сделки в любом случае.

Мне это не понятно. К чему это?

Допустим, торговая система основана на паттернах для валютной пары EURUSD, не важно каких и в каком количество. Важно то, что эти паттерны за всю историю повторяются часто только по EURUSD. Вероятность, что найдется торговый инструмент по которому эти паттерны, в принципе, не могут существовать, очень и очень велика (особенно если начать подбирать ТФ, только не знаю делает ли это автомат).

Автомат запускает на всех случайных торговых инструментах (возможно, +на случайных ТФ) и, в итоге, находится такие в которых нет ни одной сделки, т.к. не было обнаружено паттернов.

Явного ограничения на торговлю по торговым инструментам нет.

Есть лишь особенность торговой системы.

Выходит, нужно писать левую торговую систему, ничем не связанную с торговой системой эксперта только для того, чтобы пройти проверку маркета?

Для меня это как минимум странно...

Этого я незнаю, такие требования при публикации в маркете.
 
Vladimir Zubov:
Этого я незнаю, такие требования при публикации в маркете.

Спасибо за ответ.

Теперь я знаю, что не я один этого не понимаю :)

 
Александр:
При запуске советника в тестере с TP в 1$ ошибки нет. Еще пол часа назад прогнал))
Не TP=1 в этом случае, а недостаточно средств на счету. Выдаст ошибку 134 или нет ? Минимальное депо и максимальный лот, как советник себя поведет ?
 
После ошибки в маркете нет что-то типа журнала, чтобы посмотреть где и в чем ошибка?
 
Александр:
После ошибки в маркете нет что-то типа журнала, чтобы посмотреть где и в чем ошибка?

Вы же сами выложили отчёт(журнал) с ошибками, и там явно указано, что нет торговых операций. Допишите десяток строк в код, чтоб делал торговые операции везде, кроме нужной пары, для которой написан эксперт. Можете сделать простейший, открытие каждый вторник, стоп и профит по 20 пунктов. Всё

Добавлено: Вообще, любой паттерн можно встретить на любом символе и таймфрейме, нет таких которые есть только на евро/долл, или на йене/франк 

 
Vitaly Muzichenko:
Вы же сами выложили отчёт(журнал) с ошибками, и там явно указано, что нет торговых операций. Допишите десяток строк в код, чтоб делал торговые операции везде, кроме нужной пары, для которой написан эксперт. Можете сделать простейший, открытие каждый вторник, стоп и профит по 20 пунктов. Всё
Ну а дальше как? Я сейчас обману маркет,а потом как вырежу этот код из совы.. Как по Вашему так просто взять написать сову на 10 строк пройти валидацию и потом совать туда всяких левых роботов, так получается? Мне нужно пройти валидацию с чистым кодом 100% рабочего советника....
 
Александр:
Ну а дальше как? Я сейчас обману маркет,а потом как вырежу этот код из совы.. Как по Вашему так просто взять написать сову на 10 строк пройти валидацию и потом совать туда всяких левых роботов, так получается? Мне нужно пройти валидацию с чистым кодом 100% рабочего советника....
Не нужно ничего обманывать, выложите код и так чистый без "косяков". Далее в описании так и написать: "Бот только для пары ХХХYYY, параметры такие-то и такие, работает на пересечении МА и RSI"
 
Vladimir Zubov:

Там нужно делать ещё защиту от любых возможных некорректных значений пользователя, например он поставил отрицательный лот или при расщете ММ баланс = 0, нужно учесть все возможные нюансы.

Я делаю все возможные проверки от глупости) 

// если поставили лот меньше или больше возможного
double MinL = MarketInfo(Symbol(),MODE_MINLOT);
if (LotSize < MinL) LotSize = MinL; else LotSize = MathAbs(LotSize);
double MaxL = MarketInfo(Symbol(),MODE_MAXLOT);
if (LotSize > MaxL) LotSize = MaxL; else LotSize = MathAbs(LotSize);
// если поставили баланс равный нулю или отрицательный
if (Balance == 0) Balance = 1000; else Balance = MathAbs(Balance);
// если поставили отрицательные значения
if (StopLoss < 0) StopLoss = MathAbs(StopLoss); else StopLoss = StopLoss;
if (TakeProfit < 0) TakeProfit = MathAbs(TakeProfit); else TakeProfit = TakeProfit;
if (StartHour < 0) StartHour = MathAbs(StartHour); else StartHour = StartHour;
if (StartMinute < 0) StartMinute = MathAbs(StartMinute); else StartMinute = StartMinute;
if (EndHour < 0) EndHour = MathAbs(EndHour); else EndHour = EndHour;
if (EndMinute < 0) EndMinute = MathAbs(EndMinute); else EndMinute = EndMinute;
if (FridayExit < 0) FridayExit = MathAbs(FridayExit); else FridayExit = FridayExit;
if (MaxSpread < 0) MaxSpread = MathAbs(MaxSpread); else MaxSpread = MaxSpread;
if (Slippage < 0) Slippage = MathAbs(Slippage); else Slippage = Slippage;


 

Спасибо, проверю эти моменты. Тоесть система в маркете может выставлять не корректные значения? p.s. заранее спасибо за оказанную помощь)))
 
Александр:
Спасибо, проверю эти моменты. Тоесть система в маркете может выставлять не корректные значения? p.s. заранее спасибо за оказанную помощь)))
По идее может, там эмулируют специально внештатную ситуацию, по типу TP=SL=1pp то есть могут и баланс = 0 поставить или отрицательные значения лота)
Причина обращения: