Ещё вариант писать в GV, GlobalVariableTime возвращает время последнего доступа к переменной.
В том числе время чтения, так что бессмысленно в данном случае
В том числе время чтения, так что бессмысленно в данном случае
Время чтения, но не чтение времени функцией GlobalVariableTime. Так-что если понимаешь что делаешь, очень даже подходит.
Прошу помощи знатоков.
Суть вопроса следующая.
Имеем переменную
В зависимости от условий работы алгоритма программы, данной переменной при событиях в стакане, присваивается целочисленное значение от 0 до 20
Как поймать время изменения значений в данной переменной ???
К примеру, присвоилось значение
Index = 5;
Это произошло 08.04.2020 14:45:15
в переменную
мы приняли это время
Index = 10;
Это произошло 08.04.2020 14:45:16
старое время сбросилось, новое записалось.
Мы, это кто?
Записывать в переменную не прямо, а через функцию. В функции проверять, если значение меняется, то еще одной переменной присваивать время изменения.
Я это понимаю, не могу сообразить как это правильно сделать
Мы, это кто?
Вот:
long Index =-1; datetime timeIndex=0; void set(long val){ if(val!=Index){ Index=val; timeIndex=TimeCurrent(); } }
/// просто демонстрация идеи - перегружаем метод "=" и внутри него разбираемся что и когда меняется.
/// (писано с руки), код невалидный :-)
long operator=(long &varRef,long newValue) {
if (&varRef == &Index && newValue!=Index) {
// ссылка действительно ссылается на Index и заданно новое значение
OnIndexUpdate(varRef,newValue); // по хорошему надо вызвать обработчик такого важного события
IndexUpdateTime=TimeLocal(); // запомнить время. (было-бы неплохо, время с высокой точностью, до микро/нано-секунд)
}
return varRef=newValue
}
а по доброму - пишется Сеттер, который принесёт требуемый мячик
Вот:
Спасибо, ток вот так работает
long Index =-1; datetime timeIndex=0; datetime set_(long val){ if(val!=Index){ Index=val; timeIndex=TimeCurrent(); } return timeIndex; }
Не перестаю удивляться, как добавление 10 строк кода в торговую систему могут кардинально улучшить качество сигнала, отловив маркет мекерские заявки в стакане и исключив их из анализа.
Простая торговля, тыкается под каждую объемную заявку - 2 стопа
Фильтруемся задержкой в 3 секунды с помощью кода что выше постом. 1 стоп, входы более адекватные
Задержка в 5 секунд, видим конкретные входы системы
Димону и Максу, огромный респект за то что натыкали носом в саную тряпку и указали правильный путь и оградили от пути в котором пришлось бы испытать не очень хорошие эмоции...
Останусь пока возле камня, соблюдая самоизоляцию ))
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Прошу помощи знатоков.
Суть вопроса следующая.
Имеем переменную
В зависимости от условий работы алгоритма программы, данной переменной при событиях в стакане, присваивается целочисленное значение от 0 до 20
Как поймать время изменения значений в данной переменной ???
К примеру, присвоилось значение
Index = 5;
Это произошло 08.04.2020 14:45:15
в переменную
datetime timeIndex;
мы приняли это время
Index = 10;
Это произошло 08.04.2020 14:45:16
старое время сбросилось, новое записалось.
Есть красавчики кто малюсеньким кусочком кода покажет как это сделать.