[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 75
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо! Всё заработало как часы. ))
в этой строке
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) { Print("break "+GetLastError()); break;}
вылетает по брейку, но при этом код ошибки 0. - Почему так происходит?
потому, что у Вас проверка условия на то, что ордер выбранный ф-цией OrderSelect() не является рыночным, тоды выводите в журнал и делаете break
нужно наоборот делать: если ордер рыночный и ордер имеет магик и символ и ... тоды закроем, а прерывать цикл перебора ордеров не нужно
https://book.mql4.com/ru/trading/orderclose
Всем здрасте! Есть какй-то скрипт или индикатор для следующей задачи? Нужно, что бы в терминале прорисовывалась горизонтальная линия и следовала за ценой на определенном расстоянии (типо трейлинга, но, только графически). Сильно ли такой скрипт нагрузит МТ? Заранее спасибо!
Действие в одну строку - ObjectSet
потому, что у Вас проверка условия на то, что ордер выбранный ф-цией OrderSelect() не является рыночным, тоды выводите в журнал и делаете break
нужно наоборот делать: если ордер рыночный и ордер имеет магик и символ и ... тоды закроем, а прерывать цикл перебора ордеров не нужно
https://book.mql4.com/ru/trading/orderclose
т.е. эту строку
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) { Print("break "+GetLastError()); break;}
меняем на
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) { тут все закрываем }
но ведь смысл тот же.
Мне не очень понятно почему OrderSelect может вернуть false и при этом GetLastError() = 0.
подскажите по функции закрытия всех ордеров
Я бы ордера перебирал в обратном порядке. for(int i=total-1;i>-1;i--)
помогите найти ошибку пожалуйста, никак не могу правильно записать,а потом считать из файла
вот код:
int handle;
double value,Price,PriceLast,asd;
handle=FileOpen("EURUSD5up.dat",FILE_BIN | FILE_READ | FILE_WRITE);
if(handle<1)
{
Print("can't open file error-",GetLastError());
return(0);
}
asd = (Price - PriceLast);
FileWriteDouble(handle, asd, DOUBLE_VALUE);
FileSeek(handle, 0, SEEK_SET);
value=FileReadDouble(handle,DOUBLE_VALUE);
Print(value);
FileClose(handle);
вот результат: 2011.02.08 10:18:27 2010.12.31 18:47 TEST EURUSD,M5: 0
Я бы ордера перебирал в обратном порядке. for(int i=total-1;i>-1;i--)
вот спасибо!, странно что в примерах хелпов представлен не этот вариант
стандартный кодебазовский RSI, являющийся отношением средней положительных изменений к средней отрицательных, не то же самое
что настоящий, изначальный RSI, являющийся отношением суммы положительных изменений к сумме отрицательных.
хотя, не буду утверждать правильность моего варианта, хоть я и много лет уже его знаю и понимаю, в отличии от кодебазовского.
это ж основы основ, думаю все кто давно на рынке знают что rsi это sumpos/sumneg*100
кстати макди тоже исказили - сделали главную машку ЕМАшкой
>Действие в одну строку - ObjectSet
Большое спасибо за ответ. К сожалению я не силен в программировании. Не могли бы показать как это должно выглядеть, например для отставания линии от цены на 3п. вверх с цветом линии-синий.