У меня советник торгует больше чем надо. Мне нужно ограничить его ставки, что бы в одном баре не больше одной ставки, как это можно сделать кодом mql если можно. Спасибо за ранние.
- Запрет торговли в одном баре.
- Мастер MQL5. Один бар - одна сделка. Как сделать?
- Советники: Немедленное исполнение
можно так
if(!NumberOfBarOpenLastPos(NULL,0,OP_BUY, Magic) == 0) {//запрет неск. сделок на 1 баре } //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 19.02.2008 | //| Описание : Возвращает номер бара открытия последней позиции или -1. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" или NULL - текущий символ) | //| tf - таймфрейм ( 0 - текущий таймфрейм) | //| op - операция ( -1 - любая позиция) | //| mn - MagicNumber ( -1 - любой магик) | //+----------------------------------------------------------------------------+ int NumberOfBarOpenLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) { datetime t; int i, k=OrdersTotal(); if (sy=="" || sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==sy) { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { if (t<OrderOpenTime()) t=OrderOpenTime(); }} } } } } return(iBarShift(sy, tf, t, True)); }
спасибо большое! Я знал, что здесь кто то уже оставлял такие вопросы, но искать долго, есть люди которые знают решение, спасибо еще рас.
int start() { int KolClosedOrders = OrdersHistoryTotal()-1; if(OrderSelect(KolClosedOrders, SELECT_BY_POS, MODE_HISTORY)==true) datetime TimeEndClosedOrders = OrderOpenTime(); int ChasPosleStavki = TimeEndClosedOrders + 3600; if (TimeCurrent() >= ChasPosleStavki){int z;} return(0); } вот не плохой скрипт, кому пригодится пользуйтесь.
Хамелеон, в окошке ввода текста есть не плохая кнопка SRC.
Вот ещё очень простое решение
int start() { if(NewBar()) { Print("Я здесь был NewBar = True"); } } bool NewBar() { static datetime lastbar = 0; datetime curbar = Time[0]; if(lastbar!=curbar) { lastbar=curbar; return (true); } else { return(false); } }
Самое простое:
if(Volume[0]>1)return;Проще нет!
borilunad:
Самое простое:
Проще нет!Только для тестера!!!
Vinin:
Только для тестера!!!
Только для тестера!!!
На Реале работает нормально, ставлю где нужно, и если условия совпадают с открытием бара, срабатывает чётко, без ошибок.
borilunad:
На Реале работает нормально, ставлю где нужно, и если условия совпадают с открытием бара, срабатывает чётко, без ошибок.
На Реале работает нормально, ставлю где нужно, и если условия совпадают с открытием бара, срабатывает чётко, без ошибок.
Удачи Вам. Но если придет несколько тиков подряд несколько баров подряд, то я Вам не завидую. Прошу прощения за тафталогию

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь