#57256 - Mon Aug 12 2013 01:19 PM
Время - параметр оптимизации. Как сделать?
|
newbie
Registered: Tue Feb 12 2013
Записи: 35
Loc: Ukraine
|
Добрый день! Пишу свой скрипт. Хочу чтобы время было параметром оптимизации. Так как OptimProperty это значения double, пока что ввожу так:
public OptimProperty StartTimeOpt = new OptimProperty(900,0000,2300,1);
public OptimProperty EndTimeOpt = new OptimProperty(2300,0000,2300,1);
string StartTime = Convert.ToString(StartTimeOpt);
string EndTime = Convert.ToString(EndTimeOpt);
StartTime = StartTime.PadLeft(4,'0');
EndTime = EndTime.PadLeft(4,'0');
string format = "Hmm";
DateTime start=DateTime.ParseExact(StartTime,format,CultureInfo.InvariantCulture);
DateTime End=DateTime.ParseExact(EndTime,format,CultureInfo.InvariantCulture);
ну и дальше там сравниваю их. Проблема с перевалом через полночь. Например, если StartTimeOpt = 900, а EndTimeOpt = 200, то работать вообще не будет. ну и проблема в самой оптимизации: если сделать шаг = 100(то есть 1 час), то когда-то получится значение 2500, а такого времени не может быть.
_________________________
The truth is out there...
|
Наверх
|
|
|
|
#57258 - Mon Aug 12 2013 02:52 PM
Re: Время - параметр оптимизации. Как сделать?
[Re: MindFlyer]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
если время неверное вышло, просто не выполняйте скрипт, сделайте return. Оптимизатору пустой цикл нагрузки не даст.
_________________________
__
|
Наверх
|
|
|
|
#57260 - Mon Aug 12 2013 03:19 PM
Re: Время - параметр оптимизации. Как сделать?
[Re: ra81]
|
newbie
Registered: Tue Feb 12 2013
Записи: 35
Loc: Ukraine
|
А через полночь как сделать? Например начать торговать в 23:00 , а закончить в 1:00
_________________________
The truth is out there...
|
Наверх
|
|
|
|
#57322 - Tue Aug 13 2013 06:40 PM
Re: Время - параметр оптимизации. Как сделать?
[Re: MindFlyer]
|
member
Registered: Fri Apr 22 2011
Записи: 137
|
Вот так, например
...
public OptimProperty StartTimeOpt = new OptimProperty(900, 0000, 2300, 1);
public OptimProperty EndTimeOpt = new OptimProperty(2300, 0000, 2300, 1);
public void Execute(IContext context, ISecurity security) {
var t1 = new TimeSpan(StartTimeOpt/100, StartTimeOpt - StartTimeOpt/100*100, 0);
var t4 = new TimeSpan(EndTimeOpt/100, EndTimeOpt - EndTimeOpt/100*100, 0);
var t3 = t1;
var t2 = t4;
if (t1 > t4) {
t2 = t4;
t3 = t1;
t1 = new TimeSpan(0, 0, 0);
t4 = new TimeSpan(24, 0, 0);
}
...
for (int i = 0; i < count; i++) {
TimeSpan time = security.Bars[i].Date.TimeOfDay;
bool enableTrading = (time >= t1 && time < t2) || (time >= t3 && time < t4);
...
}
|
Наверх
|
|
|
|
#57325 - Tue Aug 13 2013 07:38 PM
Re: Время - параметр оптимизации. Как сделать?
[Re: MindFlyer]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
А через полночь как сделать? Например начать торговать в 23:00 , а закончить в 1:00 старт задайте 2300 а финиш 0100 вот и все.
_________________________
__
|
Наверх
|
|
|
|
|
|