Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 973
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вопрос к программистам.
Имеется советник, который при открытии ордера выставляет стоп-лосс и тейк профит, на заданное кол-во пунктов. Требовалось сделать так,
чтобы вместо стоп-лосса открывался отложенный того же объёма.
Я заменил строку
if (!OrderModify(OrderTicket(),OOP,SL,TP,0,White)) Print("Error OrderModify ",GetLastError());
на
OrderSend(Symbol(),OP_BUYSTOP,1*Lots,Ask+Stoploss*Point,3,0,0,0) ; //Ставим отложенный на покупку
Ордер вместо стопа выставляется, но не один, как нужно а лупит их каждую секунду новый, пока не выключишь советник. Что нужно подредактировать,
чтобы ставился один отложенный на один открывшийся ордер?
Буду благодарен за конструктив.
Спасибо.
Вопрос к программистам.
Имеется советник, который при открытии ордера выставляет стоп-лосс и тейк профит, на заданное кол-во пунктов. Требовалось сделать так,
чтобы вместо стоп-лосса открывался отложенный того же объёма.
...Ордер вместо стопа выставляется, но не один, как нужно а лупит их каждую секунду новый, пока не выключишь советник. Что нужно подредактировать,
чтобы ставился один отложенный на один открывшийся ордер?
Буду благодарен за конструктив.
Спасибо.
Проблему о которой шла речь выше решил. Спасибо.
опять я, код не менял, весь код был выше.
void Fr_sign()
{
double gdClose_array[1];
if(CopyClose(_Symbol,PERIOD_CURRENT,1,1,gdClose_array)!=1) return;
Print("Close price = ",DoubleToStr(gdClose_array[0],_Digits));
}
Результат прогона на 5ти минтном таймфрейме с понедельнка по пятницу
2015.01.12 00:00 111 EURUSD,M5: Close price = 1.05708
2015.01.12 14:30 111 EURUSD,M5: Close price = 1.05708
2015.01.13 03:49 111 EURUSD,M5: Close price = 1.05708
2015.01.13 20:30 111 EURUSD,M5: Close price = 1.05708
2015.01.14 10:20 111 EURUSD,M5: Close price = 1.05708
2015.01.15 11:00 111 EURUSD,M5: Close price = 1.05708
2015.01.15 23:59 111 EURUSD,M5: Close price = 1.05708
Значение не изменяется в течении всего периода тестирования
сделал прогон кода на втором ноутбуке, результат:
2015.01.12 00:00 111 EURUSD,M5: Close price = 1.18402
2015.01.12 05:28 111 EURUSD,M5: Close price = 1.18558
2015.01.12 05:30 111 EURUSD,M5: Close price = 1.18605
2015.01.12 18:46 111 EURUSD,M5: Close price = 1.18276
2015.01.13 18:00 111 EURUSD,M5: Close price = 1.17806
2015.01.13 19:02 111 EURUSD,M5: Close price = 1.17778
т.е. нормальный результат
Переустановил софт, вроде решил проблему,
paladin80 спасибо за участие.
Набросил советник на график Mt4.
В mqlEditor внес изменения в коде. Нажимаю кнопку компилировать. По идее, на графике советник должен перезапуститься. Но этого не происходит.
Для перезапуска приходится заного набрасывать советник на график.
В чем проблема?
Набросил советник на график Mt4.
В mqlEditor внес изменения в коде. Нажимаю кнопку компилировать. По идее, на графике советник должен (не должен!) перезапуститься. Но этого не происходит.
Для перезапуска приходится заного набрасывать советник на график.
В чем проблема?
После изменения кода, работающий уже на графике советник сам не подменивается.
После изменения кода я компилирую советника. Раньше, после перекомпиляции советник на графике обновлялся.
Всем доброго времени суток! Очень надеюсь на вашу помощь. Думаю решение моего вопроса будет интересно многим. В условиях активного рынка советник часто неправильно выставляет уровни стопа и тейка. Возможно ли написать код, который заставлял бы советника уже после открытия сделки проверить правильно ли выставлены уровни её закрытия, и в случае, если эти уровни отличаются от заданных изначально, то советник исправлял бы стоп и тейк на необходимые. Например, я хочу, чтобы открылась сделка с одинаковыми уровнями стопа и тейка в 50 единиц, что прописано в советнике. Но из-за сильных колебаний сделка открывается с со стоп лосом в 47 и тейк профитом в 53, что меня не устраивает. Помогите написать код, с помощью которого уже после открытия сделки уровни закрытия станут равными 50. Буду очень признателен и уверен, что не я один.
А я уверен что один.
В той-же группе функций "Торговые функции" кроме OrderSend() есть ещё OrderModify(). Кроме этого есть типы счетов на которых запрещено открывать ордера одновременно с не нулевыми стопом и тейком. То-есть сначала открытие ордера и потом постановка стопа и тейка функцией OrderModify() и уровни тейка и стопа надо отсчитывать от цены OrderOpenPrice()
Надеюсь ответ достаточно понятен.