- Как сделать счетчик баров?
- Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
- Чистая математика, физика, логика (braingames.ru): задачки для мозгов, не связанные с торговлей
Есть функция
int iBarShift(string symbol, int timeframe, datetime time, bool exact=false) Поиск бара по времени. Функция возвращает смещение бара, которому принадлежит указанное время. Если для указанного времени бар отсутствует ("дыра" в истории), то функция возвращает, в зависимости от параметра exact, -1 или смещение ближайшего бара.
С помощью неё определите номер бара (смещение относительно текущего 0-го), на котором была открыта позиция.
В общем-то это и будет уже количество баров, прошедших с того момента.
Здравствуйте. Мне нужно по прошествии определенного количества баров закрыть сделку, как это сделать не могу сообразить. Как сделать счетчик баров от определенной точки во времени.
Если сделка уже открыта и ты хочешь ее закрыть через допустим 150 баров.
Находишь время открытия сделки через следующую функцию (просто пропиши ее у себя в роботе как отдельную фунцию):
int mn - номер меджика открытого ордера, в принципе можно и без него - тогда убери в функцие строчку && OrderMagicNumber() == mn
string asset = "EURUSD";- торговый символ, например EURUSD
int timeframe = 30;- 30 минут например
double Last_OrderOpTime(int mn, string asset) // ищет время открытия последнего ордера
{
datetime open_timeLast = 0;
int ticketLast = 0;
for(int i= OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(open_timeLast < OrderOpenTime() && OrderMagicNumber() == mn && asset==OrderSymbol())
{
open_timeLast = OrderOpenTime();
ticketLast = OrderTicket() ;
}
}
if(open_timeLast==0) return(-1);
if( OrderTicket() != ticketLast ) OrderSelect( ticketLast , SELECT_BY_TICKET);
return(OrderOpenTime());//Last_OrderOpPr
}
Дальше закрываешь свой ордер
int MaxBar = 150; //количество свечей через сколько ты хочешь закрыть ордер
IF (
iBarShift( asset, timeframe, Last_OrderOpTime(mn,asset)) > MaxBar
)
{
OrderClose
}
Решил поделиться, т.к. сам два дня искал, пока не разобрался, надеюсь будет полезно
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования