Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1925
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
нарисовать (ладно, отобразить) уровни "типа-прогрессии, тут далее может быть стоп-лосс" вообще говоря совсем просто. Но не сильно понятно ЗАЧЕМ..
Не пробовали расспросить заказчика, что-же он там в деталях хочет ?
PS/ и да, надо брать "творческую паузу", я так думаю заказчик поймёт ситуацию..нервы не способствуют
Он более недели думал, и это решил.
Первоначально всё было по-другому, это и было сдано, но после недельной паузы сообщил о введении новшеств. Понимаю, что задание выполнил, но как-то не правильно покинуть заказчика, даже если это не входило в первоначальное ТЗ.
Моя просьба в силе!
Он более недели думал, и это решил.
Первоначально всё было по-другому, это и было сдано, но после недельной паузы сообщил о введении новшеств. Понимаю, что задание выполнил, но как-то не правильно покинуть заказчика, даже если это не входило в первоначальное ТЗ.
Моя просьба в силе!
успокойтесь Виталий, просьба о чём ?
внести правки в советник ? кода нет и некуда вносить. И не вполне корректно править заказ фриланс в данном топике. Вообще ни с одной стороны
void OnStopLoss() {
// some code placed here
}
вряд-ди поможет.
успокойтесь Виталий, просьба о чём ?
внести правки в советник ? кода нет и некуда вносить. И не вполне корректно править заказ фриланс в данном топике. Вообще ни с одной стороны
void OnStopLoss() {
// some code placed here
}
вряд-ди поможет.
Не совсем советник, отдельный трал, который вешается на один график и следит за всеми символами.
Код сильно раздутый
Есть позиция, и к ней стоплосс.
В настройках трал 30. Значит показать линию на уровне, где сработает трал, и так все 7 линий: 30-60-90-120-150-180-210, типа прогрессии.
Прошли 30 и достигли линии, трал переводит стопы на уровень цены открытия, по достижении 60, переводит стопы на +30 от цены открытия, то есть на уровень, где срабатывал первый стоп и тд.
Полагаю, что хочет управлять графическими линиями, но это уже сложнее, поэтому нужно сделать упрощённо.
Как вариант, вынести в настройки 7 параметров для уровней.
P.S. Извиняюсь за долгий ответ, пропадал интернет.
7 параметров не вариант) 7 названий горизонтальных линий в параметрах которые он нарисует и назовет. И от них плясать. А если параметры, то диапазон хода цены и количество уровней. Рассчитать и нарисовать. Ну и при срабатывании уровня рисовать линию сл, а если сл совпадает с уровнем цены, менять цвет.
Тут как-бы нужен алгоритм, который нарисует линии по рассчитанным ценам.
По закрытию всех позиций их нужно удалить.
7 параметров не вариант) 7 названий горизонтальных линий в параметрах которые он нарисует и назовет. И от них плясать. А если параметры, то диапазон хода цены и количество уровней. Рассчитать и нарисовать. Ну и при срабатывании уровня рисовать линию сл, а если сл совпадает с уровнем цены, менять цвет.
Уточнение:
Изменить код, нарисовать линии и больше ничего.
Спасибо!
Категория вашего продукта - Эксперты, правильный тип программы для неё - Эксперт" Но это эксперт! Куда копать? 2 дня уже бьюсь!
Добрый день. Ну подскажите новичку, пытаюсь загрузить эксперт в маркет. Выдает ошибку "Ошибка! Загружен неверный тип файла, .....ex4 - Скрипт.
Категория вашего продукта - Эксперты, правильный тип программы для неё - Эксперт" Но это эксперт! Куда копать? 2 дня уже бьюсь!
Копать в сторону стандартных обработчиков.
Уверен, что у вас там start(), а не OnStart().
Тут как-бы нужен алгоритм, который нарисует линии по рассчитанным ценам.
По закрытию всех позиций их нужно удалить.
double sumLots[2]=0,weight[2]=0;
for(int pos=OrdersTotal()-1;pos>=0;pos--) {
if (! OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) continue;
// тут всякие прочии фильтры
DrawOrderLevels(); // нарисовать уровни куда может перекатиться стоп-лосс конкретного ордера
// расчёт общих позиций
int type=OrderType();
sumLots[type]+=OrderLots();
weight[type]+=OrderLots()*OrderOpenPrice();
}
double avg[3]; // общии позиции
if (sumLots[OP_BUY]!=0) avg[OP_BUY]=weight[OP_BUY]/sumLots[OP_BUY];
if (sumLots[OP_SELL]!=0) avg[OP_SELL]=weight[OP_SELL]/sumLots[OP_SELL];
// совокупная позиция
int posType; // тип
double posPrice; // цена
double posLots; // объём
if (sumLots[OP_BUY]>sumLots[OP_SELL) { posType=OP_BUY; posPrice=avg[OP_BUY]; posLots=sumLots[OP_BUY]-sumLots[OP_SELL]; }
else { posType=OP_SELL; posPrice=avg[OP_SELL]; posLots=sumLots[OP_SELL]-sumLots[OP_BUY]; }
DrawPriceLevels(OP_BUY,avg[OP_BUY]); // нарисовать уровни суммарной позы в BUY
DrawPriceLevels(OP_SELL,avg[OP_SELL]); // нарисовать уровни суммарной позы в SELL
DrawPriceLevels(posType,posPrice); // уровни общей позиции
в имена горизонтальных уровней добавлять номер тикета. Иногда(когда надо) проверять - если тикета нет в рынке, то все уровни с его именем удалять
Копать в сторону стандартных обработчиков.
Уверен, что у вас там start(), а не OnStart().