Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1103
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Приветствую!
Не получается закрывать противоположные ордера разных лотов через CTrade.PositionCloseBy(ticket1,ticket2).
ResultRetCode() - выдает ошибку 10035.
Можете подсказать в чем причина?
10035
TRADE_RETCODE_INVALID_ORDER
Неверный или запрещённый тип ордера
Смотрите внимательно что ж вы там делаете.
Правильно ли я понимаю - функция SetIndexBuffer нужна для привязки буфера(ов) к конкретному графическому построению, И ДЛЯ НУМЕРАЦИИ ДОСТУПА К НИМ ЧЕРЕЗ iCustom ?
То есть например, если я создам массив для цен High, то его достаточно просто объявить без привязки через SetIndexBuffer и в ...
... его можно не считать
К тому же через SetIndexBuffer можно привязывать массивы только типа double, а например уже datetime и другие - нет
Просто я этот момент не до конца понимаю (или понимал), а сейчас мысль пришла - хочу уточнить...
Правильно ли я понимаю - функция SetIndexBuffer нужна для привязки буфера(ов) к конкретному графическому построению, И ДЛЯ НУМЕРАЦИИ ДОСТУПА К НИМ ЧЕРЕЗ iCustom ?
То есть например, если я создам массив для цен High, то его достаточно просто объявить без привязки через SetIndexBuffer и в ...
... его можно не считать
К тому же через SetIndexBuffer можно привязывать массивы только типа double, а например уже datetime и другие - нет
Просто я этот момент не до конца понимаю (или понимал), а сейчас мысль пришла - хочу уточнить...
Привязка не к построению, а к массиву данных происходит. Поэтому, я думаю что так не прокатит. Хотя не проверял.
Что касается типа datetime, так его можно и в double записать, а читая насильно применить тип.
Доброго утра.
Вопросик. На тестере на стыке дней (когда проходит линия следующего дня) программа должна была отработать постановку отложенки. Отложенка которая уже стояла и ее цена зацепила - она открылась, а вот инструкцию на открытие другого отложенного ордера - система почему-то проигнорила :( Почему? На реальном счете тоже такое может произойти, когда инструкция робота просто игнорится и соответственно нужное действие не происходит?
И еще вопрос. Гоняю тестер, но сильно смущает факт того, что в визуализации он проходит где-то неделю, а потом выкатывает надпись
177564 tick events (447 bars, 7888506 bar states) processed in 0:17:42.694 (total time 0:17:48.217)
177564 тиковых событий (447 баров, 7888506 баров) обработано в 0: 17: 42.694 (общее время 0: 17: 48.217)
Чет я не понял, ему что дальше тестировать религия не позволяет? Или он такой заботливый и за ресурсы моего компьютера беспокоится? Никакой ошибки ведь не выкатывается. Он просто сам завершает работу. Хотя по датам у меня выставленно не 7 дней, 7 месяцев. Хочется просмотреть весь путь тестов от и до.
Что за религия ему не позволяет визуально затестить допустим год или несколько лет? А ты потом визуально увидешь как твоя программа отрабатывала бы в течение к примеру предыдущего года.
И еще вопросик. (Хотя он возможно будет без ответа )) ) Как может произойти такое, что на тестере 2 круга тестер отрабатывает как положено, а вот как раз перед выше упомянутой надписью в этот день просто игнорит все инструкции. Как такое возможно работала корректно программа несколько кругов (открывала ордера и потом их закрывала), а потом хоп и игнор всего. Ни открывает, ни закрывает. Это из-за окончания тестрируемого периода или есть какие другие причины?
........... Но в определенный момент ему нужно определить, закрыл ли он сам свою сделку или это кто-то влез и закрыл ее....
Пиши однозначно, это ты спрашиваешь как прописать или про использование советника без редактирования
Здравствуйте!
Для советника хотел использовать индикатор A/D, но не в чистом виде, его moving average.
Поэтому сочинил функции:
//+------------------------------------------------------------------+
//| Функция A/D |
//+------------------------------------------------------------------+
double A_D(ENUM_TIMEFRAMES tf, int shift)
{
double res=0;
res=iAD(NULL,tf, shift);
return res;
}
//+------------------------------------------------------------------+
//| Функция A/D |
//+------------------------------------------------------------------+
double A_D_moving(ENUM_TIMEFRAMES tf, int period)
{
double res=0;
double a[];
for(int i=period; i>=1; i--)
{
a[i]= A_D(tf, i);
}
for(int i=period; i>=1; i--)
{
res=iMAOnArray(a,0,period,0,MODE_SMA,0);
}
return res;
}
Но при тестировании стало очевидно, что A_D_moving() в данной редакции с ошибкой, т.к. возникает критическая ошибка при запуске тестирования.
Прошу, кто может, помогите:
Насколько корректно написана функция A_D_moving()? Если есть ошибки прошу указать...
Спасибо!
Вставляйте пожалуйста правильно код:
Вставляйте пожалуйста правильно код:
Извините1
звините