В этой статье будет рассмотрены примеры использования функции IntervalMatch.

Рассмотрим пример

[tester_signal]:
LOAD
    Signal_datetime,
    Signal_symbol,
    "symbol",
    indicator,
    "1d",
    "6h",
    "1h"
FROM [lib://DataFiles/tester_signal.qvd] (qvd);

NoConcatenate
[TEMP tester_price_changes]:
LOAD
    datetime,
    "symbol",
    last_price,
    price_change,
    price_change_percent,
    high_price,
    low_price,
    volume,
    weighted_avg_price,
    quote_volume
FROM [lib://DataFiles/tester_price_changes.qvd] (qvd);

[TEMP max_datetime]:
Load max(datetime) as max_datetime
Resident [TEMP tester_price_changes];

LET vMaxDatetime = Timestamp(Num#(Peek('max_datetime',0,'TEMP max_datetime'))+Frac(MakeTime(0,30)));

NoConcatenate
[tester_price_changes]:
LOAD datetime, 
  Timestamp(datetime,'DD.MM.YYYY h:mm')											As [Дата Время Начало],
    If(symbol=Previous(symbol) and symbol<>'' and not IsNull(symbol),
    	Timestamp(Peek('datetime'),'DD.MM.YYYY h:mm'),
        Timestamp('$(vMaxDatetime)','DD.MM.YYYY h:mm')
    ) 																				As [Дата Время Конец],
    symbol,
    Timestamp(datetime,'DD.MM.YYYY h:mm')											As [ДатаВремя Цен],
    symbol&'|'&(Num(time(frac(floor(datetime,1/1440)),'hh:mm'))+floor(datetime))	As %ID,
  last_price, 
  price_change, 
  price_change_percent, 
  high_price, 
  low_price, 
  volume, 
  weighted_avg_price, 
  quote_volume
Resident [TEMP tester_price_changes]
Order By symbol,datetime desc
;

Drop Tables [TEMP tester_price_changes];


Left Join([tester_signal])
intervalmatch (Signal_datetime,symbol) 
LOAD  
     [Дата Время Начало], 
     [Дата Время Конец],
     symbol
RESIDENT tester_price_changes;

Left Join(tester_signal)
Load
     [Дата Время Начало], 
     [Дата Время Конец],
     symbol,
     %ID
RESIDENT tester_price_changes;

DROP Fields [Дата Время Начало], [Дата Время Конец], symbol From [tester_signal];

___

2.5 10 голосов
Рейтинг статьи

Подписаться
Уведомление о
guest
0 комментариев
Встроенная Обратная Связь
Просмотр всех комментариев
0
Оставьте, пожалуйста, комментарий!x