Sergey Forex Опубликовано 1 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 1 августа, 2016 Приветствую! А может для MQL5 сделать новую ветку? А то тут все перемешается и будет очень неудобно и тем кто MQL4 изучает и тем кто MQL5. Поддерживаю. Ув. pavlus777 и модераторы, может откроете новую ветку под MQL5? Ссылка на сообщение Поделиться на другие сайты More sharing options...
pavlus777 Опубликовано 1 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 1 августа, 2016 Приветствую! А может для MQL5 сделать новую ветку? А то тут все перемешается и будет очень неудобно и тем кто MQL4 изучает и тем кто MQL5. Поддерживаю. Ув. pavlus777 и модераторы, может откроете новую ветку под MQL5? Легкоhttp://tlap.com/forum/ugolok-programmista/13/obuchenie-yazyku-mql5-pod-metatrader-5/14302 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
avpikulin Опубликовано 2 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 августа, 2016 Доброго времени суток! Подскажите, возможно ли написать стрелочник на совпадение условий от нескольких индикаторов, не имея декомпилированных версий этих индикаторов? Ссылка на сообщение Поделиться на другие сайты More sharing options...
chww Опубликовано 2 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 августа, 2016 Здравствуйте!Помогите найти ошибку!Написал функцию для закрытия части лота, когда цена проходит определенное кол-во пунктов в плюс, стоп лосс не переносится.Для проверки написал написал советник(не судите строго.я только учусь).Идея взята из системы "Снайпер".-----------------------------------------------------------+//+-------//| CloseLots.mq4 |//| Copyright 2016, MetaQuotes Software Corp. |//| //+------------------------------------------------------------------+#property copyright "Copyright 2016, MetaQuotes Software Corp."#property link #property version "1.00"#property strictextern double Lots = 0.1;extern int TakeProfit = 50;extern int StopLoss = 30;extern int Slippage = 3;extern int Magic = 123;extern string iMA = "Настройки МА";extern int period = 14;extern int shift = 0;extern int method = 0;extern int applied_price = 0;extern bool CloseLots = true; // включение функцииextern int CL = 2; // какая часть лота закрывается(2=50%)extern int CP = 30; // кол-во пунктов для закрытия части лотаint timeprev = 0;double SL, SL1, TP, TP1;//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+int OnInit() { if (Digits == 3 || Digits == 5) CP *= 10; Slippage *= 10; TakeProfit *= 10; StopLoss *= 10; return(INIT_SUCCEEDED); }//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+void OnDeinit(const int reason) { }//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+void OnTick() { if( timeprev == Time[0]) return; timeprev = Time[0]; double ima = iMA( Symbol(),0, period, shift, method, applied_price,1); double ima1 = iMA( Symbol(),0, period, shift, method, applied_price,2); SL = NormalizeDouble( Ask - StopLoss * Point, Digits); TP = NormalizeDouble( Ask + TakeProfit * Point, Digits); SL1 = NormalizeDouble( Bid + StopLoss * Point, Digits); TP1 = NormalizeDouble( Bid - TakeProfit * Point, Digits); if(Close[1]> ima && Close[2] { if( OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP,"",Magic,0,Blue)) Print("Ошибка открытия ордера на покупку!"); } if(Close[1]ima1 && SellCount()==0) { if( OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL1,TP1,"",Magic,0,Red)) Print("Ошибка открытия ордера на продажу!"); } closelots(); }//+------------------------------------------------------------------+void closelots(){ int tip,ticket; double OOP,OL,NKL,cp,cl; if(CloseLots == true) for (int i=0; i { if(OrderSelect(i, SELECT_BY_POS)) { if ( OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) { tip = OrderType(); ticket = OrderTicket(); OOP = OrderOpenPrice(); OL = OrderLots(); cp = NormalizeDouble(CP+Point,Digits); cl = NormalizeDouble(OL/CL,2); if(tip==OP_BUY) { if(OL==Lots) { NKL= NormalizeDouble(OOP+cp,Digits); if(NKL { if(OrderClose(ticket,cl,Bid,Slippage,Aqua)) Print("Часть лота успешно закрылась"); else Print("Часть лота не закрылась"); } } } if(tip==OP_SELL) { if(OL==Lots) { NKL= NormalizeDouble(OOP-cp,Digits); if(NKL>=Ask) { if(OrderClose(ticket,cl,Ask,Slippage,Aqua)) Print("Часть лота успешно закрылась"); else Print("Часть лота не закрылась"); } } } } } }} //+------------------------------------------------------------------+int BuyCount(){ int count = 0; for ( int i = OrdersTotal()-1; i >= 0; i--) { if (OrderSelect( i, SELECT_BY_POS, MODE_TRADES) == true && OrderMagicNumber() == Magic && OrderType() == OP_BUY) { count++; } } return( count );} //+------------------------------------------------------------------+int SellCount(){ int count = 0; for ( int i = OrdersTotal()-1; i >= 0; i--) { if (OrderSelect( i, SELECT_BY_POS, MODE_TRADES) == true && OrderMagicNumber() == Magic && OrderType() == OP_SELL) { count++; } } return( count );} Ссылка на сообщение Поделиться на другие сайты More sharing options...
pegaskrs Опубликовано 5 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 августа, 2016 Уважаемые специалисты вынесите пожалуйста в настройки индикатора "Стиль" линий.Заранее благодарен!!! Держите Trendlines_Original__LA_mod.mq4 Изменено 13 июля, 2017 пользователем Pavel888 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Скобарь Опубликовано 5 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 августа, 2016 Огромное СПАСИБО!То что надо. Удачи Вам во всех делах! Ссылка на сообщение Поделиться на другие сайты More sharing options...
serpent989 Опубликовано 5 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 августа, 2016 Всем привет! Вопрос к Сергею, но если кто ещё компетентно ответит, то буду благодарен. Думаю, на эту тему можно даже небольшое видео записать. Итак, вопрос по безопасности прав автора. Мы все знаем, что в mql4 коде можно прописать определение номера счёта и, соответственно, можно указать, чтобы советник работал на конкретном счету, а если счёт другой, то сообщение "обратитесь к автору", например. Это бывает полезно, когда написанную тобой программу просят люди и ты не против её дать конкретному человеку (естественно формат ex4) для использования или теста, но заинтересован, чтобы её не распространяли дальше. Так вот вопрос, насколько это надёжный способ защиты своих авторских прав, есть ли методы декомпиляции, возможно есть ещё какой-то метод аналогичный написанному мной или дополнение к нему, поделитесь, пожалуйста. Спасибо. Ссылка на сообщение Поделиться на другие сайты More sharing options...
odin343 Опубликовано 5 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 августа, 2016 Добрый день,большая просьба к программистам, добавить суффиксы-префиксы в 2 однотипных индикатора для парной торговли. Спойлер скачать _https://yadi.sk/d/oWmd4w5htxNLq_https://yadi.sk/d/SsO6j7gutxNLw Ссылка на сообщение Поделиться на другие сайты More sharing options...
Сахалинец Опубликовано 6 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 августа, 2016 Советник по урокам и не работет... Решил добавить MM. Открывает 2 сделки потом пишет :2016.08.06 20:06:56.027 2016.08.05 23:00 TMA Fair MM GBPUSD,H1: invalid lots amount for OrderSend function2016.08.06 20:06:56.027 2016.08.05 23:00 TMA Fair MM GBPUSD,H1: Alert: Не возможно открыть позицию с обьёмом 0.052016.08.06 20:06:56.027 2016.08.05 23:00 TMA Fair MM GBPUSD,H1: invalid trade cmd -1 for FreeMarginCheck function 8-} Менял всё что только можно.//-------------------------------------------------------------------extern int TakeProfit = 30;extern int StopLoss = 20;extern int Magic = 777;extern int Slippage = 3;extern double Risk = 4;//-------------------------------------------------------------------extern string TMA = "Параметры индикатора TMA Fair";extern string TimeFrame = "current time frame";extern int HalfLength = 56;extern int Price = PRICE_CLOSE;extern double ATRMultiplier = 2.0;extern int ATRPeriod = 100;extern bool Interpolate = true;//--------------------------------------------------------------------double PriceHigh, PriceLow, SL, TP;int ticket;//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+int OnInit(){if (Digits == 3 || Digits == 5){TakeProfit *=10;StopLoss *=10;Slippage *=10;}return(INIT_SUCCEEDED);}//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+void OnDeinit(const int reason){}//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+void OnTick(){PriceHigh = iCustom(NULL,0,"TMA_Fair",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,1,0);PriceLow = iCustom(NULL,0,"TMA_Fair",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,2,0);if (CountSell() == 0 && Bid >= PriceHigh){ticket = OrderSend(Symbol(),OP_SELL,LotsByRisk(),Bid,Slippage,0,0,"Советник TMA Fair",Magic,0,Red);if (ticket > 0){SL = NormalizeDouble(Bid + StopLoss*Point, Digits);TP = NormalizeDouble(Bid - TakeProfit*Point, Digits);if (OrderSelect(ticket, SELECT_BY_TICKET))if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))Print("Ошибка модификации ордера на продажу!");} else Print("Ошибка открытия ордера на продажу!");}if (CountBuy() == 0 && Ask {ticket = OrderSend(Symbol(),OP_BUY,LotsByRisk(),Ask,Slippage,0,0,"Советник TMA Fair",Magic,0,Blue);if (ticket > 0){TP = NormalizeDouble(Ask + TakeProfit*Point, Digits);SL = NormalizeDouble(Ask - StopLoss*Point, Digits);if (OrderSelect(ticket, SELECT_BY_TICKET))if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))Print("Ошибка модификации ордера на покупку!");} else Print("Ошибка открытия ордера на покупку!");}if (Ask 0){for(int i = OrdersTotal() -1; i>=0; i--){if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){if (OrderMagicNumber() == Magic && OrderType() == OP_SELL)if (OrderClose(!OrderTicket(), OrderLots(), Ask, Slippage, Indigo))Print("Ошибка закрытия ордера на продажу!");}}}if (Bid >= PriceHigh && CountBuy() > 0){for(int i = OrdersTotal() -1; i>=0; i--){if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){if (OrderMagicNumber() == Magic && OrderType() == OP_BUY)if (!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Indigo))Print("Ошибка закрытия ордера на покупку!");}}}}//+------------------------------------------------------------------+int CountSell(){int count = 0;for (int trade = OrdersTotal()-1; trade>=0; trade--){if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)){if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)count++;}}return(count);}//+------------------------------------------------------------------+int CountBuy(){int count = 0;for (int trade = OrdersTotal()-1; trade>=0; trade--){if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)){if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)count++;}}return(count);}//+------------------------------------------------------------------+double LotsByRisk(){double lot_min = MarketInfo(Symbol(), MODE_MINLOT);double lot_max = MarketInfo(Symbol(), MODE_MAXLOT);double lot_step = MarketInfo(Symbol(), MODE_LOTSTEP);double lotcost = MarketInfo(Symbol(), MODE_TICKVALUE);double lot = 0;double UsdPerPip = 0;lot = AccountBalance() * Risk/100;UsdPerPip = lot/StopLoss;lot = NormalizeDouble(UsdPerPip/lotcost,2);lot = NormalizeDouble(lot/lot_step, 0) * lot_step;if (lot if (lot > lot_max) lot = lot_max;if (AccountFreeMarginCheck(Symbol(), ticket, lot) {Alert("Не возможно открыть позицию с обьёмом = " + DoubleToStr(lot, 2), "Недостаточно средств!");return(-1);}return(lot);}//+------------------------------------------------------------------+ Ссылка на сообщение Поделиться на другие сайты More sharing options...
pegaskrs Опубликовано 6 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 августа, 2016 Добрый Ind_2_Line+11-Histo_Mod.mq4Ind_7_Line+1_Mod.mq4 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
viktor004 Опубликовано 7 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 7 августа, 2016 Советник по урокам и не работет... Решил добавить MM. Открывает 2 сделки потом пишет :2016.08.06 20:06:56.027 2016.08.05 23:00 TMA Fair MM GBPUSD,H1: invalid lots amount for OrderSend function2016.08.06 20:06:56.027 2016.08.05 23:00 TMA Fair MM GBPUSD,H1: Alert: Не возможно открыть позицию с обьёмом 0.052016.08.06 20:06:56.027 2016.08.05 23:00 TMA Fair MM GBPUSD,H1: invalid trade cmd -1 for FreeMarginCheck functionОшибка тут) Ищи if(AccountFreeMarginCheck(Symbol(),ticket,lot) { Alert("Не возможно открыть позицию с обьёмом = "+DoubleToStr(lot,2)," Недостаточно средств!"); return(-1); } Ссылка на сообщение Поделиться на другие сайты More sharing options...
alex32926 Опубликовано 7 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 7 августа, 2016 Подскажите пожалуйста как открыть для чтения файл .XML Ссылка на сообщение Поделиться на другие сайты More sharing options...
Danilov Max Опубликовано 12 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 августа, 2016 Доброго времени суток! Уважаемые господа знатоки, подскажите, пожалуйста, ответ на такой вопрос: с помощью какой функции можно посчитать разницу (чтобы она была в пунктах) между верхней линией и нижней линией индикатора Bands? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Raskatov Опубликовано 13 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 13 августа, 2016 Здравствуйте!Помогите написать код для определения цены открытия, закрытия, максимума и минимума 12-ти часовой свечи.Не знаю, как реализовать период 12 часов, поэтому использую три четырехчасовых свечи. Пример: определение цены открытия первой из трех четырех часовой свечи.void GetOpenPrice() //Задаем функцию определения цены открытия предыдущей свечи{int xopp = 0; for (int i = 1; i //Количество 4-х часовых свечей в 12-ти часовой свече { if (TimeHour(iTime(Symbol(),PERIOD_H4, i)) >= 0 && TimeHour(iTime(Symbol(),PERIOD_H4, i) // Если время отркытия 4-х часовой свечи попадает во временной промежуток между 0 и 12 часами xopp = xopp+1; else xopp=0; if (xopp == 3) // Если время открытия 3-х четырех часовых свечей попадает в промежуток от 0 до 12 часов { PriceOpen = iOpen(Symbol(), PERIOD_H4, 3); //Опрееляем цену открытия 1-й свечи открытой от 0 до 4 часов Print("OpenPrice - " + DoubleToStr(PriceOpen)); // Выводим в журнал } }return; }Если тестировать все тики, то выдает такую ошибку:TestGenerator: unmatched data error (volume limit 4729 at 2016.06.16 15:05 exceeded)Если тестировать ценам открытия то вообще никаких данных в журнал не выдает.Если вынести из функции Print, то выдает в журнал значение цены 0.000000 и и причем за каждый четверты час, а не один раз за 12 часов.Где ошибка? Изменено 13 августа, 2016 пользователем Raskatov Ссылка на сообщение Поделиться на другие сайты More sharing options...
Сахалинец Опубликовано 14 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 14 августа, 2016 Походу автор забил на тему. x( Жаль. Я бы помог ток сам разбираюсь нифига не получается. Ссылка на сообщение Поделиться на другие сайты More sharing options...
vipcrimes Опубликовано 14 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 14 августа, 2016 Коллеги,есть трал, который тралит последние профитные позиции сетки. Как посчитать, на какую сумму он закрыл этих последних сделок в рамках одной (последней открытой) сетки?Большое спасибо! Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 16 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 16 августа, 2016 Подскажите пожалуйста как открыть для чтения файл .XMLОткрывать и читать как текстовый файл и выписывать поиск тегов xml разметки.с помощью какой функции можно посчитать разницу (чтобы она была в пунктах) между верхней линией и нижней линией индикатора Bands?С помощью вычитания. У Вас будет два буфера с верхней и нижней линией: pips = bufHigh - bufLowПомогите написать код для определения цены открытия, закрытия, максимума и минимума 12-ти часовой свечи.Не знаю, как реализовать период 12 часов, поэтому использую три четырехчасовых свечи. Брокеры начинают рисовать свечу в момент старта торгов в вск или пнд, если Вы хотите получать данные в 12 и 0 часов, то лучше использовать Н1 ( мало ли на какого брокера поставите ), и раз уж всё равно цикл, то лучше исследовать свечи текущего ТФ - имхо. тем более есть все нужные функции типа - iHighest. Изменено 16 августа, 2016 пользователем 0ll 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
machine Опубликовано 16 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 16 августа, 2016 берём простой код: void OnTick(){ if (timeprev == Time[0]) return; timeprev = Time[0];Print(Time[0]);} ставим на GBPUSD, M5, 99%получаем: Спойлер Цитата 2016.08.16 21:39:07.234 2015.03.17 09:40 test123 GBPUSD,M5: 2015.03.17 09:40:002016.08.16 21:39:07.234 2015.03.17 09:35 test123 GBPUSD,M5: 2015.03.17 09:35:002016.08.16 21:39:07.234 2015.03.17 09:30 test123 GBPUSD,M5: 2015.03.17 09:30:002016.08.16 21:39:07.234 2015.03.17 09:25 test123 GBPUSD,M5: 2015.03.17 09:25:002016.08.16 21:39:07.234 2015.03.17 09:20 test123 GBPUSD,M5: 2015.03.17 09:20:002016.08.16 21:39:07.234 2015.03.17 09:15 test123 GBPUSD,M5: 2015.03.17 09:15:002016.08.16 21:39:07.234 2015.03.17 09:10 test123 GBPUSD,M5: 2015.03.17 09:10:002016.08.16 21:39:07.234 2015.03.17 09:05 test123 GBPUSD,M5: 2015.03.17 09:05:002016.08.16 21:39:07.234 2015.03.17 09:00 test123 GBPUSD,M5: 2015.03.17 09:00:002016.08.16 21:39:07.234 2015.03.17 08:55 test123 GBPUSD,M5: 2015.03.17 08:55:002016.08.16 21:39:07.234 2015.03.17 08:50 test123 GBPUSD,M5: 2015.03.17 08:50:002016.08.16 21:39:07.234 2015.03.17 08:45 test123 GBPUSD,M5: 2015.03.17 08:45:002016.08.16 21:39:07.234 2015.03.17 08:40 test123 GBPUSD,M5: 2015.03.17 08:40:002016.08.16 21:39:07.234 2015.03.17 08:35 test123 GBPUSD,M5: 2015.03.17 08:35:002016.08.16 21:39:07.234 2015.03.17 03:50 test123 GBPUSD,M5: 2015.03.17 03:50:002016.08.16 21:39:07.234 2015.03.17 03:45 test123 GBPUSD,M5: 2015.03.17 03:45:002016.08.16 21:39:07.234 2015.03.17 03:40 test123 GBPUSD,M5: 2015.03.17 03:40:002016.08.16 21:39:07.234 2015.03.17 03:35 test123 GBPUSD,M5: 2015.03.17 03:35:002016.08.16 21:39:07.234 2015.03.17 03:30 test123 GBPUSD,M5: 2015.03.17 03:30:002016.08.16 21:39:07.234 2015.03.17 03:25 test123 GBPUSD,M5: 2015.03.17 03:25:002016.08.16 21:39:07.234 2015.03.17 03:20 test123 GBPUSD,M5: 2015.03.17 03:20:002016.08.16 21:39:07.234 2015.03.17 03:15 test123 GBPUSD,M5: 2015.03.17 03:15:002016.08.16 21:39:06.968 2015.03.10 22:30 test123 GBPUSD,M5: 2015.03.10 22:30:002016.08.16 21:39:06.968 2015.03.10 22:25 test123 GBPUSD,M5: 2015.03.10 22:25:002016.08.16 21:39:06.968 2015.03.10 22:20 test123 GBPUSD,M5: 2015.03.10 22:20:002016.08.16 21:39:06.968 2015.03.10 22:15 test123 GBPUSD,M5: 2015.03.10 22:15:002016.08.16 21:39:06.968 2015.03.10 22:10 test123 GBPUSD,M5: 2015.03.10 22:10:002016.08.16 21:39:06.968 2015.03.10 22:05 test123 GBPUSD,M5: 2015.03.10 22:05:002016.08.16 21:39:06.968 2015.03.10 22:00 test123 GBPUSD,M5: 2015.03.10 22:00:002016.08.16 21:39:06.968 2015.03.10 21:55 test123 GBPUSD,M5: 2015.03.10 21:55:002016.08.16 21:39:06.734 2015.03.05 10:10 test123 GBPUSD,M5: 2015.03.05 10:10:002016.08.16 21:39:06.734 2015.03.05 10:05 test123 GBPUSD,M5: 2015.03.05 10:05:002016.08.16 21:39:06.734 2015.03.05 10:00 test123 GBPUSD,M5: 2015.03.05 10:00:002016.08.16 21:39:06.734 2015.03.05 09:55 test123 GBPUSD,M5: 2015.03.05 09:55:002016.08.16 21:39:06.734 2015.03.05 09:50 test123 GBPUSD,M5: 2015.03.05 09:50:002016.08.16 21:39:06.734 2015.03.05 09:45 test123 GBPUSD,M5: 2015.03.05 09:45:002016.08.16 21:39:06.734 2015.03.05 09:40 test123 GBPUSD,M5: 2015.03.05 09:40:002016.08.16 21:39:06.734 2015.03.05 09:35 test123 GBPUSD,M5: 2015.03.05 09:35:002016.08.16 21:39:06.453 2015.02.24 07:30 test123 GBPUSD,M5: 2015.02.24 07:30:002016.08.16 21:39:06.453 2015.02.24 07:25 test123 GBPUSD,M5: 2015.02.24 07:25:002016.08.16 21:39:06.453 2015.02.24 07:20 test123 GBPUSD,M5: 2015.02.24 07:20:002016.08.16 21:39:06.453 2015.02.24 07:15 test123 GBPUSD,M5: 2015.02.24 07:15:002016.08.16 21:39:06.453 2015.02.24 07:10 test123 GBPUSD,M5: 2015.02.24 07:10:002016.08.16 21:39:06.453 2015.02.24 07:05 test123 GBPUSD,M5: 2015.02.24 07:05:002016.08.16 21:39:06.453 2015.02.24 07:00 test123 GBPUSD,M5: 2015.02.24 07:00:002016.08.16 21:39:06.453 2015.02.24 06:55 test123 GBPUSD,M5: 2015.02.24 06:55:002016.08.16 21:39:06.250 2015.02.17 15:30 test123 GBPUSD,M5: 2015.02.17 15:30:002016.08.16 21:39:06.250 2015.02.17 15:25 test123 GBPUSD,M5: 2015.02.17 15:25:002016.08.16 21:39:06.250 2015.02.17 15:20 test123 GBPUSD,M5: 2015.02.17 15:20:002016.08.16 21:39:06.250 2015.02.17 15:15 test123 GBPUSD,M5: 2015.02.17 15:15:002016.08.16 21:39:06.250 2015.02.17 15:10 test123 GBPUSD,M5: 2015.02.17 15:10:002016.08.16 21:39:06.250 2015.02.17 15:05 test123 GBPUSD,M5: 2015.02.17 15:05:002016.08.16 21:39:06.250 2015.02.17 15:00 test123 GBPUSD,M5: 2015.02.17 15:00:002016.08.16 21:39:06.250 2015.02.17 14:55 test123 GBPUSD,M5: 2015.02.17 14:55:002016.08.16 21:39:05.968 2015.02.06 02:10 test123 GBPUSD,M5: 2015.02.06 02:10:002016.08.16 21:39:05.968 2015.02.06 02:05 test123 GBPUSD,M5: 2015.02.06 02:05:002016.08.16 21:39:05.968 2015.02.06 02:00 test123 GBPUSD,M5: 2015.02.06 02:00:002016.08.16 21:39:05.968 2015.02.06 01:55 test123 GBPUSD,M5: 2015.02.06 01:55:002016.08.16 21:39:05.968 2015.02.06 01:50 test123 GBPUSD,M5: 2015.02.06 01:50:002016.08.16 21:39:05.968 2015.02.06 01:45 test123 GBPUSD,M5: 2015.02.06 01:45:002016.08.16 21:39:05.968 2015.02.06 01:40 test123 GBPUSD,M5: 2015.02.06 01:40:002016.08.16 21:39:05.968 2015.02.06 01:35 test123 GBPUSD,M5: 2015.02.06 01:35:002016.08.16 21:39:05.734 2015.01.29 18:10 test123 GBPUSD,M5: 2015.01.29 18:10:002016.08.16 21:39:05.734 2015.01.29 18:05 test123 GBPUSD,M5: 2015.01.29 18:05:002016.08.16 21:39:05.734 2015.01.29 18:00 test123 GBPUSD,M5: 2015.01.29 18:00:002016.08.16 21:39:05.734 2015.01.29 17:55 test123 GBPUSD,M5: 2015.01.29 17:55:002016.08.16 21:39:05.734 2015.01.29 17:50 test123 GBPUSD,M5: 2015.01.29 17:50:002016.08.16 21:39:05.734 2015.01.29 17:45 test123 GBPUSD,M5: 2015.01.29 17:45:002016.08.16 21:39:05.734 2015.01.29 17:40 test123 GBPUSD,M5: 2015.01.29 17:40:002016.08.16 21:39:05.734 2015.01.29 17:35 test123 GBPUSD,M5: 2015.01.29 17:35:002016.08.16 21:39:05.468 2015.01.22 15:30 test123 GBPUSD,M5: 2015.01.22 15:30:002016.08.16 21:39:05.468 2015.01.22 15:25 test123 GBPUSD,M5: 2015.01.22 15:25:002016.08.16 21:39:05.468 2015.01.22 15:20 test123 GBPUSD,M5: 2015.01.22 15:20:002016.08.16 21:39:05.468 2015.01.22 15:15 test123 GBPUSD,M5: 2015.01.22 15:15:002016.08.16 21:39:05.468 2015.01.22 15:10 test123 GBPUSD,M5: 2015.01.22 15:10:002016.08.16 21:39:05.468 2015.01.22 15:05 test123 GBPUSD,M5: 2015.01.22 15:05:002016.08.16 21:39:05.468 2015.01.22 15:00 test123 GBPUSD,M5: 2015.01.22 15:00:002016.08.16 21:39:05.468 2015.01.22 14:55 test123 GBPUSD,M5: 2015.01.22 14:55:002016.08.16 21:39:05.203 2015.01.14 15:30 test123 GBPUSD,M5: 2015.01.14 15:30:002016.08.16 21:39:05.203 2015.01.14 15:25 test123 GBPUSD,M5: 2015.01.14 15:25:002016.08.16 21:39:05.203 2015.01.14 15:20 test123 GBPUSD,M5: 2015.01.14 15:20:002016.08.16 21:39:05.203 2015.01.14 15:15 test123 GBPUSD,M5: 2015.01.14 15:15:002016.08.16 21:39:05.203 2015.01.14 15:10 test123 GBPUSD,M5: 2015.01.14 15:10:002016.08.16 21:39:05.203 2015.01.14 15:05 test123 GBPUSD,M5: 2015.01.14 15:05:002016.08.16 21:39:05.203 2015.01.14 15:00 test123 GBPUSD,M5: 2015.01.14 15:00:002016.08.16 21:39:05.203 2015.01.14 14:55 test123 GBPUSD,M5: 2015.01.14 14:55:002016.08.16 21:39:04.968 2015.01.06 20:50 test123 GBPUSD,M5: 2015.01.06 20:50:002016.08.16 21:39:04.968 2015.01.06 20:45 test123 GBPUSD,M5: 2015.01.06 20:45:002016.08.16 21:39:04.968 2015.01.06 20:40 test123 GBPUSD,M5: 2015.01.06 20:40:002016.08.16 21:39:04.968 2015.01.06 20:35 test123 GBPUSD,M5: 2015.01.06 20:35:002016.08.16 21:39:04.968 2015.01.06 20:30 test123 GBPUSD,M5: 2015.01.06 20:30:002016.08.16 21:39:04.968 2015.01.06 20:25 test123 GBPUSD,M5: 2015.01.06 20:25:002016.08.16 21:39:04.968 2015.01.06 20:20 test123 GBPUSD,M5: 2015.01.06 20:20:002016.08.16 21:39:04.968 2015.01.06 20:15 test123 GBPUSD,M5: 2015.01.06 20:15:00 почему получаются пропуски во времени?Добавлено: 16-08-2016 20:30:08видимо, в лог пишется всё, а в тестере на вкладке "журнал", почему-то, выпадает.ну вот, на самом интересном месте... Изменено 16 августа, 2016 пользователем machine 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
sniv Опубликовано 16 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 16 августа, 2016 Возможно потому, что Тик - это изменение цены или курса валюты. Например, если цена изменилась, говорят, что произошел один тик. Так же - это Единичная котировка, поступающая из информационной системы (в данном случае ...я так понимаю tickstory) - что metat не особо волнует)0.Проверьте настройки и требования программы (для выходных данных). Не забывайте про 99%))И вот кусок кода для сравнения результатов Вашей пары-----bool timeprev;void OnTick(){ if (timeprev == Time[0]) return; timeprev = Time[0]; Print("Current bar for GBPUSD M5: ",iTime("GBPUSD",PERIOD_M5,0),", ", iOpen("GBPUSD",PERIOD_M5,0),", ", iHigh("GBPUSD",PERIOD_M5,0),", ", iLow("GBPUSD",PERIOD_M5,0),", ", iClose("GBPUSD",PERIOD_M5,0),", ", iVolume("GBPUSD",PERIOD_M5,0)); Print(Time[0]); 11111.mq4 Изменено 16 августа, 2016 пользователем sniv 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
einshtein Опубликовано 17 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 17 августа, 2016 Вставсь такой код, а не свой и все у тебя будет гуд <:-p> Спойлер void OnInit() { EventSetTimer(1); }void OnDeinit() { EventKillTimer(); }void OnTimer() { if (timeprev == Time[0]) return; timeprev = Time[0]; Print(Time[0]); } Ссылка на сообщение Поделиться на другие сайты More sharing options...
machine Опубликовано 17 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 17 августа, 2016 эх, никто не понял, в чём смысл вопросану да ладно, не тема и была Ссылка на сообщение Поделиться на другие сайты More sharing options...
dzennn2 Опубликовано 17 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 17 августа, 2016 Спойлер берём простой код: void OnTick(){ if (timeprev == Time[0]) return; timeprev = Time[0];Print(Time[0]);} ставим на GBPUSD, M5, 99%получаем: Спойлер Цитата 2016.08.16 21:39:07.234 2015.03.17 09:40 test123 GBPUSD,M5: 2015.03.17 09:40:002016.08.16 21:39:07.234 2015.03.17 09:35 test123 GBPUSD,M5: 2015.03.17 09:35:002016.08.16 21:39:07.234 2015.03.17 09:30 test123 GBPUSD,M5: 2015.03.17 09:30:002016.08.16 21:39:07.234 2015.03.17 09:25 test123 GBPUSD,M5: 2015.03.17 09:25:002016.08.16 21:39:07.234 2015.03.17 09:20 test123 GBPUSD,M5: 2015.03.17 09:20:002016.08.16 21:39:07.234 2015.03.17 09:15 test123 GBPUSD,M5: 2015.03.17 09:15:002016.08.16 21:39:07.234 2015.03.17 09:10 test123 GBPUSD,M5: 2015.03.17 09:10:002016.08.16 21:39:07.234 2015.03.17 09:05 test123 GBPUSD,M5: 2015.03.17 09:05:002016.08.16 21:39:07.234 2015.03.17 09:00 test123 GBPUSD,M5: 2015.03.17 09:00:002016.08.16 21:39:07.234 2015.03.17 08:55 test123 GBPUSD,M5: 2015.03.17 08:55:002016.08.16 21:39:07.234 2015.03.17 08:50 test123 GBPUSD,M5: 2015.03.17 08:50:002016.08.16 21:39:07.234 2015.03.17 08:45 test123 GBPUSD,M5: 2015.03.17 08:45:002016.08.16 21:39:07.234 2015.03.17 08:40 test123 GBPUSD,M5: 2015.03.17 08:40:002016.08.16 21:39:07.234 2015.03.17 08:35 test123 GBPUSD,M5: 2015.03.17 08:35:002016.08.16 21:39:07.234 2015.03.17 03:50 test123 GBPUSD,M5: 2015.03.17 03:50:002016.08.16 21:39:07.234 2015.03.17 03:45 test123 GBPUSD,M5: 2015.03.17 03:45:002016.08.16 21:39:07.234 2015.03.17 03:40 test123 GBPUSD,M5: 2015.03.17 03:40:002016.08.16 21:39:07.234 2015.03.17 03:35 test123 GBPUSD,M5: 2015.03.17 03:35:002016.08.16 21:39:07.234 2015.03.17 03:30 test123 GBPUSD,M5: 2015.03.17 03:30:002016.08.16 21:39:07.234 2015.03.17 03:25 test123 GBPUSD,M5: 2015.03.17 03:25:002016.08.16 21:39:07.234 2015.03.17 03:20 test123 GBPUSD,M5: 2015.03.17 03:20:002016.08.16 21:39:07.234 2015.03.17 03:15 test123 GBPUSD,M5: 2015.03.17 03:15:002016.08.16 21:39:06.968 2015.03.10 22:30 test123 GBPUSD,M5: 2015.03.10 22:30:002016.08.16 21:39:06.968 2015.03.10 22:25 test123 GBPUSD,M5: 2015.03.10 22:25:002016.08.16 21:39:06.968 2015.03.10 22:20 test123 GBPUSD,M5: 2015.03.10 22:20:002016.08.16 21:39:06.968 2015.03.10 22:15 test123 GBPUSD,M5: 2015.03.10 22:15:002016.08.16 21:39:06.968 2015.03.10 22:10 test123 GBPUSD,M5: 2015.03.10 22:10:002016.08.16 21:39:06.968 2015.03.10 22:05 test123 GBPUSD,M5: 2015.03.10 22:05:002016.08.16 21:39:06.968 2015.03.10 22:00 test123 GBPUSD,M5: 2015.03.10 22:00:002016.08.16 21:39:06.968 2015.03.10 21:55 test123 GBPUSD,M5: 2015.03.10 21:55:002016.08.16 21:39:06.734 2015.03.05 10:10 test123 GBPUSD,M5: 2015.03.05 10:10:002016.08.16 21:39:06.734 2015.03.05 10:05 test123 GBPUSD,M5: 2015.03.05 10:05:002016.08.16 21:39:06.734 2015.03.05 10:00 test123 GBPUSD,M5: 2015.03.05 10:00:002016.08.16 21:39:06.734 2015.03.05 09:55 test123 GBPUSD,M5: 2015.03.05 09:55:002016.08.16 21:39:06.734 2015.03.05 09:50 test123 GBPUSD,M5: 2015.03.05 09:50:002016.08.16 21:39:06.734 2015.03.05 09:45 test123 GBPUSD,M5: 2015.03.05 09:45:002016.08.16 21:39:06.734 2015.03.05 09:40 test123 GBPUSD,M5: 2015.03.05 09:40:002016.08.16 21:39:06.734 2015.03.05 09:35 test123 GBPUSD,M5: 2015.03.05 09:35:002016.08.16 21:39:06.453 2015.02.24 07:30 test123 GBPUSD,M5: 2015.02.24 07:30:002016.08.16 21:39:06.453 2015.02.24 07:25 test123 GBPUSD,M5: 2015.02.24 07:25:002016.08.16 21:39:06.453 2015.02.24 07:20 test123 GBPUSD,M5: 2015.02.24 07:20:002016.08.16 21:39:06.453 2015.02.24 07:15 test123 GBPUSD,M5: 2015.02.24 07:15:002016.08.16 21:39:06.453 2015.02.24 07:10 test123 GBPUSD,M5: 2015.02.24 07:10:002016.08.16 21:39:06.453 2015.02.24 07:05 test123 GBPUSD,M5: 2015.02.24 07:05:002016.08.16 21:39:06.453 2015.02.24 07:00 test123 GBPUSD,M5: 2015.02.24 07:00:002016.08.16 21:39:06.453 2015.02.24 06:55 test123 GBPUSD,M5: 2015.02.24 06:55:002016.08.16 21:39:06.250 2015.02.17 15:30 test123 GBPUSD,M5: 2015.02.17 15:30:002016.08.16 21:39:06.250 2015.02.17 15:25 test123 GBPUSD,M5: 2015.02.17 15:25:002016.08.16 21:39:06.250 2015.02.17 15:20 test123 GBPUSD,M5: 2015.02.17 15:20:002016.08.16 21:39:06.250 2015.02.17 15:15 test123 GBPUSD,M5: 2015.02.17 15:15:002016.08.16 21:39:06.250 2015.02.17 15:10 test123 GBPUSD,M5: 2015.02.17 15:10:002016.08.16 21:39:06.250 2015.02.17 15:05 test123 GBPUSD,M5: 2015.02.17 15:05:002016.08.16 21:39:06.250 2015.02.17 15:00 test123 GBPUSD,M5: 2015.02.17 15:00:002016.08.16 21:39:06.250 2015.02.17 14:55 test123 GBPUSD,M5: 2015.02.17 14:55:002016.08.16 21:39:05.968 2015.02.06 02:10 test123 GBPUSD,M5: 2015.02.06 02:10:002016.08.16 21:39:05.968 2015.02.06 02:05 test123 GBPUSD,M5: 2015.02.06 02:05:002016.08.16 21:39:05.968 2015.02.06 02:00 test123 GBPUSD,M5: 2015.02.06 02:00:002016.08.16 21:39:05.968 2015.02.06 01:55 test123 GBPUSD,M5: 2015.02.06 01:55:002016.08.16 21:39:05.968 2015.02.06 01:50 test123 GBPUSD,M5: 2015.02.06 01:50:002016.08.16 21:39:05.968 2015.02.06 01:45 test123 GBPUSD,M5: 2015.02.06 01:45:002016.08.16 21:39:05.968 2015.02.06 01:40 test123 GBPUSD,M5: 2015.02.06 01:40:002016.08.16 21:39:05.968 2015.02.06 01:35 test123 GBPUSD,M5: 2015.02.06 01:35:002016.08.16 21:39:05.734 2015.01.29 18:10 test123 GBPUSD,M5: 2015.01.29 18:10:002016.08.16 21:39:05.734 2015.01.29 18:05 test123 GBPUSD,M5: 2015.01.29 18:05:002016.08.16 21:39:05.734 2015.01.29 18:00 test123 GBPUSD,M5: 2015.01.29 18:00:002016.08.16 21:39:05.734 2015.01.29 17:55 test123 GBPUSD,M5: 2015.01.29 17:55:002016.08.16 21:39:05.734 2015.01.29 17:50 test123 GBPUSD,M5: 2015.01.29 17:50:002016.08.16 21:39:05.734 2015.01.29 17:45 test123 GBPUSD,M5: 2015.01.29 17:45:002016.08.16 21:39:05.734 2015.01.29 17:40 test123 GBPUSD,M5: 2015.01.29 17:40:002016.08.16 21:39:05.734 2015.01.29 17:35 test123 GBPUSD,M5: 2015.01.29 17:35:002016.08.16 21:39:05.468 2015.01.22 15:30 test123 GBPUSD,M5: 2015.01.22 15:30:002016.08.16 21:39:05.468 2015.01.22 15:25 test123 GBPUSD,M5: 2015.01.22 15:25:002016.08.16 21:39:05.468 2015.01.22 15:20 test123 GBPUSD,M5: 2015.01.22 15:20:002016.08.16 21:39:05.468 2015.01.22 15:15 test123 GBPUSD,M5: 2015.01.22 15:15:002016.08.16 21:39:05.468 2015.01.22 15:10 test123 GBPUSD,M5: 2015.01.22 15:10:002016.08.16 21:39:05.468 2015.01.22 15:05 test123 GBPUSD,M5: 2015.01.22 15:05:002016.08.16 21:39:05.468 2015.01.22 15:00 test123 GBPUSD,M5: 2015.01.22 15:00:002016.08.16 21:39:05.468 2015.01.22 14:55 test123 GBPUSD,M5: 2015.01.22 14:55:002016.08.16 21:39:05.203 2015.01.14 15:30 test123 GBPUSD,M5: 2015.01.14 15:30:002016.08.16 21:39:05.203 2015.01.14 15:25 test123 GBPUSD,M5: 2015.01.14 15:25:002016.08.16 21:39:05.203 2015.01.14 15:20 test123 GBPUSD,M5: 2015.01.14 15:20:002016.08.16 21:39:05.203 2015.01.14 15:15 test123 GBPUSD,M5: 2015.01.14 15:15:002016.08.16 21:39:05.203 2015.01.14 15:10 test123 GBPUSD,M5: 2015.01.14 15:10:002016.08.16 21:39:05.203 2015.01.14 15:05 test123 GBPUSD,M5: 2015.01.14 15:05:002016.08.16 21:39:05.203 2015.01.14 15:00 test123 GBPUSD,M5: 2015.01.14 15:00:002016.08.16 21:39:05.203 2015.01.14 14:55 test123 GBPUSD,M5: 2015.01.14 14:55:002016.08.16 21:39:04.968 2015.01.06 20:50 test123 GBPUSD,M5: 2015.01.06 20:50:002016.08.16 21:39:04.968 2015.01.06 20:45 test123 GBPUSD,M5: 2015.01.06 20:45:002016.08.16 21:39:04.968 2015.01.06 20:40 test123 GBPUSD,M5: 2015.01.06 20:40:002016.08.16 21:39:04.968 2015.01.06 20:35 test123 GBPUSD,M5: 2015.01.06 20:35:002016.08.16 21:39:04.968 2015.01.06 20:30 test123 GBPUSD,M5: 2015.01.06 20:30:002016.08.16 21:39:04.968 2015.01.06 20:25 test123 GBPUSD,M5: 2015.01.06 20:25:002016.08.16 21:39:04.968 2015.01.06 20:20 test123 GBPUSD,M5: 2015.01.06 20:20:002016.08.16 21:39:04.968 2015.01.06 20:15 test123 GBPUSD,M5: 2015.01.06 20:15:00 почему получаются пропуски во времени?Добавлено: 16-08-2016 20:30:08видимо, в лог пишется всё, а в тестере на вкладке "журнал", почему-то, выпадает.ну вот, на самом интересном месте... У меня этот несколько модифицированный код дает пропуски с пятницы на понедельник, или когда явная дыра в истории (тикстори дука 99%).Какой тип переменной "timeprev" в вашем коде?void OnTick() {//--- static datetime timeprev, mem; if (timeprev == Time[0]) return; timeprev = Time[0]; if(timeprev - mem > 301) Print("!!! timeprev - mem= ", int(timeprev - mem)," mem= ", TimeToString(mem, TIME_DATE|TIME_SECONDS), " timeprev= ", TimeToString(timeprev, TIME_DATE|TIME_SECONDS) ); mem = timeprev; } "видимо, в лог пишется всё, а в тестере на вкладке "журнал", почему-то, выпадает.ну вот, на самом интересном месте..."Да в лог все попадает, а в журнал фильтруется то чего много и очень быстро генерится. Изменено 17 августа, 2016 пользователем dzennn2 3 Ссылка на сообщение Поделиться на другие сайты More sharing options...
a.serega Опубликовано 17 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 17 августа, 2016 кто нибуть знает советника на индикаторе BrainTrend2SigALERT Ссылка на сообщение Поделиться на другие сайты More sharing options...
Foxonn Опубликовано 18 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 августа, 2016 Здравствуйте товарищи, подскажите пожалуйста в чем проблема? запускаю тестер стратегий с данным советником, но он неправильно считает хай и лоу в заданном временном периоде! а запускаю в режиме реального тестирование нормально работает, только вот не обновляет хаи и лоу если наступил следующий день! Спойлер //+------------------------------------------------------------------+//| GEAF.mq4 |//| Foxonn |//| hitman_94_1@mail.ru |//+------------------------------------------------------------------+#property copyright "Foxonn"#property link "hitman_94_1@mail.ru"#property version "1.00"extern string com = "Asia Box";extern double Lots = 1.0;extern double Mtp = 3.0; //множитель тейкпрофита от ширины коробкиextern double Mkoef = 2.0; //коэфециент умножения для мартинаextern double Otstypotgranic = 0.00050; //отступ от граници коробкиextern int RazmerKorobki = 500; //ограничения на размер коробкиextern int Slippage = 1;extern int Magic = 101010;extern string TimeStart = "10:00";extern string TimeStop = "23:00";int prodazhi=0,pokypki=0; double lo=0,hi=0,oOpen=0;string itrade, hlhp=0, hllp=0, flat, trend, price;double sl=0,tp=0,dist=0,boxsize=0,otstupothi=0,otstupotlo=0,Lot=0;int ticket,timetrade,j;//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+int OnInit() { if( Digits == 3 || Digits == 5) { Slippage *= 10; } if(TimeHour(TimeCurrent()) >= TimeStart && TimeHour(TimeCurrent()) { prodazhi = 1; Print("Имеется сигнал на продажу, сделка откроется при повторном сигнале!"); } else if (price == flat) { prodazhi = 0; } if(TimeHour(TimeCurrent()) >= TimeStart && TimeHour(TimeCurrent()) otstupothi && boxsize { pokypki = 1; Print("Имеется сигнал на покупку, сделка откроется при повторном сигнале!"); } else if (price == flat) { pokypki = 0; } return(INIT_SUCCEEDED); }//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+void OnDeinit(const int reason) { }//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+void OnTick(){ //-------------------------------------------------------- Comment("Баланс: " + NormalizeDouble(AccountBalance(),2) + "\n" + "Следующий лот: " + (Lot) + "\n" + "Ширина коробки: " + (boxsize) + "\n" + "Значение верхней шраницы коробки: " + (hi) + "\n" + "Значние нижней шраницы коробки: " + (lo) + "\n" + "Торговля в данное время: " +(itrade)); //+------------------------------------------------------------------+ if (TimeHour(TimeCurrent()) >= TimeStart && TimeHour(TimeCurrent()) { itrade = " разрешена"; timetrade = 0; } else itrade = " запрещена"; timetrade = 1; //+------------------------------------------------------------------+ dist = hi - lo; //находим дистанциюмежду Hight и Low точками. boxsize = dist * 100000;//+------------------------------------------------------------------+ otstupothi = hi + Otstypotgranic; //Отступ от границ коробки. otstupotlo = lo - Otstypotgranic; //+------------------------------------------------------------------+ j = OrdersHistoryTotal()-1; if(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)==true && OrderMagicNumber() == Magic && OrderSymbol() == Symbol() && OrderProfit() { Lot = Lots * Mkoef; Print("Работает мартингейл!"); } else { Lot = Lots; }//+------------------------------------------------------------------+ if(Ask && Bid lo) { price = flat; }else price = trend;//+------------------------------------------------------------------+ oOpen = iOpen(0,0,0);//+------------------------------------------------------------------+ datetime timestart=D'07:00'; //время поиска, от datetime timeend=D'09:59'; //и до int shiftstart=0,shiftend=0,diff=0; shiftstart=iBarShift(Symbol(),0,timestart); //выясняем индекс бара с временем старта поиска shiftend=iBarShift(Symbol(),0,timeend); //выясняем индекс бара с временем финиша поиска diff=shiftstart-shiftend; //вычисляем кол-во баров для поиска экстремумов lo=iLow(Symbol(),0,iLowest(Symbol(),0,MODE_LOW,diff,shiftend)); //выясняем минимум hi=iHigh(Symbol(),0,iHighest(Symbol(),0,MODE_HIGH,diff,shiftend)); //и максимум//+------------------------------------------------------------------+ if (TimeHour(TimeCurrent()) >= TimeStart && TimeHour(TimeCurrent()) { tp = NormalizeDouble(lo - (dist*Mtp), Digits); sl = NormalizeDouble(otstupothi, Digits); ticket = OrderSend(Symbol(), OP_SELL, Lot, Bid, Slippage, sl, tp, com, Magic, 0, Red); if(ticket prodazhi = 1; pokypki = 0; } if (TimeHour(TimeCurrent()) >= TimeStart && TimeHour(TimeCurrent()) otstupothi && boxsize { tp = NormalizeDouble(hi + (dist*Mtp), Digits); sl = NormalizeDouble(otstupotlo, Digits); ticket = OrderSend(Symbol(), OP_BUY, Lot, Ask, Slippage, sl, tp, com, Magic, 0, Blue); if(ticket prodazhi = 0; pokypki = 1; } }//+------------------------------------------------------------------+int CountBuy() { int count = 0; for (int trade = OrdersTotal()-1; trade >=0; trade--) { if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY) count++; } } return (count);}//+------------------------------------------------------------------+int CountSell() { int count = 0; for (int trade = OrdersTotal() - 1; trade >= 0; trade--) { if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL) count++; } } return (count);}//+------------------------------------------------------------------+ AsiaBoxEA.mq4 Изменено 18 августа, 2016 пользователем Foxonn Ссылка на сообщение Поделиться на другие сайты More sharing options...
Arius777 Опубликовано 19 августа, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 19 августа, 2016 Цитата Здравствуйте товарищи, подскажите пожалуйста в чем проблема? Бегло пробежался, думаю тут следующие ошибки (возможно, более тщательный взгляд показал бы больше):Мне кажется, что проблема в том, что неправильно указал время timestart и timeend. Выдержка из справочника: Цитата //--- примеры объявлений, на которые будут получены предупреждения компилятораdatetime warning1=D'12:30:27'; // равнозначно D'[дата компиляции] 12:30:27'datetime warning2=D''; // равнозначно __DATETIME__ в режиме реального времени нормально работает, потому что он берет даты с последней компиляции, попробуйте запустить через день после этого, не компилируя - выдаст вчерашние значения.Код неудобно читать - почему бы не сделать по порядку все расчеты - в начале рассчитать хай и лоу, а затем уж их использовать.А чтобы каждый день обновлял, как раз и надо в переменных datetime объявить полностью с днем - "datetime NY=D'2015.01.01 00:00'" и вместо 2015.01.01 подставлять текущий день. можно подумать, как это лучше сделать ;)Я бы использовал действительные переменные double выведенные из datetime. А вообще, пока писал это сообщение, вижу много несостыковок в коде - к примеру, в OnInit Вы сравниваете переменные int (TimeHour) и строковые переменные string (TimeStart)... В общем, надо разбираться, я Вас натолкнул, надеюсь, в нужное русло :-? 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти