Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 40
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Поправлю
ее по-другому вообще никуда не засунуть, будет wrong parameters
Должна учитывать самый последний
я попробую поменять
Насчет последней, ну да) я пробовал обойтись стандартной OrderModify() но счет банят если кучу ордеров одновременно и постоянно двигать
Спасибо за критику.
Объявите её БЕЗ АРГУМЕНТА, неужели так сложно?
{код функции}
И вызывайте тоже пустой, да елзу оттуда за фигурные скобки выведите:
else {когда есть ордера}
А щас у вас так:
Пробуй ^_~
Не работает ..КАк не было так и нет сделок ..
А отложки хоть выставляет, нет, какие ошибки
...Исправил
Допилил аргументы. терминал виснет наглухо.
Значит какой-то цикл бесконечно молотит.
Припишите в начало кода #property strict и исправляйте, куча предупреждений.
Вполне возможно деление на 0 в последней функции.
После else выполнится только первая строчка, блок фигурных скобок остался сиротой.
Вообще, сначала логику на бумаге словами распишите, а то шатается.
Подразумевалось что выполнит команду с плавающим знаком после запятой в зависимости от десятичнх знаков на графике
NormalizeDouble(Ask+TakeProfit*Point(),Digits)
а как ты увидел что какие то строки не выполняются?
Подразумевалось что выполнит команду с плавающим знаком после запятой в зависимости от десятичнх знаков на графике
NormalizeDouble(Ask+TakeProfit*Point(),Digits)
а как ты увидел что какие то строки не выполняются?
Нда. С логикой бооольшие проблемы. И что останется от результата, если его записать в целочисленную переменную? Какой смысл в этом коде?
lastlot=NormalizeDouble(lastlot*Martin,3);
tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits);
Вот тут разве так сложно понять, что часть кода - сирота и будет выполняться независимо от условия?
otype=FindLastOType(); //код, исполняющийся для else
{
код-сирота
}
Нда. С логикой бооольшие проблемы. И что останется от результата, если его записать в целочисленную переменную? Какой смысл в этом коде?
lastlot=NormalizeDouble(lastlot*Martin,3);
tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits);
Вот тут разве так сложно понять, что часть кода - сирота и не будет выполняться?
otype=FindLastOType(); //код, исполняющийся для else
{
код, который никуда не идёт, сирота
}
Стоп
если ордера есть
находится тип ордера
{
то тогда выполняются операции для этого типа ордера
}
не?
Не могу понять откуда zero divideСтоп
если ордера есть
находится тип ордера
{
то тогда выполняются операции для этого типа ордера
}
не?
Да, вы правы, просто код написан в таком стиле, что предыдущий оратор его не верно интерпретировал.
Добавлено: zero divide - это деление на ноль, и вам в журнале пишет в какой строке
Стоп
если ордера есть
находится тип ордера
{
то тогда выполняются операции для этого типа ордера
}
не?
Выше поправил. То, что после else - выполняется в зависимости от условия. Блок фигурных скобок идёт отдельно, так что он уже к else не имеет отношения.
Вот откуда
{
double avg_price; //+------------средняя цена
price=0;//+------------цена
bool z;//+------------выход в переменную
double orderlots=0; //+------------лоты
avg_price=NormalizeDouble(price/orderlots,Digits);//+------------то средняя ценаравна цена деленная на лот