Приветствую! А может для MQL5 сделать новую ветку? А то тут все перемешается и будет очень неудобно и тем кто MQL4 изучает и тем кто MQL5.
Поддерживаю. Ув. pavlus777 и модераторы, может откроете новую ветку под MQL5?
От xbms, 13 апреля, 2013 в Уголок Программиста
Приветствую! А может для MQL5 сделать новую ветку? А то тут все перемешается и будет очень неудобно и тем кто MQL4 изучает и тем кто MQL5.
Приветствую! А может для MQL5 сделать новую ветку? А то тут все перемешается и будет очень неудобно и тем кто MQL4 изучает и тем кто MQL5.
Поддерживаю. Ув. pavlus777 и модераторы, может откроете новую ветку под MQL5?
Доброго времени суток! Подскажите, возможно ли написать стрелочник на совпадение условий от нескольких индикаторов, не имея декомпилированных версий этих индикаторов?
Здравствуйте!Помогите найти ошибку!Написал функцию для закрытия части лота, когда цена проходит определенное кол-во пунктов в плюс, стоп лосс не переносится.Для проверки написал написал советник(не судите строго.я только учусь).Идея взята из системы "Снайпер".
-----------------------------------------------------------+//+-------
//| CloseLots.mq4 |
//| Copyright 2016, MetaQuotes Software Corp. |
//|
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link
#property version "1.00"
#property strict
extern 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 );
}
Уважаемые специалисты вынесите пожалуйста в настройки индикатора "Стиль" линий.
Заранее благодарен!!!
Изменено 13 июля, 2017 пользователем Pavel888
Огромное СПАСИБО!
То что надо. Удачи Вам во всех делах!
Всем привет! Вопрос к Сергею, но если кто ещё компетентно ответит, то буду благодарен. Думаю, на эту тему можно даже небольшое видео записать. Итак, вопрос по безопасности прав автора. Мы все знаем, что в mql4 коде можно прописать определение номера счёта и, соответственно, можно указать, чтобы советник работал на конкретном счету, а если счёт другой, то сообщение "обратитесь к автору", например. Это бывает полезно, когда написанную тобой программу просят люди и ты не против её дать конкретному человеку (естественно формат ex4) для использования или теста, но заинтересован, чтобы её не распространяли дальше. Так вот вопрос, насколько это надёжный способ защиты своих авторских прав, есть ли методы декомпиляции, возможно есть ещё какой-то метод аналогичный написанному мной или дополнение к нему, поделитесь, пожалуйста. Спасибо.
Добрый день,
большая просьба к программистам, добавить суффиксы-префиксы в 2 однотипных индикатора для парной торговли.

Советник по урокам и не работет... Решил добавить MM. Открывает 2 сделки потом пишет :
2016.08.06 20:06:56.027 2016.08.05 23:00 TMA Fair MM GBPUSD,H1: invalid lots amount for OrderSend function
2016.08.06 20:06:56.027 2016.08.05 23:00 TMA Fair MM GBPUSD,H1: Alert: Не возможно открыть позицию с обьёмом 0.05
2016.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);
}
//+------------------------------------------------------------------+
Советник по урокам и не работет... Решил добавить MM. Открывает 2 сделки потом пишет :
2016.08.06 20:06:56.027 2016.08.05 23:00 TMA Fair MM GBPUSD,H1: invalid lots amount for OrderSend function
2016.08.06 20:06:56.027 2016.08.05 23:00 TMA Fair MM GBPUSD,H1: Alert: Не возможно открыть позицию с обьёмом 0.05
2016.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);
}
Подскажите пожалуйста как открыть для чтения файл .XML
Доброго времени суток! Уважаемые господа знатоки, подскажите, пожалуйста, ответ на такой вопрос: с помощью какой функции можно посчитать разницу (чтобы она была в пунктах) между верхней линией и нижней линией индикатора Bands?
Здравствуйте!
Помогите написать код для определения цены открытия, закрытия, максимума и минимума 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
Походу автор забил на тему. x( Жаль. Я бы помог ток сам разбираюсь нифига не получается.
Коллеги,
есть трал, который тралит последние профитные позиции сетки.
Как посчитать, на какую сумму он закрыл этих последних сделок в рамках одной (последней открытой) сетки?
Большое спасибо!
Открывать и читать как текстовый файл и выписывать поиск тегов xml разметки.Подскажите пожалуйста как открыть для чтения файл .XML
С помощью вычитания. У Вас будет два буфера с верхней и нижней линией: pips = bufHigh - bufLowс помощью какой функции можно посчитать разницу (чтобы она была в пунктах) между верхней линией и нижней линией индикатора Bands?
Помогите написать код для определения цены открытия, закрытия, максимума и минимума 12-ти часовой свечи.
Не знаю, как реализовать период 12 часов, поэтому использую три четырехчасовых свечи.
Изменено 16 августа, 2016 пользователем 0ll
берём простой код:
void OnTick(){
if (timeprev == Time[0]) return;
timeprev = Time[0];
Print(Time[0]);
}
Цитата2016.08.16 21:39:07.234 2015.03.17 09:40 test123 GBPUSD,M5: 2015.03.17 09:40:00
2016.08.16 21:39:07.234 2015.03.17 09:35 test123 GBPUSD,M5: 2015.03.17 09:35:00
2016.08.16 21:39:07.234 2015.03.17 09:30 test123 GBPUSD,M5: 2015.03.17 09:30:00
2016.08.16 21:39:07.234 2015.03.17 09:25 test123 GBPUSD,M5: 2015.03.17 09:25:00
2016.08.16 21:39:07.234 2015.03.17 09:20 test123 GBPUSD,M5: 2015.03.17 09:20:00
2016.08.16 21:39:07.234 2015.03.17 09:15 test123 GBPUSD,M5: 2015.03.17 09:15:00
2016.08.16 21:39:07.234 2015.03.17 09:10 test123 GBPUSD,M5: 2015.03.17 09:10:00
2016.08.16 21:39:07.234 2015.03.17 09:05 test123 GBPUSD,M5: 2015.03.17 09:05:00
2016.08.16 21:39:07.234 2015.03.17 09:00 test123 GBPUSD,M5: 2015.03.17 09:00:00
2016.08.16 21:39:07.234 2015.03.17 08:55 test123 GBPUSD,M5: 2015.03.17 08:55:00
2016.08.16 21:39:07.234 2015.03.17 08:50 test123 GBPUSD,M5: 2015.03.17 08:50:00
2016.08.16 21:39:07.234 2015.03.17 08:45 test123 GBPUSD,M5: 2015.03.17 08:45:00
2016.08.16 21:39:07.234 2015.03.17 08:40 test123 GBPUSD,M5: 2015.03.17 08:40:00
2016.08.16 21:39:07.234 2015.03.17 08:35 test123 GBPUSD,M5: 2015.03.17 08:35:00
2016.08.16 21:39:07.234 2015.03.17 03:50 test123 GBPUSD,M5: 2015.03.17 03:50:00
2016.08.16 21:39:07.234 2015.03.17 03:45 test123 GBPUSD,M5: 2015.03.17 03:45:00
2016.08.16 21:39:07.234 2015.03.17 03:40 test123 GBPUSD,M5: 2015.03.17 03:40:00
2016.08.16 21:39:07.234 2015.03.17 03:35 test123 GBPUSD,M5: 2015.03.17 03:35:00
2016.08.16 21:39:07.234 2015.03.17 03:30 test123 GBPUSD,M5: 2015.03.17 03:30:00
2016.08.16 21:39:07.234 2015.03.17 03:25 test123 GBPUSD,M5: 2015.03.17 03:25:00
2016.08.16 21:39:07.234 2015.03.17 03:20 test123 GBPUSD,M5: 2015.03.17 03:20:00
2016.08.16 21:39:07.234 2015.03.17 03:15 test123 GBPUSD,M5: 2015.03.17 03:15:00
2016.08.16 21:39:06.968 2015.03.10 22:30 test123 GBPUSD,M5: 2015.03.10 22:30:00
2016.08.16 21:39:06.968 2015.03.10 22:25 test123 GBPUSD,M5: 2015.03.10 22:25:00
2016.08.16 21:39:06.968 2015.03.10 22:20 test123 GBPUSD,M5: 2015.03.10 22:20:00
2016.08.16 21:39:06.968 2015.03.10 22:15 test123 GBPUSD,M5: 2015.03.10 22:15:00
2016.08.16 21:39:06.968 2015.03.10 22:10 test123 GBPUSD,M5: 2015.03.10 22:10:00
2016.08.16 21:39:06.968 2015.03.10 22:05 test123 GBPUSD,M5: 2015.03.10 22:05:00
2016.08.16 21:39:06.968 2015.03.10 22:00 test123 GBPUSD,M5: 2015.03.10 22:00:00
2016.08.16 21:39:06.968 2015.03.10 21:55 test123 GBPUSD,M5: 2015.03.10 21:55:00
2016.08.16 21:39:06.734 2015.03.05 10:10 test123 GBPUSD,M5: 2015.03.05 10:10:00
2016.08.16 21:39:06.734 2015.03.05 10:05 test123 GBPUSD,M5: 2015.03.05 10:05:00
2016.08.16 21:39:06.734 2015.03.05 10:00 test123 GBPUSD,M5: 2015.03.05 10:00:00
2016.08.16 21:39:06.734 2015.03.05 09:55 test123 GBPUSD,M5: 2015.03.05 09:55:00
2016.08.16 21:39:06.734 2015.03.05 09:50 test123 GBPUSD,M5: 2015.03.05 09:50:00
2016.08.16 21:39:06.734 2015.03.05 09:45 test123 GBPUSD,M5: 2015.03.05 09:45:00
2016.08.16 21:39:06.734 2015.03.05 09:40 test123 GBPUSD,M5: 2015.03.05 09:40:00
2016.08.16 21:39:06.734 2015.03.05 09:35 test123 GBPUSD,M5: 2015.03.05 09:35:00
2016.08.16 21:39:06.453 2015.02.24 07:30 test123 GBPUSD,M5: 2015.02.24 07:30:00
2016.08.16 21:39:06.453 2015.02.24 07:25 test123 GBPUSD,M5: 2015.02.24 07:25:00
2016.08.16 21:39:06.453 2015.02.24 07:20 test123 GBPUSD,M5: 2015.02.24 07:20:00
2016.08.16 21:39:06.453 2015.02.24 07:15 test123 GBPUSD,M5: 2015.02.24 07:15:00
2016.08.16 21:39:06.453 2015.02.24 07:10 test123 GBPUSD,M5: 2015.02.24 07:10:00
2016.08.16 21:39:06.453 2015.02.24 07:05 test123 GBPUSD,M5: 2015.02.24 07:05:00
2016.08.16 21:39:06.453 2015.02.24 07:00 test123 GBPUSD,M5: 2015.02.24 07:00:00
2016.08.16 21:39:06.453 2015.02.24 06:55 test123 GBPUSD,M5: 2015.02.24 06:55:00
2016.08.16 21:39:06.250 2015.02.17 15:30 test123 GBPUSD,M5: 2015.02.17 15:30:00
2016.08.16 21:39:06.250 2015.02.17 15:25 test123 GBPUSD,M5: 2015.02.17 15:25:00
2016.08.16 21:39:06.250 2015.02.17 15:20 test123 GBPUSD,M5: 2015.02.17 15:20:00
2016.08.16 21:39:06.250 2015.02.17 15:15 test123 GBPUSD,M5: 2015.02.17 15:15:00
2016.08.16 21:39:06.250 2015.02.17 15:10 test123 GBPUSD,M5: 2015.02.17 15:10:00
2016.08.16 21:39:06.250 2015.02.17 15:05 test123 GBPUSD,M5: 2015.02.17 15:05:00
2016.08.16 21:39:06.250 2015.02.17 15:00 test123 GBPUSD,M5: 2015.02.17 15:00:00
2016.08.16 21:39:06.250 2015.02.17 14:55 test123 GBPUSD,M5: 2015.02.17 14:55:00
2016.08.16 21:39:05.968 2015.02.06 02:10 test123 GBPUSD,M5: 2015.02.06 02:10:00
2016.08.16 21:39:05.968 2015.02.06 02:05 test123 GBPUSD,M5: 2015.02.06 02:05:00
2016.08.16 21:39:05.968 2015.02.06 02:00 test123 GBPUSD,M5: 2015.02.06 02:00:00
2016.08.16 21:39:05.968 2015.02.06 01:55 test123 GBPUSD,M5: 2015.02.06 01:55:00
2016.08.16 21:39:05.968 2015.02.06 01:50 test123 GBPUSD,M5: 2015.02.06 01:50:00
2016.08.16 21:39:05.968 2015.02.06 01:45 test123 GBPUSD,M5: 2015.02.06 01:45:00
2016.08.16 21:39:05.968 2015.02.06 01:40 test123 GBPUSD,M5: 2015.02.06 01:40:00
2016.08.16 21:39:05.968 2015.02.06 01:35 test123 GBPUSD,M5: 2015.02.06 01:35:00
2016.08.16 21:39:05.734 2015.01.29 18:10 test123 GBPUSD,M5: 2015.01.29 18:10:00
2016.08.16 21:39:05.734 2015.01.29 18:05 test123 GBPUSD,M5: 2015.01.29 18:05:00
2016.08.16 21:39:05.734 2015.01.29 18:00 test123 GBPUSD,M5: 2015.01.29 18:00:00
2016.08.16 21:39:05.734 2015.01.29 17:55 test123 GBPUSD,M5: 2015.01.29 17:55:00
2016.08.16 21:39:05.734 2015.01.29 17:50 test123 GBPUSD,M5: 2015.01.29 17:50:00
2016.08.16 21:39:05.734 2015.01.29 17:45 test123 GBPUSD,M5: 2015.01.29 17:45:00
2016.08.16 21:39:05.734 2015.01.29 17:40 test123 GBPUSD,M5: 2015.01.29 17:40:00
2016.08.16 21:39:05.734 2015.01.29 17:35 test123 GBPUSD,M5: 2015.01.29 17:35:00
2016.08.16 21:39:05.468 2015.01.22 15:30 test123 GBPUSD,M5: 2015.01.22 15:30:00
2016.08.16 21:39:05.468 2015.01.22 15:25 test123 GBPUSD,M5: 2015.01.22 15:25:00
2016.08.16 21:39:05.468 2015.01.22 15:20 test123 GBPUSD,M5: 2015.01.22 15:20:00
2016.08.16 21:39:05.468 2015.01.22 15:15 test123 GBPUSD,M5: 2015.01.22 15:15:00
2016.08.16 21:39:05.468 2015.01.22 15:10 test123 GBPUSD,M5: 2015.01.22 15:10:00
2016.08.16 21:39:05.468 2015.01.22 15:05 test123 GBPUSD,M5: 2015.01.22 15:05:00
2016.08.16 21:39:05.468 2015.01.22 15:00 test123 GBPUSD,M5: 2015.01.22 15:00:00
2016.08.16 21:39:05.468 2015.01.22 14:55 test123 GBPUSD,M5: 2015.01.22 14:55:00
2016.08.16 21:39:05.203 2015.01.14 15:30 test123 GBPUSD,M5: 2015.01.14 15:30:00
2016.08.16 21:39:05.203 2015.01.14 15:25 test123 GBPUSD,M5: 2015.01.14 15:25:00
2016.08.16 21:39:05.203 2015.01.14 15:20 test123 GBPUSD,M5: 2015.01.14 15:20:00
2016.08.16 21:39:05.203 2015.01.14 15:15 test123 GBPUSD,M5: 2015.01.14 15:15:00
2016.08.16 21:39:05.203 2015.01.14 15:10 test123 GBPUSD,M5: 2015.01.14 15:10:00
2016.08.16 21:39:05.203 2015.01.14 15:05 test123 GBPUSD,M5: 2015.01.14 15:05:00
2016.08.16 21:39:05.203 2015.01.14 15:00 test123 GBPUSD,M5: 2015.01.14 15:00:00
2016.08.16 21:39:05.203 2015.01.14 14:55 test123 GBPUSD,M5: 2015.01.14 14:55:00
2016.08.16 21:39:04.968 2015.01.06 20:50 test123 GBPUSD,M5: 2015.01.06 20:50:00
2016.08.16 21:39:04.968 2015.01.06 20:45 test123 GBPUSD,M5: 2015.01.06 20:45:00
2016.08.16 21:39:04.968 2015.01.06 20:40 test123 GBPUSD,M5: 2015.01.06 20:40:00
2016.08.16 21:39:04.968 2015.01.06 20:35 test123 GBPUSD,M5: 2015.01.06 20:35:00
2016.08.16 21:39:04.968 2015.01.06 20:30 test123 GBPUSD,M5: 2015.01.06 20:30:00
2016.08.16 21:39:04.968 2015.01.06 20:25 test123 GBPUSD,M5: 2015.01.06 20:25:00
2016.08.16 21:39:04.968 2015.01.06 20:20 test123 GBPUSD,M5: 2015.01.06 20:20:00
2016.08.16 21:39:04.968 2015.01.06 20:15 test123 GBPUSD,M5: 2015.01.06 20:15:00
Изменено 16 августа, 2016 пользователем machine
Возможно потому, что Тик - это изменение цены или курса валюты. Например, если цена изменилась, говорят, что произошел один тик. Так же - это Единичная котировка, поступающая из информационной системы (в данном случае ...я так понимаю 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]);
Изменено 17 августа, 2016 пользователем sniv
Вставсь такой код, а не свой и все у тебя будет гуд <:-p>
void OnInit()
{
EventSetTimer(1);
}
void OnDeinit()
{
EventKillTimer();
}
void OnTimer()
{
if (timeprev == Time[0]) return;
timeprev = Time[0];
Print(Time[0]);
}
эх, никто не понял, в чём смысл вопроса
ну да ладно, не тема и была
берём простой код: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:00
2016.08.16 21:39:07.234 2015.03.17 09:35 test123 GBPUSD,M5: 2015.03.17 09:35:00
2016.08.16 21:39:07.234 2015.03.17 09:30 test123 GBPUSD,M5: 2015.03.17 09:30:00
2016.08.16 21:39:07.234 2015.03.17 09:25 test123 GBPUSD,M5: 2015.03.17 09:25:00
2016.08.16 21:39:07.234 2015.03.17 09:20 test123 GBPUSD,M5: 2015.03.17 09:20:00
2016.08.16 21:39:07.234 2015.03.17 09:15 test123 GBPUSD,M5: 2015.03.17 09:15:00
2016.08.16 21:39:07.234 2015.03.17 09:10 test123 GBPUSD,M5: 2015.03.17 09:10:00
2016.08.16 21:39:07.234 2015.03.17 09:05 test123 GBPUSD,M5: 2015.03.17 09:05:00
2016.08.16 21:39:07.234 2015.03.17 09:00 test123 GBPUSD,M5: 2015.03.17 09:00:00
2016.08.16 21:39:07.234 2015.03.17 08:55 test123 GBPUSD,M5: 2015.03.17 08:55:00
2016.08.16 21:39:07.234 2015.03.17 08:50 test123 GBPUSD,M5: 2015.03.17 08:50:00
2016.08.16 21:39:07.234 2015.03.17 08:45 test123 GBPUSD,M5: 2015.03.17 08:45:00
2016.08.16 21:39:07.234 2015.03.17 08:40 test123 GBPUSD,M5: 2015.03.17 08:40:00
2016.08.16 21:39:07.234 2015.03.17 08:35 test123 GBPUSD,M5: 2015.03.17 08:35:00
2016.08.16 21:39:07.234 2015.03.17 03:50 test123 GBPUSD,M5: 2015.03.17 03:50:00
2016.08.16 21:39:07.234 2015.03.17 03:45 test123 GBPUSD,M5: 2015.03.17 03:45:00
2016.08.16 21:39:07.234 2015.03.17 03:40 test123 GBPUSD,M5: 2015.03.17 03:40:00
2016.08.16 21:39:07.234 2015.03.17 03:35 test123 GBPUSD,M5: 2015.03.17 03:35:00
2016.08.16 21:39:07.234 2015.03.17 03:30 test123 GBPUSD,M5: 2015.03.17 03:30:00
2016.08.16 21:39:07.234 2015.03.17 03:25 test123 GBPUSD,M5: 2015.03.17 03:25:00
2016.08.16 21:39:07.234 2015.03.17 03:20 test123 GBPUSD,M5: 2015.03.17 03:20:00
2016.08.16 21:39:07.234 2015.03.17 03:15 test123 GBPUSD,M5: 2015.03.17 03:15:00
2016.08.16 21:39:06.968 2015.03.10 22:30 test123 GBPUSD,M5: 2015.03.10 22:30:00
2016.08.16 21:39:06.968 2015.03.10 22:25 test123 GBPUSD,M5: 2015.03.10 22:25:00
2016.08.16 21:39:06.968 2015.03.10 22:20 test123 GBPUSD,M5: 2015.03.10 22:20:00
2016.08.16 21:39:06.968 2015.03.10 22:15 test123 GBPUSD,M5: 2015.03.10 22:15:00
2016.08.16 21:39:06.968 2015.03.10 22:10 test123 GBPUSD,M5: 2015.03.10 22:10:00
2016.08.16 21:39:06.968 2015.03.10 22:05 test123 GBPUSD,M5: 2015.03.10 22:05:00
2016.08.16 21:39:06.968 2015.03.10 22:00 test123 GBPUSD,M5: 2015.03.10 22:00:00
2016.08.16 21:39:06.968 2015.03.10 21:55 test123 GBPUSD,M5: 2015.03.10 21:55:00
2016.08.16 21:39:06.734 2015.03.05 10:10 test123 GBPUSD,M5: 2015.03.05 10:10:00
2016.08.16 21:39:06.734 2015.03.05 10:05 test123 GBPUSD,M5: 2015.03.05 10:05:00
2016.08.16 21:39:06.734 2015.03.05 10:00 test123 GBPUSD,M5: 2015.03.05 10:00:00
2016.08.16 21:39:06.734 2015.03.05 09:55 test123 GBPUSD,M5: 2015.03.05 09:55:00
2016.08.16 21:39:06.734 2015.03.05 09:50 test123 GBPUSD,M5: 2015.03.05 09:50:00
2016.08.16 21:39:06.734 2015.03.05 09:45 test123 GBPUSD,M5: 2015.03.05 09:45:00
2016.08.16 21:39:06.734 2015.03.05 09:40 test123 GBPUSD,M5: 2015.03.05 09:40:00
2016.08.16 21:39:06.734 2015.03.05 09:35 test123 GBPUSD,M5: 2015.03.05 09:35:00
2016.08.16 21:39:06.453 2015.02.24 07:30 test123 GBPUSD,M5: 2015.02.24 07:30:00
2016.08.16 21:39:06.453 2015.02.24 07:25 test123 GBPUSD,M5: 2015.02.24 07:25:00
2016.08.16 21:39:06.453 2015.02.24 07:20 test123 GBPUSD,M5: 2015.02.24 07:20:00
2016.08.16 21:39:06.453 2015.02.24 07:15 test123 GBPUSD,M5: 2015.02.24 07:15:00
2016.08.16 21:39:06.453 2015.02.24 07:10 test123 GBPUSD,M5: 2015.02.24 07:10:00
2016.08.16 21:39:06.453 2015.02.24 07:05 test123 GBPUSD,M5: 2015.02.24 07:05:00
2016.08.16 21:39:06.453 2015.02.24 07:00 test123 GBPUSD,M5: 2015.02.24 07:00:00
2016.08.16 21:39:06.453 2015.02.24 06:55 test123 GBPUSD,M5: 2015.02.24 06:55:00
2016.08.16 21:39:06.250 2015.02.17 15:30 test123 GBPUSD,M5: 2015.02.17 15:30:00
2016.08.16 21:39:06.250 2015.02.17 15:25 test123 GBPUSD,M5: 2015.02.17 15:25:00
2016.08.16 21:39:06.250 2015.02.17 15:20 test123 GBPUSD,M5: 2015.02.17 15:20:00
2016.08.16 21:39:06.250 2015.02.17 15:15 test123 GBPUSD,M5: 2015.02.17 15:15:00
2016.08.16 21:39:06.250 2015.02.17 15:10 test123 GBPUSD,M5: 2015.02.17 15:10:00
2016.08.16 21:39:06.250 2015.02.17 15:05 test123 GBPUSD,M5: 2015.02.17 15:05:00
2016.08.16 21:39:06.250 2015.02.17 15:00 test123 GBPUSD,M5: 2015.02.17 15:00:00
2016.08.16 21:39:06.250 2015.02.17 14:55 test123 GBPUSD,M5: 2015.02.17 14:55:00
2016.08.16 21:39:05.968 2015.02.06 02:10 test123 GBPUSD,M5: 2015.02.06 02:10:00
2016.08.16 21:39:05.968 2015.02.06 02:05 test123 GBPUSD,M5: 2015.02.06 02:05:00
2016.08.16 21:39:05.968 2015.02.06 02:00 test123 GBPUSD,M5: 2015.02.06 02:00:00
2016.08.16 21:39:05.968 2015.02.06 01:55 test123 GBPUSD,M5: 2015.02.06 01:55:00
2016.08.16 21:39:05.968 2015.02.06 01:50 test123 GBPUSD,M5: 2015.02.06 01:50:00
2016.08.16 21:39:05.968 2015.02.06 01:45 test123 GBPUSD,M5: 2015.02.06 01:45:00
2016.08.16 21:39:05.968 2015.02.06 01:40 test123 GBPUSD,M5: 2015.02.06 01:40:00
2016.08.16 21:39:05.968 2015.02.06 01:35 test123 GBPUSD,M5: 2015.02.06 01:35:00
2016.08.16 21:39:05.734 2015.01.29 18:10 test123 GBPUSD,M5: 2015.01.29 18:10:00
2016.08.16 21:39:05.734 2015.01.29 18:05 test123 GBPUSD,M5: 2015.01.29 18:05:00
2016.08.16 21:39:05.734 2015.01.29 18:00 test123 GBPUSD,M5: 2015.01.29 18:00:00
2016.08.16 21:39:05.734 2015.01.29 17:55 test123 GBPUSD,M5: 2015.01.29 17:55:00
2016.08.16 21:39:05.734 2015.01.29 17:50 test123 GBPUSD,M5: 2015.01.29 17:50:00
2016.08.16 21:39:05.734 2015.01.29 17:45 test123 GBPUSD,M5: 2015.01.29 17:45:00
2016.08.16 21:39:05.734 2015.01.29 17:40 test123 GBPUSD,M5: 2015.01.29 17:40:00
2016.08.16 21:39:05.734 2015.01.29 17:35 test123 GBPUSD,M5: 2015.01.29 17:35:00
2016.08.16 21:39:05.468 2015.01.22 15:30 test123 GBPUSD,M5: 2015.01.22 15:30:00
2016.08.16 21:39:05.468 2015.01.22 15:25 test123 GBPUSD,M5: 2015.01.22 15:25:00
2016.08.16 21:39:05.468 2015.01.22 15:20 test123 GBPUSD,M5: 2015.01.22 15:20:00
2016.08.16 21:39:05.468 2015.01.22 15:15 test123 GBPUSD,M5: 2015.01.22 15:15:00
2016.08.16 21:39:05.468 2015.01.22 15:10 test123 GBPUSD,M5: 2015.01.22 15:10:00
2016.08.16 21:39:05.468 2015.01.22 15:05 test123 GBPUSD,M5: 2015.01.22 15:05:00
2016.08.16 21:39:05.468 2015.01.22 15:00 test123 GBPUSD,M5: 2015.01.22 15:00:00
2016.08.16 21:39:05.468 2015.01.22 14:55 test123 GBPUSD,M5: 2015.01.22 14:55:00
2016.08.16 21:39:05.203 2015.01.14 15:30 test123 GBPUSD,M5: 2015.01.14 15:30:00
2016.08.16 21:39:05.203 2015.01.14 15:25 test123 GBPUSD,M5: 2015.01.14 15:25:00
2016.08.16 21:39:05.203 2015.01.14 15:20 test123 GBPUSD,M5: 2015.01.14 15:20:00
2016.08.16 21:39:05.203 2015.01.14 15:15 test123 GBPUSD,M5: 2015.01.14 15:15:00
2016.08.16 21:39:05.203 2015.01.14 15:10 test123 GBPUSD,M5: 2015.01.14 15:10:00
2016.08.16 21:39:05.203 2015.01.14 15:05 test123 GBPUSD,M5: 2015.01.14 15:05:00
2016.08.16 21:39:05.203 2015.01.14 15:00 test123 GBPUSD,M5: 2015.01.14 15:00:00
2016.08.16 21:39:05.203 2015.01.14 14:55 test123 GBPUSD,M5: 2015.01.14 14:55:00
2016.08.16 21:39:04.968 2015.01.06 20:50 test123 GBPUSD,M5: 2015.01.06 20:50:00
2016.08.16 21:39:04.968 2015.01.06 20:45 test123 GBPUSD,M5: 2015.01.06 20:45:00
2016.08.16 21:39:04.968 2015.01.06 20:40 test123 GBPUSD,M5: 2015.01.06 20:40:00
2016.08.16 21:39:04.968 2015.01.06 20:35 test123 GBPUSD,M5: 2015.01.06 20:35:00
2016.08.16 21:39:04.968 2015.01.06 20:30 test123 GBPUSD,M5: 2015.01.06 20:30:00
2016.08.16 21:39:04.968 2015.01.06 20:25 test123 GBPUSD,M5: 2015.01.06 20:25:00
2016.08.16 21:39:04.968 2015.01.06 20:20 test123 GBPUSD,M5: 2015.01.06 20:20:00
2016.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
видимо, в лог пишется всё, а в тестере на вкладке "журнал", почему-то, выпадает.
ну вот, на самом интересном месте...
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
кто нибуть знает советника на индикаторе BrainTrend2SigALERT
Здравствуйте товарищи, подскажите пожалуйста в чем проблема? запускаю тестер стратегий с данным советником, но он неправильно считает хай и лоу в заданном временном периоде! а запускаю в режиме реального тестирование нормально работает, только вот не обновляет хаи и лоу если наступил следующий день!
//+------------------------------------------------------------------+
//| 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);
}
//+------------------------------------------------------------------+
Изменено 18 августа, 2016 пользователем Foxonn
ЦитатаЗдравствуйте товарищи, подскажите пожалуйста в чем проблема?
Цитата//--- примеры объявлений, на которые будут получены предупреждения компилятора
datetime warning1=D'12:30:27'; // равнозначно D'[дата компиляции] 12:30:27'
datetime warning2=D''; // равнозначно __DATETIME__
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем