Всем привет! подскажите, возможно ли в mql4 реализовать функцию скорости изменения цены? то есть задать например такое условие: если цена меняется быстрее чем на 30 пунктов в секунду, то сделку не открывать (это применительно к советнику)...если можно, подскажите кодом...спасибо
artmedia70: В той функции идёт перебор ордеров для поиска последнего закрытого по тейку. Переработайте эту функцию для ускорения. Они у Кима все универсальные - значит от-туда можно много лишнего поубирать. Опять-таки, всё зависит от логики вашего эксперта.
borilunad: Большое спасибо! А то думал, что может какой-нибудь оператор использовать, но они не перебирают случаи с "или" для одного и того же действия.
Артём, извините, побеспокою! Что и как можно ещё убрать из функции? Меня интересует только последняя позиция, закрытая по тейку!
Я закомментировал всё, что не нужно, но всё равно ползёт-тащится... :((
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.05.2008 |//| Описание : Возвращает флаг закрытия последней позиции по тейку. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+//bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {bool isCloseLastPosByTake() {//int op=-1) {//, int mn=0) {//string sy="", datetime t;
double ocp, otp;
int dg, i, j=-1, k=OrdersHistoryTotal();
// if (sy=="0") sy=Symbol();for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
// if (OrderSymbol()==sy || sy=="") {if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
// if (op<0 || OrderType()==op) {
// if (mn<0 || OrderMagicNumber()==mn) {if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
// }
// }
}
// }
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
// dg=MarketInfo(sy, MODE_DIGITS);// if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=5; else dg=3;
ocp=NormalizeDouble(OrderClosePrice(), 5);//dg);
otp=NormalizeDouble(OrderTakeProfit(), 5);//dg);if (ocp==otp) return(True);
}
return(False);
}
bugorok: Всем привет! подскажите, возможно ли в mql4 реализовать функцию скорости изменения цены? то есть задать например такое условие: если цена меняется быстрее чем на 30 пунктов в секунду, то сделку не открывать (это применительно к советнику)...если можно, подскажите кодом...спасибо
Поробуйте глянуть код этого советника, там реализовано нечто похожее.
externintKolSec = 4; //количество секунд, между измерениями скорости ценыexternintPunkts = 28; //количество пунктов, которые цена проходит за это время//ЗАКРЫТИЕ ПОЗИЦИИ, ЕСЛИ ЦЕНА ДЕЛАЕТ РЕЗКИЙ РЫВОК ПРОТИВ НЕЕ//-------------------------------------------------------------
Мне в тестере удалило отложеные ордера, это видно в результатах, однако, в журнал написало ERR_INVALID_TICKET 4108 Неверный номер тикета
Это игнорировать, или лучше разобраться в ситуации?
Лучше разобраться. Кто у Вас удалило? Может быть Ваш советник пытался удалить не только отложенные, но и уже открытые? Перед удалением вставьте Print("Хочу удалить ордер с тикетом=",OrderTicket()," OrderType=",OrderType()); Для отложенников OrderType от 2 до 5. Для открытых от 0 до 1. https://docs.mql4.com/ru/constants/trading
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Добрый день всем.
Вопрос у меня интересный.
Скажите, кто знает или может сталкивался, когда зарегистрирован счет в МТ4 то, с лева написано Имя трейдера и № счета.
Меня интересует, могу ли я поменять в процессе пользования счетом введенные там данные или нет? Нужно изменить введенное ИМЯ.
Заранее спасибо за ответ.
В той функции идёт перебор ордеров для поиска последнего закрытого по тейку. Переработайте эту функцию для ускорения. Они у Кима все универсальные - значит от-туда можно много лишнего поубирать. Опять-таки, всё зависит от логики вашего эксперта.
borilunad:
Большое спасибо! А то думал, что может какой-нибудь оператор использовать, но они не перебирают случаи с "или" для одного и того же действия.
Артём, извините, побеспокою! Что и как можно ещё убрать из функции? Меня интересует только последняя позиция, закрытая по тейку!
Я закомментировал всё, что не нужно, но всё равно ползёт-тащится... :((
Доброго вечера! С проходящими праздниками всех!.
Мне в тестере удалило отложеные ордера, это видно в результатах, однако, в журнал написало ERR_INVALID_TICKET 4108 Неверный номер тикета
Это игнорировать, или лучше разобраться в ситуации?
Всем привет! подскажите, возможно ли в mql4 реализовать функцию скорости изменения цены? то есть задать например такое условие: если цена меняется быстрее чем на 30 пунктов в секунду, то сделку не открывать (это применительно к советнику)...если можно, подскажите кодом...спасибо
Поробуйте глянуть код этого советника, там реализовано нечто похожее.
https://www.mql5.com/ru/code
Доброго вечера! С проходящими праздниками всех!.
Мне в тестере удалило отложеные ордера, это видно в результатах, однако, в журнал написало ERR_INVALID_TICKET 4108 Неверный номер тикета
Это игнорировать, или лучше разобраться в ситуации?
Лучше разобраться. Кто у Вас удалило? Может быть Ваш советник пытался удалить не только отложенные, но и уже открытые? Перед удалением вставьте Print("Хочу удалить ордер с тикетом=",OrderTicket()," OrderType=",OrderType()); Для отложенников OrderType от 2 до 5. Для открытых от 0 до 1. https://docs.mql4.com/ru/constants/trading
Спасибо!!!!
В танчиках кустодрочер/нет? :-)