|
????????????? ???????? ?? ?????????? ??????
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
KimIV Admin
Зарегистрирован: 24.01.2006 Сообщения: 958 Откуда: ??????
|
Добавлено: Ср Фев 15, 2006 10:29 am Заголовок сообщения: ??????? ???? ? ??????? |
|
|
??????? ???? ? ???????:
decDateOnDay - ?????????? ???? ?? ???? ????
DateToStr - ?????????????? ???? datetime ? ?????? ??????? DD.MM.YYYY
StrToDate - ?????????????? ?????? ??????? DD.MM.YYYY ? ??? DATETIME
incDateOnDay - ?????????? ???? ?? ???? ????
GetWeekBounds - ????????? ?????? ?????? ?? ??? (?????????? ??????? decDateOnDay ? incDateOnDay) _________________ ??? ????? ? ???? ??????? ????? ? ??????? ???????? ???, ? ??????? ? ???? ?????? ? ??????? ???????? ????...
Последний раз редактировалось: KimIV (Ср Мар 08, 2006 3:57 pm), всего редактировалось 3 раз(а) |
|
Вернуться к началу |
|
|
KimIV Admin
Зарегистрирован: 24.01.2006 Сообщения: 958 Откуда: ??????
|
Добавлено: Вт Фев 28, 2006 5:00 pm Заголовок сообщения: ?????????? ???? ?? ???? ???? |
|
|
Код: | //+------------------------------------------------------------------+
//| ?????????? ???? ?? ???? ???? |
//| ?????????: |
//| dt - ???? |
//+------------------------------------------------------------------+
datetime decDateOnDay (datetime dt) {
int ty=TimeYear(dt);
int tm=TimeMonth(dt);
int td=TimeDay(dt);
int th=TimeHour(dt);
int ti=TimeMinute(dt);
td--;
if (td==0) {
tm--;
if (tm==0) {
ty--;
tm=12;
}
if (tm==1 || tm==3 || tm==5 || tm==7 || tm==8 || tm==10 || tm==12) td=31;
if (tm==2) if (MathMod(ty, 4)==0) td=29; else td=28;
if (tm==4 || tm==6 || tm==9 || tm==11) td=30;
}
return(StrToTime(ty+"."+tm+"."+td+" "+th+":"+ti));
} |
?????????? ????????????? ???? ??????? ????? ?:
[url=http://www.kimiv.ru/files/mq4/i-Sessions.rar]????????? ???????? ??????[/url]
[url=http://forum.viac.ru/download.php?id=7422]??????? ????? ????????[/url]
??????, ??? ??? ?????????? decDateTradeDay() . _________________ ??? ????? ? ???? ??????? ????? ? ??????? ???????? ???, ? ??????? ? ???? ?????? ? ??????? ???????? ????...
Последний раз редактировалось: KimIV (Ср Мар 08, 2006 3:56 pm), всего редактировалось 2 раз(а) |
|
Вернуться к началу |
|
|
KimIV Admin
Зарегистрирован: 24.01.2006 Сообщения: 958 Откуда: ??????
|
Добавлено: Вт Фев 28, 2006 5:03 pm Заголовок сообщения: |
|
|
Код: | //+------------------------------------------------------------------+
//| ?????????????? ???? datetime ? ?????? ??????? DD.MM.YYYY |
//+------------------------------------------------------------------+
string DateToStr(datetime dt)
{
string sm="", sd="";
if (TimeDay(dt)<10) sd="0"+TimeDay(dt); else sd=TimeDay(dt);
if (TimeMonth(dt)<10) sm="0"+TimeMonth(dt); else sm=TimeMonth(dt);
return(""+sd+"."+sm+"."+TimeYear(dt));
} |
_________________ ??? ????? ? ???? ??????? ????? ? ??????? ???????? ???, ? ??????? ? ???? ?????? ? ??????? ???????? ????... |
|
Вернуться к началу |
|
|
KimIV Admin
Зарегистрирован: 24.01.2006 Сообщения: 958 Откуда: ??????
|
Добавлено: Чт Мар 02, 2006 2:38 pm Заголовок сообщения: |
|
|
Код: | //+------------------------------------------------------------------+
//| ?????????????? ?????? ??????? DD.MM.YYYY ? ??? DATETIME. |
//+------------------------------------------------------------------+
datetime StrToDate(string sDate)
{
datetime dt;
string sd=StringSubstr(sDate, 0, 2);
string sm=StringSubstr(sDate, 3, 2);
string sy=StringSubstr(sDate, 6, 4);
dt=StrToTime(sy+"."+sm+"."+sd);
return(dt);
} |
_________________ ??? ????? ? ???? ??????? ????? ? ??????? ???????? ???, ? ??????? ? ???? ?????? ? ??????? ???????? ????... |
|
Вернуться к началу |
|
|
alextur
Зарегистрирован: 14.02.2006 Сообщения: 103 Откуда: ?????
|
Добавлено: Ср Мар 08, 2006 3:50 pm Заголовок сообщения: |
|
|
Код: | //+------------------------------------------------------------------+
//| ?????????? ???? ?? ???? ???? |
//| ?????????: |
//| dt - ???? ????????? ??? |
//+------------------------------------------------------------------+
datetime incDateOnDay (datetime dt) {
int ty=TimeYear(dt);
int tm=TimeMonth(dt);
int td=TimeDay(dt);
int th=TimeHour(dt);
int ti=TimeMinute(dt);
td++;
if ((tm==1 || tm==3 || tm==5 || tm==7 || tm==8 || tm==10 || tm==12) && td==32) {td=1; tm++;}
if (tm==2) if (MathMod(ty, 4)==0 && td==30) {td=1; tm++;}
if (tm==2) if (MathMod(ty, 4)!=0 && td==29) {td=1; tm++;}
if ((tm==4 || tm==6 || tm==9 || tm==11) && td==31) {td=1; tm++;}
if (tm==13) {tm=1;ty++;}
return(StrToTime(ty+"."+tm+"."+td+" "+th+":"+ti));
} |
|
|
Вернуться к началу |
|
|
alextur
Зарегистрирован: 14.02.2006 Сообщения: 103 Откуда: ?????
|
Добавлено: Вт Апр 11, 2006 6:51 pm Заголовок сообщения: |
|
|
Код: | //+------------------------------------------------------------------+
//| ????????? ?????? ?????? ?? ??? |
//| ?????????: |
//| date - ???? |
//| dest[0] - ???? ?????? ?????? |
//| dest[1] - ???? ????? ?????? |
//+------------------------------------------------------------------+
string GetWeekBounds(datetime date, datetime& dest[2])
{
int i;
int wd = TimeDayOfWeek(date);
if (wd==0) wd=7;
dest[0] = date;
dest[1] = date;
for (i=wd; i>1; i--) {
dest[0] = decDateOnDay(dest[0]);
}
for (i=wd; i<7; i++) {
dest[1] = incDateOnDay(dest[1]);
}
} |
|
|
Вернуться к началу |
|
|
GSB
Зарегистрирован: 07.08.2006 Сообщения: 8 Откуда: ???
|
Добавлено: Чт Сен 07, 2006 2:15 am Заголовок сообщения: |
|
|
?????, alextur, ??????? ???????? ?? ????? ?????? ???????. ??? ??? ????? ??????????? ? ??? ??? ?? ?????. ? ?? ????? ? ????? ?? ??? ????????? ????????????? ????????? ?? ????? ???????? ? ????????????? ?? ? ??? DATETIME.
? ???? ???? ???????? ??????????? ??? ? ????????? ??? ? ????? ???????:
<YYYYMMDD> <HHMMSS> <Sig>
20060815,101500,1//Buy
20060815,103000,1
.....................................
20060815,150000,-1//Sell
20060815,151500,-1//
?.?. ??????????? ??????????? ?????? ???????? ?? ?????? ???.
??????? ??? ??????? ?????? ?? ????? ? ?????????????? ????????? ?????????? ? ?????? DATETIME ? ??????????? ??????? ????????? ? ??????????????? ?????? ?? ??????? ??????? (??? ????????).
???????? ???????? ???????? ???? ??.
?????????????? ?????????? Rosh http://www.alpari-idc.ru/ru/experts/articles/ ? ??????? ????????? ???? ? ?????? ???????.
?????? ???????? ????????? ???????
datetime StrToDateHour(string sDate, string sHour)
?????????????? ???? ?????? ?????? ? ???? ?????????? ? ?????? ???????? ??????? YYYYMMDD HHMMSS
Код: | //+------------------------------------------------------------------+
//| ReadFile&&Transform.mq4 |
//+------------------------------------------------------------------+
#property copyright "GSB"
//+------------------------------------------------------------------+
//| ?????? ????????? ?????
//| YYYYMMDD,HHMMSSS,Signal
//| 20060815,1430000,1
//| 20060815,1445000,1
//| 20060815,1500000,-1
//|
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
int FileHandle;
string FileName="TM2_CO_CHF15.txt";
int values;
int stroki;
string curString;
FileHandle=FileOpen(FileName, FILE_CSV|FILE_READ,";");
if (FileHandle==-1) Print("??????=",GetLastError());
Print("FileHandle=",FileHandle);
if (FileHandle>0)
{
Print("???? ??????");
while(!FileIsEnding(FileHandle))
{
string text = FileReadString(FileHandle);//??????????? ??? ??????
string ymd = StringSubstr(text, 0, 8); //1????? ?????? YYYYMMDD
string hhmmss = StringSubstr(text, 9, 6);//2????? ?????? HHMMSS
string sig = StringSubstr(text, 17, 0); //3????? ?????? Signal
datetime dt=StrToDate(ymd); //?????????????? YYYYMMDD ? datetime
datetime ht=StrToHour(hhmmss); //?????????????? HHMMSS ? datetime
string td=DateToStr(dt); //???????? ?????????????? ??? ????????
string th=HourToStr(ht); //???????????? ?????????? ??? ?????? ? ???
datetime ymdhms=StrToDateHour(ymd,hhmmss);//?????????????? ??????? ??????? YYYYMMDD HHMMSS ? datetime
string full_ymd= TimeToStr(ymdhms,TIME_DATE|TIME_DATE); // ? ?????? ??? ??????
string full_hms= TimeToStr(ymdhms,TIME_DATE|TIME_SECONDS);
curString=ymd+" "+hhmmss+" "+sig;//????????? ?? ????? ?????? ????? ?????????????? ??????????? ?? ???? ????? ? ??? ??????
Print("????????? <",curString," | ",td," ",th," | ",full_ymd," | ",full_hms,">");//?????? ??? ?????????? ?? ??????? ???????
if (FileIsLineEnding(FileHandle)) stroki++;
values++;
}
}
Print("????????? ",stroki," ????? ? ",values," ????????");
//----
//--------------------------
return(0);
}
//+------------------------------------------------------------------+
//| ?????????????? ?????? ??????? YYYYMMDD ? ??? DATETIME. |
//+------------------------------------------------------------------+
datetime StrToDate(string sDate)
{
datetime dt;
string sd=StringSubstr(sDate, 6, 2);
string sm=StringSubstr(sDate, 4, 2);
string sy=StringSubstr(sDate, 0, 4);
dt=StrToTime(sy+"."+sm+"."+sd);
return(dt);
}
//+------------------------------------------------------------------+
//| ?????????????? ???? datetime ? ?????? ??????? DD.MM.YYYY |
//+------------------------------------------------------------------+
string DateToStr(datetime dt)
{
string sm="", sd="";
if (TimeDay(dt)<10) sd="0"+TimeDay(dt); else sd=TimeDay(dt);
if (TimeMonth(dt)<10) sm="0"+TimeMonth(dt); else sm=TimeMonth(dt);
return(""+sd+"."+sm+"."+TimeYear(dt));
}
//+----------------------------------------------------------+
//| ?????????????? ?????? ??????? HHMMSS ? ??? DATETIME. |
//+----------------------------------------------------------+
datetime StrToHour(string sHour)
{
datetime ht;
string hh=StringSubstr(sHour, 0, 2);
string mm=StringSubstr(sHour, 2, 2);
string ss=StringSubstr(sHour, 4, 2);
ht=StrToTime(hh+":"+mm+":"+ss);
return(ht);
}
//+----------------------------------------------------------+
//| ?????????????? ???? datetime ? ?????? ??????? HH.MM.SS |
//+----------------------------------------------------------+
string HourToStr(datetime ht)
{
string hh="", mm="", ss="";
if (TimeHour(ht)<10) hh="0"+TimeHour(ht); else hh=TimeHour(ht);
if (TimeMinute(ht)<10) mm="0"+TimeMinute(ht); else mm=TimeMinute(ht);
if (TimeSeconds(ht)<10) ss="0"+TimeSeconds(ht); else ss=TimeSeconds(ht);
return(hh+":"+mm+":"+ss);
}
//+----------------------------------------------+
//| ?????????????? ?????? ??????? YYYYMMDD |
//| ? ?????? ??????? HHMMSS ? ??? DATETIME |
//+----------------------------------------------+
datetime StrToDateHour(string sDate, string sHour)
{
datetime ydhms;
string sd=StringSubstr(sDate, 6, 2);
string sm=StringSubstr(sDate, 4, 2);
string sy=StringSubstr(sDate, 0, 4);
string hh=StringSubstr(sHour, 0, 2);
string mm=StringSubstr(sHour, 2, 2);
string ss=StringSubstr(sHour, 4, 2);
ydhms=StrToTime(sy+"."+sm+"."+sd+" "+hh+":"+mm+":"+ss);
return(ydhms);
} |
|
|
Вернуться к началу |
|
|
BabyBear
Зарегистрирован: 01.01.2007 Сообщения: 20 Откуда: ?????-?????????
|
Добавлено: Чт Янв 04, 2007 8:57 am Заголовок сообщения: |
|
|
??? ???????? ? ???????. ?????, ??? ????? ????? ?????? ? ?????? ????. ???????, ????? ??????? ????? ?????????? ??????? ?? datetime 24*60*60. |
|
Вернуться к началу |
|
|
KimIV Admin
Зарегистрирован: 24.01.2006 Сообщения: 958 Откуда: ??????
|
Добавлено: Чт Янв 04, 2007 9:22 am Заголовок сообщения: |
|
|
BabyBear писал(а): | ...????? ??????? ????? ?????????? ??????? ?? datetime 24*60*60. |
??, ?? ?????... ??? ????????... ? ???????? ????????
Код: | void start() {
Comment(
TimeToStr(TimeCurrent(), TIME_DATE|TIME_SECONDS)," ",
TimeToStr(TimeCurrent()-24*60*60, TIME_DATE|TIME_SECONDS)
);
} |
_________________ ??? ????? ? ???? ??????? ????? ? ??????? ???????? ???, ? ??????? ? ???? ?????? ? ??????? ???????? ????... |
|
Вернуться к началу |
|
|
rmax
Зарегистрирован: 24.01.2007 Сообщения: 6
|
Добавлено: Ср Янв 24, 2007 7:03 pm Заголовок сообщения: ??????? ????????? ???? |
|
|
Код: |
//+----------------------------------------------------------
//| ????????? ???? |
//| ?????????: |
//| dt - ???????? ???? |
//| diff - ???-?? ??????, ?? ??????? ????? ???????? ????. |
//| diff > 0 - ????????? ? ???? (???????) |
//| diff < 0 - ???????? ?? ???? (???????) |
//| datePart - ?????????? ????? ????, ??????? ?????? |
//| ????? ????????? ????????: |
//| 1 - ???????? ???? |
//| 2 - ???????? ????? |
//| 3 - ???????? ??? |
//| 4 - ???????? ???? |
//| 5 - ???????? ?????? |
//| ???????????? ????????: |
//| ?????????? ???? |
//+----------------------------------------------------------
datetime AddDate(datetime dt, int diff, int datePart)
{
switch (datePart)
{
case 1:
return(dt + diff*60*60*24);
break;
case 2:
int years = diff / 12;
int months = diff % 12;
if (months == 0)
return(StrToTime((TimeYear(dt)+years) + "." + (TimeMonth(dt)) + "." + TimeDay(dt) + " " + TimeHour(dt) + ":" + TimeMinute(dt)));
if (TimeMonth(dt) > MathAbs(months) && months < 0)
return(StrToTime((TimeYear(dt)+years) + "." + (TimeMonth(dt)+months) + "." + TimeDay(dt) + " " + TimeHour(dt) + ":" + TimeMinute(dt)));
if (TimeMonth(dt) <= MathAbs(months) && months < 0)
return(StrToTime((TimeYear(dt)+years-1) + "." + (TimeMonth(dt)+months+12) + "." + TimeDay(dt) + " " + TimeHour(dt) + ":" + TimeMinute(dt)));
if (TimeMonth(dt) + MathAbs(months) >= 12 && months > 0)
return(StrToTime((TimeYear(dt)+years+1) + "." + (TimeMonth(dt)+months-12) + "." + TimeDay(dt) + " " + TimeHour(dt) + ":" + TimeMinute(dt)));
if (TimeMonth(dt) + MathAbs(months) < 12 && months > 0)
return(StrToTime((TimeYear(dt)+years) + "." + (TimeMonth(dt)+months) + "." + TimeDay(dt) + " " + TimeHour(dt) + ":" + TimeMinute(dt)));
break;
case 3:
return(StrToTime((TimeYear(dt)+diff) + "." + TimeMonth(dt) + "." + TimeDay(dt) + " " + TimeHour(dt) + ":" + TimeMinute(dt)));
break;
case 4:
return(dt + diff*60*60);
break;
case 5:
return(dt + diff*60);
}
} |
|
|
Вернуться к началу |
|
|
Alexander Piechotta
Зарегистрирован: 27.01.2006 Сообщения: 55 Откуда: Germany
|
Добавлено: Чт Июл 12, 2007 6:23 pm Заголовок сообщения: |
|
|
???????? ???????? ??????? ???????? ?????? ???? ??????, ?????????? ? "-". ???????????? ???? ??????? ????? ???? ???????, ??????? ?????? ???? ? ";". ??????: "00:00-06:59; 22:00-23:59"
bool IsInTradingTime(string )
Код: |
bool IsInTradingTime(string TRADE_TIME)
{
int i;
string s;
int ipc;
datetime dtStart[100]; datetime dtEnd[100];
string strLocalDate;
bool bRet;
//========
// First, we eliminate each invalid character from the time string.
s="";
for (i=0;i<StringLen(TRADE_TIME);i++)
if (((StringGetChar(TRADE_TIME,i)>='0') && (StringGetChar(TRADE_TIME,i)<='9')) ||
(StringSubstr(TRADE_TIME,i,1)=="-") ||
(StringSubstr(TRADE_TIME,i,1)==":") ||
(StringSubstr(TRADE_TIME,i,1)==";"))
s=s+StringSubstr(TRADE_TIME,i,1);
TRADE_TIME=s;
// The trading time string contains always a pair of times,
// separated with "-". Multiple time pairs can be entered by
// separating each pair with ";".
//
// Example: "00:00-06:59;22:00-23:59"
// First, get the current local date.
strLocalDate=TimeToStr(LocalTime(),TIME_DATE);
// Parse the string.
i=0;
ipc=0;
while (true)
{
// Get start time.
s="";
while ((StringSubstr(TRADE_TIME,i,1)!="-") && (i<StringLen(TRADE_TIME)))
{
s=s+StringSubstr(TRADE_TIME,i,1);
i++;
}
// Create the full date/time and add it to the start time list.
dtStart[ipc]=StrToTime(strLocalDate+" "+s);
i++;
// Get end time.
s="";
while ((StringSubstr(TRADE_TIME,i,1)!=";") && (i<StringLen(TRADE_TIME)))
{
s=s+StringSubstr(TRADE_TIME,i,1);
i++;
}
// Create the full date/time and add it to the end time list.
dtEnd[ipc]=StrToTime(strLocalDate+" "+s);
i++;
// Next pair.
ipc++;
if (i>=StringLen(TRADE_TIME))
break;
}
// Now, compare the current time against our list and return
// result.
bRet=true;
for (i=0;i<ipc;i++)
{
if ((LocalTime()>=dtStart[i]) && (LocalTime()<=dtEnd[i]))
bRet=false;
/*
Alert("Start=",TimeToStr(dtStart[i]));
Alert("End =",TimeToStr(dtEnd[i]));
Alert("Local=",TimeToStr(LocalTime()));
Alert("Result=",bRet);
*/
}
return (bRet);
}
|
Beispiel
Код: |
extern string DONT_TRADE_TIME="00:00-06:59;22:00-23:59";
int start()
{
if (IsInTradingTime(DONT_TRADE_TIME) ) return(0);
} |
_________________ ????????? ??? ??????? ???? ?? ?????? ?? ? ????? |
|
Вернуться к началу |
|
|
Tramloyr
Зарегистрирован: 12.02.2014 Сообщения: 6
|
Добавлено: Чт Мар 13, 2014 11:14 am Заголовок сообщения: |
|
|
????? ???? ????????? ?????, ? ???? ? ????????? ????????? ??? ????? ??????? ?????? ?? ???? ??????
extern string T11 = "??? ?????? ?????? ?????????";
extern bool Trade_in_Monday =true; //????????? ? ???????????
extern bool Trade_in_Tuesday =true; //????????? ? ???????
extern bool Trade_in_Wednesday=true;//????????? ? ?????
extern bool Trade_in_Thursday=true; //????????? ? ???????
extern bool Trade_in_Friday =true; //????????? ? ???????
//==========================================
bool TimeFilter(){
if(((Trade_in_Monday==true) && (TimeDayOfWeek(Time[0]) == 1)) ||
((Trade_in_Tuesday==true) && (TimeDayOfWeek(Time[0]) == 2)) ||
((Trade_in_Wednesday==true) && (TimeDayOfWeek(Time[0]) == 3)) ||
((Trade_in_Thursday==true) && (TimeDayOfWeek(Time[0]) == 4)) ||
((Trade_in_Friday==true) && (TimeDayOfWeek(Time[0]) == 5)))
} |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять вложения в этом форуме Вы не можете просматривать вложения в этом форуме
|
Powered by phpBB © 2001, 2005 phpBB Group
|