[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 88

Kostiantyn Pykhtin
122
Kostiantyn Pykhtin  

Добрый день всем.

Вопрос у меня интересный.

Скажите, кто знает или может сталкивался, когда зарегистрирован счет в МТ4 то, с лева написано Имя трейдера и № счета.

Меня интересует, могу ли я поменять в процессе пользования счетом введенные там данные или нет? Нужно изменить введенное ИМЯ.

Заранее спасибо за ответ.

smesam
4
smesam  
Всем привет! подскажите, возможно ли в mql4 реализовать функцию скорости изменения цены? то есть задать например такое условие: если цена меняется быстрее чем на 30 пунктов в секунду, то сделку не открывать (это применительно к советнику)...если можно, подскажите кодом...спасибо
Boris
3920
Boris  
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);
}
Dimka-novitsek
2421
Dimka-novitsek  

Доброго вечера! С проходящими праздниками всех!. 

 

Мне в тестере удалило отложеные ордера, это видно в результатах, однако, в журнал написало ERR_INVALID_TICKET    4108    Неверный номер тикета

Это игнорировать, или лучше разобраться в ситуации? 

BeerGod
1569
BeerGod  
bugorok:
Всем привет! подскажите, возможно ли в mql4 реализовать функцию скорости изменения цены? то есть задать например такое условие: если цена меняется быстрее чем на 30 пунктов в секунду, то сделку не открывать (это применительно к советнику)...если можно, подскажите кодом...спасибо

Поробуйте глянуть код этого советника, там реализовано нечто похожее.

https://www.mql5.com/ru/code

extern int     KolSec =  4;  //количество секунд, между измерениями скорости цены
extern int     Punkts = 28;  //количество пунктов, которые цена проходит за это время

 //ЗАКРЫТИЕ ПОЗИЦИИ, ЕСЛИ ЦЕНА ДЕЛАЕТ РЕЗКИЙ РЫВОК ПРОТИВ НЕЕ
   //-------------------------------------------------------------
Mikhail Kozhemyako
1334
Mikhail Kozhemyako  
Dimka-novitsek:

Доброго вечера! С проходящими праздниками всех!. 

 

Мне в тестере удалило отложеные ордера, это видно в результатах, однако, в журнал написало ERR_INVALID_TICKET    4108    Неверный номер тикета

Это игнорировать, или лучше разобраться в ситуации? 


Лучше разобраться. Кто у Вас удалило? Может быть Ваш советник пытался удалить не только отложенные, но и уже открытые? Перед удалением вставьте Print("Хочу удалить ордер с тикетом=",OrderTicket()," OrderType=",OrderType()); Для отложенников OrderType от 2 до 5. Для открытых от 0 до 1. https://docs.mql4.com/ru/constants/trading
smesam
4
smesam  
BeerGod, спасибо за подсказку!!
Dimka-novitsek
2421
Dimka-novitsek  
Спасибо!!!!
AlexCul
11
AlexCul  
Dimka-novitsek:
Спасибо!!!!

В танчиках кустодрочер/нет? :-)
Dimka-novitsek
2421
Dimka-novitsek  
Я про танчики плохо освидомлён, чё там как. Это самый старший- Миша- брат мой- он фанат этой игры.