Если в момент закрытия старой сделки ваши условия открытия выполняются, а это вполне возможно, позиция будет открыта снова, так как ваше присвоение b=10000, которое само по не самый лучший способ контроля, будет обновлено на b=high2.
Найдите более изящный способ контроля цены открытия.
Если в момент закрытия старой сделки ваши условия открытия выполняются, а это вполне возможно, позиция будет открыта снова, так как ваше присвоение b=10000, которое само по не самый лучший способ контроля, будет обновлено на b=high2.
Найдите более изящный способ контроля цены открытия.
может подскажите а то ничего в голову не лезет второй день не могу решить эти проблемы.....нужно чтобы сделка открывалась один раз только когда текущая свеча откроется выше или ниже определенной цены и не открывалась к примеру до следующего аналогичного условия но могла быть открыта при других условиях...как такое возможно реализовать?
может подскажите а то ничего в голову не лезет второй день не могу решить эти проблемы.....нужно чтобы сделка открывалась один раз только когда текущая свеча откроется выше или ниже определенной цены и не открывалась к примеру до следующего аналогичного условия но могла быть открыта при других условиях...как такое возможно реализовать?
вроде получилось при минимуме кода максимум результата создать в такой способ решил эти проблемы
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False){
if((high3>high2)&&(close2<close1)&&(low2<low3)&&(open1<close2)&&(close1>close2)&&(low1<low2))
{
b=high2;
}
if(iOpen(NULL,0,0)>b)
{
OrderSend(Symbol(),OP_BUY,0.1,Ask,7,Ask-120*Point,Ask+120*Point,0,0,0,Green);
b=10000;
}
}
немного кода местами сменил..спасибо что помогли сначала
Разделяю смысловые части.
Первое.
Зачем вы создали новую ветку на форуме? Уже существует ветка, в которой задают такие вопросы. Вот она https://forum.mql4.com/ru/56236 .
Там вам помогут.
Второе.
Учимся вставлять код MQ4.
Ctrl + Alt + M
То есть:
bool Active = false;
if ( ... условие(-ия) торговли.... ) { // одно или несколько условий, можно вложить одно в другое с помощью нового if Active = true; } if (Active){ // разрешение на торговлю на основе наличия условий торговли if ( ... условие покупки (или продажи)... ) { OrderSend(...); Active=false; } }
Вот что то в этом роде. Поиск "семафоров", "переключателей", "разрешений торговать" может вывести на более оригинальные решения, варианты этой структуры, но ваша главная проблема это определение 3-го условия торговли.
Поиск поможет найти приемлемое решение.
И уберите ваше b=10000; :)
понимаю достал уже но не подскажите как получить время закрытия последнего ордера что был исполнен
Если закрывается советником по условиям, то время можно сохранять после OrderClose, если по TP/SL то функцией Кима.
Вам в ветку "Полезные функции от Кима". Там это и не только это найдете.
Что же вы посылаете его вот так, без ссылки?
Ссылочка вам, уважаемый https://forum.mql4.com/ru/38949 . :)
Что же вы посылаете его вот так, без ссылки?
Ссылочка вам, уважаемый https://forum.mql4.com/ru/38949 . :)
А поиску тоже учиться надо, о великий учитель )))
А также вставлять ссылки...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
}
советник должен открывать ордер по открытию свечи выше определенной цены при некоторых условиях....вместо этого он постоянно открывает сделки по закрытию старой сделки...