Автор |
Сообщение |
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
Делаю следующее условие:
TMtr = TimeNum() > Optimize ("TMtr", 100000, 100000,234000,1000)
Т.е. при оптимизации в тестере прогоняются временные участки по 10 минут: 10 00 00, 10 10 00, 10 20 00 и т.д. Вроде все хорошо, но... 10 60 00, 10 70 00, 10 80 00, 10 90 00...
Т.е. на каждый час мы получаем 4 лишних шага. А если смотрим участки по 5 минут? А если у нас есть еще один параллельно оптимизируемый параметр? Просто тратим кучу лишнего времени.
Как-то возможно убрать эти лишние шаги или придется смириться? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Шаги убрать нельзя. Можно сделать проверку и если "минуты" больше или равны 60 то не прогонять весь код
Типа
Код: |
If(...)
{
Buy = Sell = Short = Cover = 0;
)
else
{
// код системы
} |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
trashfx
Зарегистрирован: 27.06.2015
Сообщения: 90
|
AntColonel писал(а): |
Делаю следующее условие:
TMtr = TimeNum() > Optimize ("TMtr", 100000, 100000,234000,1000)
Т.е. при оптимизации в тестере прогоняются временные участки по 10 минут: 10 00 00, 10 10 00, 10 20 00 и т.д. Вроде все хорошо, но... 10 60 00, 10 70 00, 10 80 00, 10 90 00...
Т.е. на каждый час мы получаем 4 лишних шага. А если смотрим участки по 5 минут? А если у нас есть еще один параллельно оптимизируемый параметр? Просто тратим кучу лишнего времени.
Как-то возможно убрать эти лишние шаги или придется смириться? |
Basic math of elementary school!
If you want to do calculations on times then you first have to convert to seconds!
Код: |
tn = TimeNum();
_min = TimeToSeconds( 100000 );
_max = TimeToSeconds( 234000 );
_step = Interval();
optsec = Optimize ("TMtr", _min, _min, _max, _step );
opttn = SecondsToTime( optsec );
_TRACEF( "sec: %g, tn: %g", optsec, opttn );
TMtr = tn > opttn; |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
AlexLan73
Зарегистрирован: 25.06.2012
Сообщения: 87
|
Thank you, beautiful decision. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
trashfx писал(а): |
Basic math of elementary school!
If you want to do calculations on times then you first have to convert to seconds!
Код: |
tn = TimeNum();
_min = TimeToSeconds( 100000 );
_max = TimeToSeconds( 234000 );
_step = Interval();
optsec = Optimize ("TMtr", _min, _min, _max, _step );
opttn = SecondsToTime( optsec );
_TRACEF( "sec: %g, tn: %g", optsec, opttn );
TMtr = tn > opttn; |
|
In Ami 5.6 this code is given the mistake.
No such functions: TimeToSeconds or SecondsToTime |
|
|
Посмотреть профиль Отправить личное сообщение |
|
trashfx
Зарегистрирован: 27.06.2015
Сообщения: 90
|
AntColonel писал(а): |
trashfx писал(а): |
Basic math of elementary school!
If you want to do calculations on times then you first have to convert to seconds!
Код: |
tn = TimeNum();
_min = TimeToSeconds( 100000 );
_max = TimeToSeconds( 234000 );
_step = Interval();
optsec = Optimize ("TMtr", _min, _min, _max, _step );
opttn = SecondsToTime( optsec );
_TRACEF( "sec: %g, tn: %g", optsec, opttn );
TMtr = tn > opttn; |
|
In Ami 5.6 this code is given the mistake.
No such functions: TimeToSeconds or SecondsToTime |
Those functions are AFL user functions. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|