Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 813

 
WinProject:
Добрый вечер, подскажите пожалуйста. Я читаю FileOpen их текстового .csv файла. В каждой строке файла есть три значения, это инструмент, дата (по убыванию) и цена. Я хочу получить comment цены на последнюю датe (это первая строка), но файл всегда читается до конца и я получаю коммент самой старой цены (из последней строки). Как без обходных путей получить в коммент значение цены из первой строки?

FileSeek()

Документация по MQL5: Файловые операции
Документация по MQL5: Файловые операции
  • www.mql5.com
Из соображений безопасности в языке MQL5 строго контролируется работа с файлами. Файлы, с которыми проводятся файловые операции средствами языка MQL5, не могут находиться за пределами файловой "песочницы". общая папка всех установленных на компьютере терминалов  – обычно расположена в каталоге C:\Documents and Settings\All Users\Application...
 
Igor Makanu:

у каждого брокера свои поставщики котировок, часто их несколько, плюс алгоритмы сглаживания котировок

как и в общем - если нужны реальные тики, значить переносите свою ТС на MQL5 -   там есть тестирование по реальным тикам, сэкономите время при тестировании

Расскажите кратко про алгоритмы сглаживания котировок что это такое? На mql5 есть возможность тестировать ТС на истории по тикам, т.е. будет результат один к одному с учётом реквот и гэпов, а есть возможность провести тест по тикам с учётом Бид Аск а также реквот и гэпов?

 
Seric29:

Расскажите кратко про алгоритмы сглаживания котировок что это такое? На mql5 есть возможность тестировать ТС на истории по тикам, т.е. будет результат один к одному с учётом реквот и гэпов, а есть возможность провести тест по тикам с учётом Бид Аск а также реквот и гэпов?

вся информация в открытом доступе на этом форуме, про тики поиском сообщения админов лет 6-8 назад

про качество тестирования - статьи

 
Alexey Viktorov:

Может попробовать открыть противоположный объёмом закрытия и OrderCloseBy применить?

Приветствую. Подскажите, пожалста, что я делаю не так?

При OrderCloseBy() выдает ошибку 3  

3

ERR_INVALID_TRADE_PARAMETERS

Неправильные параметры

пример кода 

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict


datetime time; int ticket_buy; int ticket_sell; 
bool open=false; bool close=false;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
ticket_sell=OrderSend(NULL, OP_SELL, 0.1, Bid, 0, 0, 0, "", 0, 0, Red);  

time=TimeCurrent();
//if (Digits() ==3 || Digits()==5) {trailingStep*=10; }
   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
//---
   
  }
void OnTick(){
if(!open && TimeCurrent()>=time+2600){
   ticket_buy=OrderSend(NULL, OP_BUY, 0.1, Ask, 1, 0, 0, "buy order", 0, 0, Blue);
   open=true;
}
if(!close && TimeCurrent()>=time+3000){
   if(OrderCloseBy(ticket_buy, ticket_sell , Black)){ }
   close=true;
}

}//+------------------------------------------------------------------+
 
Andrey Sokolov:

Приветствую. Подскажите, пожалста, что я делаю не так?

При OrderCloseBy() выдает ошибку 3  

3

ERR_INVALID_TRADE_PARAMETERS

Неправильные параметры

пример кода 

код работает в тестере, приведите в порядок OrderSend(), нет ни одной нормализованной цены и лота

и второе условие - не все брокеры разрешают использование OrderCloseBy() - думаю это основная причина ошибки

 
Igor Makanu:

код работает в тестере, 

Те у вас закрывает, так? Какой у вас брокер? У меня альпари
 
Igor Makanu:

приведите в порядок OrderSend(), нет ни одной нормализованной цены и лота


Не совсем понимаю что тут нормализовывать  и зачем, когда нет математических операций?
 
Andrey Sokolov:
Не совсем понимаю что тут нормализовывать  и зачем, когда нет математических операций?

потому что нужно себя приучить отправлять на сервер нормализованные цены, сейчас отправился ордер - завтра нет, Вы будете постоянно искать свои ошибки

сложно что в этом? вот скопируйте себе если сложно:

ticket_sell=OrderSend(_Symbol, OP_SELL, 0.1, Bid,10,
                     NormalizeDouble(0.0,_Digits),NormalizeDouble(0.0,_Digits), "", 0, 0, clrRed);  

математические операции ни причем, было раньше странное поведение терминала в новых билдах, на все вопросы разработчики писали - пишите свои коды правильно - они правы )))

на сервере Метаквот проверял Ваш код - все работает

ЗЫ:  0 это не 0.0 , поэтому может быть не совсем ожидаемый результат - тоже хорошая привычка чтобы не искать баги ;)

 
Igor Makanu:

и второе условие - не все брокеры разрешают использование OrderCloseBy() - думаю это основная причина ошибки

В общем, я правильно понимаю, что если альпари и, возможно, другие не поддерживают, то лучше не использовать вообще пометить себе как не рабочую?

 
Andrey Sokolov:

В общем, я правильно понимаю, что если альпари и, возможно, другие не поддерживают, то лучше не использовать вообще пометить себе как не рабочую?

функция рабочая

увы, настройки каждого сервера нужно проверять - универсальных решений очень мало (на альпах еще стоплевел бывает = 0, с трейлингом можете тоже удивиться)

если не ошибаюсь, ты был в MarketInfo() запрос на определение  дает ли сервер встречным ордером закрывать позицию