Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
КАК открыть ордер только в начале бара ??
Здравствуйте,
Реализую советник, в котором хочу открывать ордер только в том случае, если между вторым предыдущим баром и предыдущим произошло пересечение индикатором какого-то уровня.
Например, на дневном графике, если есть пересечение между 18 января и 19 января, я хочу открыть ордер 20 января.
Я сделал примерно следующее:
Когда я открываю ордер, я записываю время открытия ордера.
Затем я выполняю следующий тест: Is (CurrentTime() - LastOrderOpenTime) < Period()?
Если да, то это означает, что текущий бар еще не закончен, и я не должен открывать новый ордер. А также, когда это условие становится ложным, я должен быть на следующем баре графика, а кросс произошел до последнего бара и ордер не должен быть открыт до следующего сигнала.
Проблема в том, что при наложении его на график, он продолжает создавать новые ордера, пока не закончится бар. Кто-нибудь может подсказать, что я сделал не так?
Привет,
Я реализую советник, в котором я хочу открывать ордер только в том случае, если между вторым предыдущим баром и предыдущим произошло пересечение индикатором некоторого уровня.
Например, на дневном графике, если между 18 января и 19 января произошло пересечение, я хочу открыть ордер 20 января.
Я сделал примерно следующее:
Когда я открываю ордер, я записываю время открытия ордера.
Затем я выполняю следующий тест: Is (CurrentTime() - LastOrderOpenTime) < Period()?
Если да, то это означает, что текущий бар еще не закончен, и я не должен открывать новый ордер. И еще, когда это условие становится ложным, я должен быть на следующем баре графика, а кросс произошел до последнего бара и ордер не должен быть открыт до следующего сигнала.
Проблема в том, что при наложении его на график он продолжает создавать новые ордера, пока не закончится бар. Кто-нибудь может подсказать, что я сделал не так?Не уверен, но вот что кто-то сделал для меня некоторое время назад. Мне придется погуглить, чтобы дать должный респект автору.
Это помогает определить, находитесь ли вы на открытии нового бара или нет.
{
double g;
int m,s,k;
m=Time[0]+Period()*60-TimeCurrent();
g=m/60.0;
s=m%60;
m=(m-m%60)/60;
return(m);
}[/CODE]
And I use it like this:
[CODE]if (newbar()==Period())Надеюсь, это поможет.
Привет,
Я реализую советник, в котором я хочу открывать ордер только в том случае, если между вторым предыдущим баром и предыдущим произошло пересечение индикатором некоторого уровня.
Например, на дневном графике, если между 18 января и 19 января произошло пересечение, я хочу открыть ордер 20 января.
Я сделал примерно следующее:
Когда я открываю ордер, я записываю время открытия ордера.
Затем я выполняю следующий тест: Is (CurrentTime() - LastOrderOpenTime) < Period()?
Если да, то это означает, что текущий бар еще не закончен, и я не должен открывать новый ордер. А также, когда это условие становится ложным, я должен быть на следующем баре графика, а кросс произошел до последнего бара и ордер не должен быть открыт до следующего сигнала.
Проблема в том, что при наложении его на график, он продолжает создавать новые ордера, пока не закончится бар. Кто-нибудь может подсказать, что я сделал не так?Тогда я делаю следующий тест: Is (CurrentTime() - LastOrderOpenTime) < Period()??
можно добавить // return (0);
ИЛИ
это может помочь... добавьте код...
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;
if(OrderSymbol()== Symbol () && OrderMagicNumber()== MN)
{
if( OrderOpenTime() >= iTime(0, PERIOD_D1, 0) samebar++;
}
}
вы можете выбрать один из двух вариантов.
if ( samebar > 0 ) return (0);
ИЛИ
if (samebar < 1) {ваши коды заказа;}
Я не силен в кодировании, поэтому может кто-нибудь попробует проверить, правильно ли я разместил коды...
Здравствуйте,
Я реализую советник, в котором я хочу открывать ордер только в том случае, если между вторым предыдущим баром и предыдущим произошло пересечение индикатором некоторого уровня.
Например, на дневном графике, если между 18 января и 19 января произошло пересечение, я хочу открыть ордер 20 января.
Я сделал примерно следующее:
Когда я открываю ордер, я записываю время открытия ордера.
Затем я выполняю следующий тест: Is (CurrentTime() - LastOrderOpenTime) < Period()?
Если да, то это означает, что текущий бар еще не закончен, и я не должен открывать новый ордер. И еще, когда это условие становится ложным, я должен быть на следующем баре графика, а кросс произошел до последнего бара и ордер не должен быть открыт до следующего сигнала.
Проблема в том, что при наложении его на график он продолжает создавать новые ордера, пока не закончится бар. Кто-нибудь может подсказать, что я сделал не так?Уммм...
{
//A new bar has happend.
}Как узнать прибыль предыдущей сделки? А лоты, а боковик?
Как узнать прибыль предыдущей сделки? И лоты, и стороны?
Используйте OrdersHistoryTotal() вместо OrdersTotal(). Затем используйте OrderProfit(), OrderLots() и т.д. Однако вы должны убедиться, что исторические котировки за интересующий вас период времени загружены, и я думаю, что вы можете сделать это только вручную - щелкните правой кнопкой мыши на вкладке 'Orders History' и выберите 'All History'.
Нужно было добавить, что вам нужно использовать 'MODE_HISTORY' с OrderSelect()...
Используйте OrdersHistoryTotal() вместо OrdersTotal(). Затем используйте OrderProfit(), OrderLots() и т.д. Однако вы должны убедиться, что исторические котировки за интересующий вас период времени загружены, и я думаю, что вы можете сделать это только вручную - щелкните правой кнопкой мыши на вкладке 'Orders History' и выберите 'All History'. Нужно было добавить, что вам нужно использовать 'MODE_HISTORY' с OrderSelect()...
Привет, Омлет,
Знаете ли вы, что у BT есть проблема с просмотром истории: он смотрит на реальную историю, а не на историю BT. Я спрашивал Metaquote несколько месяцев назад об этой ошибке, но у них не было никакого ответа..... Возможно, сейчас это исправлено...
Привет
Как закодировать цикл ужесточения процентной ставки по одной валюте и цикл снижения процентной ставки по другой валюте?
Может ли советник смотреть на текущие и исторические ставки свопов?
OILFXPRO
Проверьте формальные параметры - Документация по MQL4