[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 105
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
посмотрите здесь: https://docs.mql4.com/ru/basis/operations/math
Так тоже можно.
разве b будет равно не одному?
проверил. одному
Создайте флаги, например.
Для ТР1 - bool TP1, для TP2 - bool TP2, и т.д. ...
Изначально их значения false.
Перед очередным закрытием делаете проверку:
if (!TP1) {код частичного закрытия первой части, после успешного закрытия пишете TP1=true}
if (!TP2) {код частичного закрытия второй части, после успешного закрытия пишете TP2=true}
... и так для всех частей...
таким образом флаги будут сигнализировать об единожды уже проведённом закрытии каждой части...
Спасибо! Переделал код... TP0==false обявил в начале программы .
Проблема осталась.Подробнее: 1-ю часть закрывает и тут же начинает закрывать 2-ю :-(..., причем для второй ошибка 131, понятно - размер лота другой ) Но еще нюанс в том, что для 1-й части ""Alert ("Закрыт ",Lot," Lot Buy ",Ticket);"" в журнале не пишет, т.е. не доходит до поверки Ans==true. Почему???? Ниже кусок кода...
Спасибо заранее!
while(true) // Цикл закрытия орд.
{
if (TP0==false && (Cls_B0==true ||Cls_S0==true))
{
LotC=MathRound(Lot/4/Step)*Step;
Alert("Lot-",Lot,"Попытка закрыть-",LotC," Lot Buy ",Ticket,". Ожидание ответа..");
RefreshRates(); // Обновление данных
Ans=OrderClose(Ticket,LotC,Bid,5); // TicketЗакрытие Buy 1/3 лотов?
if (Ans==true) // Получилось :)
{
TP0=true;
Alert ("Закрыт ",Lot," Lot Buy ",Ticket);
break; // Выход из цикла закр
}
if (Fun_Error(GetLastError())==1) // Обработка ошибок
continue; // Повторная попытка
return; // Выход из start()
}
Уважаемые программисты!
Помогите, пожалуйста. Индикатор рисует значения по бычьей скрытой дивергенции, и НИ В Какую не рисует медвежью скрытую.... Пишет, что ошибка 4002 - Индекс массива - вне диапазона.
Я вроде бы все поисправляла... Промучалась целый вечер... И обидно - код простейший... Но бычью рисует стрелками, а медвежью - никак... ПОМОГИТЕ! В чем ошибка?????????????????????
Алена,
Вам необходимо распределить память под массивы vpadcci[], v[], hh[], ss[]. Они объявлены динамическими, но их размер нигде не задан. Размер динамического массива задается функцией ArrayResize().
P.S. и пользуйтесь, пожалуйста, кнопкой SRC для вставки кода
Вопрос по MT5. Как определить. что тестер завершил работу? Кроме как визуально :)
При завершении работы выполняется функция deinit(). Следовательно, если мы туда попали, значит работа эксперта завершается. Для определения, ведется ли работа в тестере, используйте функцию IsTesting().
Пардон, заметил, что вопрос по MT5.
Там все аналогично, только OnDeinit() и MQL5InfoInteger(MQL5_TESTING).
Алена,
Вам необходимо распределить память под массивы vpadcci[], v[], hh[], ss[]. Они объявлены динамическими, но их размер нигде не задан. Размер динамического массива задается функцией ArrayResize().
P.S. и пользуйтесь, пожалуйста, кнопкой SRC для вставки кода
Спасибо большое за ответ, буду разбираться!
Подскажите пожалуйста как правильно записать, что произошла смена цвета индикатора VininI LRMA color.mq4 https://www.mql5.com/ru/code/8200
если использовать double iCustom(string symbol, int timeframe, string name, ..., int mode, int shift). Никак не могу сообразить. Написал iCustom(NULL,0,"VininI_LRMA_color",55,0,1) и не знаю что дальше с этим делать))
Значения линий находятся в буферах индикатора 1 (зеленая) и 2 (красная). Когда на графике рисуется зеленая линия, то переменная up на баре 1 имеет значение этой линии, а переменная dn=EMPTY_VALUE и наоборот. EMPTY_VALUE - это пустое значение буфера, его численное значение равно 2147483647.
Далее можно использовать эти значения по своему усмотрению.
Можно создать советник который закрыл бы все ордера при срабатывания take-profit-a у последнего открытова ордера?