if (Curtime() > lasttime + 30*60)
Основной вопрос ...
Здравствуйте,
Я новичок в MetaTrader и у меня есть основной вопрос:
Я хочу ограничить открытые позиции в моем эксперте-советнике только 1 позицией за раз - но я хочу, чтобы это ограничение было на символ, так что если я запущу другой эксперт-советник на другом символе, он откроет новую позицию на этом символе.
Другими словами, я хочу иметь возможность открывать 1 позицию на все символы, но не более 1 позиции на символ (И я говорю о многих экспертах-советниках на многих символах...).
Как я могу это сделать?
Я видел функцию"totaltrades", но из документации я понял, что эта функция применяется к счету, а не к текущему символу,
поэтому "if totaltrades=1 then exit;" вызовет 1 позицию за раз для всех символов...
10X !
1 позиция для всех символов
int total=OrdersTotal();
if(total<1)
{
.
.
.
}
Но одна позиция для одного символа или для одного открытого графика?
ну, один на график - это лучше всего ...
Но если это невозможно сделать, то 1 на символ тоже хорошо...
1 на символ
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol() )
return(0);
....Отлично!
В 10 раз больше!
И я снова вас побеспокою... (:
Могу ли я сделать это также для каждого графика?
Потому что у меня есть разные системы для разных графиков временных интервалов ...
Извините, я не понимаю.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте
Я хочу сделать следующее в коде
'Не торговать в течение 30 минут с момента моей последней сделки'.
Таким образом, если мои индикаторы показывают, что я должен добавить к моей текущей сделке снова, то я размещаю сделку в том же направлении только если прошло 30 минут.
Я делаю следующее - этот код еще не работает - он только в стадии разработки - я не знаю, как добавить 30 минут к моему последнему ордеру.
Это для советника, работающего только на текущей паре
int start()
{
int cnt, ticket, total, stop1;
static datetime lasttime
total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
//Определяем время последнего закрытия ордера
if (OrderCloseTime > lasttime + 30)
{
lasttime = orderclosetime
}//if (OrderCloseTime)
}
Теперь я хочу сказать
if (Curtime() > lasttime + 30 минут)
{
Продолжить торговлю
}
пожалуйста, помогите