Сделал своего эксперта. Но есть небольшая проблема. Хотелось бы чтоб оптимизация шла быстрей чем сейчас. Эксперт использует в расчетах Зигзаг (последние High и Low, т.е. последний отрезок), значения High и Low последних 250 баров. Отслеживается последняя сделка. ( если бай закрылся по стоплоссу,...
Кто-то может написать скрипт -конвертер для конвертации исторических данных из внешних источников в формат МТ4 для работы в тестере? Данные берутся отссюда http://www.finam.ru/analysis/export/default.asp После конвертации файл идет в архив котировок мт4 (мт5 ?) под своим сиволом Далее эти данные
В мт5 билд 353 (05nov2010), похоже что то напутали в таблице "результатов оптимизации": прибыль==матож выигрыша, а результат слишком астрономический (нач депо 3000+прибыль 3178.40 != 476546.65). Пример в прикрепленном файле.
p.s. Я думаю это глюк кэша, посоветуйте как его занулить.
И еще,...
Для ускорения оптимизации и тестов , как лучше организовывать расчеты ? У меня все расчеты сделаны в виде функций:
//+------------------------------------------------------------------+//| Expert tick function...
код такой:
MqlTradeRequest m_request; // request data MqlTradeResult m_result; // result data m_request.action =TRADE_ACTION_PENDING; m_request.symbol ="EURUSD"; m_request.volume =0.01; m_request.price =1.39000; m_request.type...
пишу мультивалютник, при тесте постоянно выясняется, что будет подгружаться история, устал ждать, когда синхронизируется история, написал такую "игрушку"
//+------------------------------------------------------------------+//| chart.mq5...
Билд 346 Жду комментариев. Естественно терминал скачан с офф источника. И естественно стандартный эксперт не изменялся. Эта ошибка со свеми стандартными экспертами. А 350 билд не берет созданные мною эксперты, которые брал 346, при этом 350 не выписывает никаких ошибок.
День добрый.
После прогона тестера, формируется таблица с результатами подгонки. После закрытия mt5, таблица пропадает.
Вопрос. Как сохранить таблицу с результатами подгонки тестером.
Заранее благодарю.
if(PositionSelect(symbol)==true) { double profit = PositionGetDouble(POSITION_PROFIT); long type = PositionGetInteger(POSITION_TYPE); double vol = PositionGetDouble(POSITION_VOLUME); FileWrite(fileHandle,"Поза выбрана profit =...
Откоментил тут, но решил вынести в отдельную тему.
Собственно само сообщения "ура, теперь тестер работает с нормальной скоростью, вот если ещё снимете ограничения количества оптимизированных параметры, тогда может и подумаю стоит ли переходить к тестеру от MetaQuotes Software Corp :)".
Вообще не...
1) Смотрим код: double Open[]; int Open_handle; MqlTradeRequest Request; MqlTradeResult Result; bool result; int OnInit () { Open_handle= CopyOpen ( NULL , PERIOD_CURRENT , 0 , 100 ,Open); ArraySetAsSeries (Open,true); return ( 0 ); } void OnTick () { //--- Request.price= SymbolInfoDouble ( Symbol
Переписываю мульта с mql4 на mql5. По условиям ММ объём позиции изменяется фиксированным шагом от стартового объёма. Стартовый объём определяется при инициализации эксперта. В mql4 это выполнялось так:
margin=MarketInfo(Symbols[i], MODE_MARGINREQUIRED); //Маржа для 1-го лотаif(margin...
Добрый вечер!
Тестирую советник.
Делаю на тик проверку, открыт ли ордер в этом(Н4) баре, и не могу понять почему иногда проскакивает и не замечает сделку. Помогите разобраться.
void OnTick() {//---//определения fl......//и на каждый тик проверка int copiedRates=CopyRates(SymbInfo[l]...
Добрый вечер!
Подскажите как доделать функцию ?
//ф-я возвращает true если в этом периоде/баре НЕ делалась сделка или она закрылась, иначе false bool NoTradeThisBar(string m_symbol,ENUM_TIMEFRAMES m_period,datetime start_time,datetime finish_time) {//HistorySelect(0,TimeCurrent());...
Добрый день!
int OnInit() { return(0); }//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+void OnDeinit(const int...
как получить последнюю по времени вершину Zigzag - a в эксперте ?
Приведите простейший пример
Ситуация следующая:
мы открыли позицию по инструменту, но СЛ/ТП не устанавливали, затем позицию модифицировали.
Внимание, вопрос:
после того, как позиция закрылась, как узнать уровень ее СЛ/ТП?
bool b=0, s=0;
void Check_History()
{
HistorySelect(0,TimeCurrent());
int deals=HistoryDealsTotal();
for(int i=deals-0;i>=0;i--)
{
ulong ticket=HistoryDealGetTicket(i);
if(ticket==0)
{
Print("HistoryDealGetTicket failed, no trade...
мне очень нравится библиотека классов Include/Expert/*, поставляемая с MT5, и в качестве примера реализации и просто как ядро для разработки собственного эксперта. спасибо разработчикам за это!
в процессе копания в исходниках у меня возникло несколько вопросов к разработчикам:
1) какая задача...
Доброго времени суток. Подскажите кто знает как передавать данные для функции через указатели. Пример void f1 (int* v0, double* v1) { .......... ............. } Заранее благодарю
subj
MqlTick last_tick; SymbolInfoTick(_Symbol,last_tick); double ASK=last_tick.ask; double BID=last_tick.bid; double spread=ASK-BID; NormalizeDouble (spread, _Digits); Alert(spread);
Скриптом не проверял (не интересует) но в советнике Алерт (0)
Здравствуйте ,форумчане! Кому не сложно и не в лом, напишите пожалуйста скрипт который бы проверял есть ли открытый шелл + нет ли любых отложеных ордеров и если вышесказанное -истина, то ставил бы бай стоп с определенными параметрами.(параметры можете любые поставить, я уж там разберусь)
Уверен,...
Для реализации некоторых задач в экспертах возникает соблазн использовать журнал эксперта для промежуточного хранения данных, которые были бы предварительно сознательно туда записаны для последующего извлечения. Но вот проблема – как эти данные оттуда извлечь? Для вкладки «История» есть множество...
Может есть у кого-то готовий алгоритм на ограничение время работы внутри эксперта, например Start time = 16.30 && End time = 03.20 ?
Я тестирую свой советник в режиме все тики. Он не чувствителен к небольшим колебаниям, однако режим выставления рыночных ордеров с немедленным исполнением требует этого. Что бы оптимизировать работу тестера стратегий и не напрягать алгоритм чрезмерно частыми вызовами я решил вызывать основной...
При оформлении запроса на установку отложенного ордера пробую использовать такую конструкцию:
request.expiration=TimeTradeServer()+int(PeriodSeconds()/Div);
где Div - input-переменная типа float (double). При этом ожидаю, что изменение времени истечения ордера должно влиять на результаты ТС. Цель...
Подскажите как реализовать эту функцию из четверки
void CloseAllOrders(){ for(int cnt=OrdersTotal()-1;cnt>=0;cnt--) { if( !OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ) { Print("OrderSelect() failed");...
Запутался я . Код в MQL4for (int c=OrdersHistoryTotal()-1; c<=OrdersHistoryTotal(); c++) { if (OrderSelect(c, SELECT_BY_POS, MODE_HISTORY)) { if (OrderType()==OP_BUY) { if(OrderProfit()>=0){} if(OrderProfit()<0){}} if (OrderType()==OP_SELL) { if(OrderProfit()>=0){}...
В статье "Переход с MQL4 на MQL5" я нашел следующий эквивалент iOpen double iOpenMQL4_(string symbol,int tf,int index){ if(index < 0) return(-1); double Arr[]; ENUM_TIMEFRAMES timeframe=TFMigrate(tf); if(CopyOpen(symbol,timeframe, index, 1, Arr)>0) return(Arr[0]); else...
В разделе "Торговые функции" про функции типа PositionSelect() сказано, что "...для гарантированного получения свежих данных о позиции рекомендуется вызывать функцию
PositionSelect() непосредственно перед обращением за ними". Аналогичные комментарии имеются и для функций, работающих с...
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Если у вас нет учетной записи, зарегистрируйтесь
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.