У вас не стоит Flash Player
Настройки
#57256 - Mon Aug 12 2013 01:19 PM Время - параметр оптимизации. Как сделать?
MindFlyer Offline
newbie

Registered: Tue Feb 12 2013
Записи: 35
Loc: Ukraine
Добрый день!

Пишу свой скрипт.
Хочу чтобы время было параметром оптимизации.

Так как OptimProperty это значения double, пока что ввожу так:
Code:
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]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
если время неверное вышло, просто не выполняйте скрипт, сделайте return. Оптимизатору пустой цикл нагрузки не даст.
_________________________
__


Наверх
#57260 - Mon Aug 12 2013 03:19 PM Re: Время - параметр оптимизации. Как сделать? [Re: ra81]
MindFlyer Offline
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]
Gji Offline
member

Registered: Fri Apr 22 2011
Записи: 137
Вот так, например
Code:
...
    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]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Originally Posted By: MindFlyer
А через полночь как сделать?
Например начать торговать в 23:00 , а закончить в 1:00

старт задайте 2300 а финиш 0100 вот и все.
_________________________
__


Наверх


Moderator:  ViL, sar