Files
FX-ML-Trading-Engine/Q Research/scripts/__pycache__/get_candles.cpython-312.pyc
T

66 lines
10 KiB
Plaintext
Raw Normal View History

2025-11-14 23:16:51 +00:00
Ë
8ÿ
ãóŽddlZddlZddlZddlmZmZmZddlZddlm Z ejjejjejje
«««Zejje«Zejj!e«ejj!e«ddlmZddlmcmZddlmZe j0«e j2ej4dd¬«d ed
efd Zd ed
eded
efdZded
efdZdde dzd
ejBfdZ"dZ#e$dk(re#«yy)éN)ÚdatetimeÚ timedeltaÚtimezone)Úlogger)ÚAPI)Ú OANDA_TOKENÚINFOzN<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level}</level> | {message})ÚlevelÚformatÚsymbolÚreturncóæ|j«jdd«jdd«jdd«}d|vrt|«dk(r|St|«dk(r|dd dz|d dzS|S)
u{
将用户å‹å¥½çš„交易对格å¼è½¬æ¢ä¸ºOANDAæ ¼å¼ï¼Œä¾‹å¦‚:
'eurusd', 'EUR-USD', 'eur_usd' -> 'EUR_USD'
Ú ÚÚé)ÚupperÚreplaceÚlen)r Úss úP/Users/chuan/Documents/Projects/FX_Backtest/QuantResearch/scripts/get_candles.pyÚnormalize_to_oandarswð
 ×јs CÓ°bÓAÀ#ÀsÓK€Aà
ˆax”C˜“F˜a’K؈ä
ˆ1ƒv‚{Ø!ˆus‰{˜Q˜q˜r˜ €HóÚ project_rootÚ
instrumentÚ granularitycóâ|jdd«d|d}tjj|dd«}tj|d¬«tjj||«S)ud
æ ¹æ®äº¤æ˜“对和时间粒度生æˆé»˜è®¤è¾“出路径,如:
data/raw/EURUSD_H1.csv
rrz.csvÚdataÚrawT©Úexist_ok)rÚosÚpathÚjoinÚmakedirs)rrr ÚfnameÚraw_dirs rÚdefault_out_csvr,%s]ð
×! # bÓ*¨!¨K¨=¸Ð =€EÜg‰gl‰l˜<¨°Ó7€G܇KK 
7‰7<‰<˜ Ó 'rcóè|j«}iddddddddd d
d d d
ddddddddddddddddddd “d!d"“d#d$d%d&d'œ¥}|j|d«}|d(kry)td$|z d*«S)+ux
Rough estimate of bars per day forå¸¸è§ OANDA 粒度。
ç”¨äºŽæ ¹æ® count æŽ¨ç®—éœ€è¦æ‹‰å–的天数。
ÚS5éÚS10é
ÚS15éÚS30éÚM1é<ÚM2éxÚM4éðÚM5i,ÚM10iXÚM15i„ÚM30iÚH1iÚH2i ÚH3i0*ÚH4i@8ÚH6i`TÚH8i€piÀ¨i€Qi€—i€¯)ÚH12ÚMréé)rÚgetÚmax)r Ú seconds_mapÚsecondss rÚ
_bars_per_dayrP/s!ð
×%€KðØ ˆaðà
ˆrðð ˆrðð ˆrð ð
ˆ ð
ˆ
ð
ˆð
ˆcðð ˆsðð ˆsðð ˆtðð
ˆð
ˆð
ˆð
ˆð
ˆeð!ð"
ˆeð#ð$Ø
Ø
Ø
ò+€Kð.o‰o˜k¨4Ó0€GØ!‚|ØÜ ˆuw‰ Ó "rÚ target_countc óžts td«tt¬«}tjt
j «}|t|¬«z
}|}d}g} tjd|d|d|d«td ¬«}
||krŒt||
z|«} |d
|j«| j«d œ} tj|| ¬ «}
|j|
«|
j"j%dg«}|stj&d|d| «| }Œ|Dcgc]^}|j%d«rK|dt)|dd«t)|dd«t)|dd«t)|dd«|ddœŒ`}}|r`t+j,|«}| j/|«|t1|«z
}tjd|dd| ddt1|«d|«| }|r||k\rtjd |d!«n||krŒŒ| s)tj&d"«t+j,«St+j2| d#¬$«}t+j4|d«|d<|j7d«j9dg¬%«j;d#¬&«}|r!|j=|«j;d#¬&«}tjd't1|«d(|dj«d|dj?«d)«|S#t$r)}tj d
|d| d|«Yd}~Œ+d}~wwxYwcc}w)*uW
å¾ªçŽ¯æŠ“å– OANDA 历å²K线(默认过去一年),自动分页拼接。
uPOANDA_TOKEN 为空,请在 utils/config.py é…置或通过环境å˜é‡æä¾›ã€‚)Ú access_token)Údaysru
开始下载 ru
(过去 u 天)érI)r ÚpriceÚfromÚto)rÚparamsu
请求失败 z ~ z: NÚcandlesu区间无数æ®ï¼šÚcompleteÚtimeÚmidÚvolume)r\ÚopenÚhighÚlowÚcloserbu
抓å–区间 z%Y-%m-%du 行数=u
,累计=uå·²æ»¡è¶³ç›®æ ‡æ¡æ•° uï¼Œåœæ­¢æŠ“å–。u没有获å–到任何数æ®ã€‚T)Ú ignore_index)Úsubset)Údropu✅ 下载完æˆï¼šæ€»è®¡ u 行(u)) rÚ RuntimeErrorrrÚnowrÚutcrrÚinfoÚminÚ isoformatÚ instrumentsÚInstrumentsCandlesÚrequestÚ ExceptionÚerrorÚresponserLÚwarningÚfloatÚpdÚ DataFrameÚappendrÚconcatÚ to_datetimeÚ sort_valuesÚdrop_duplicatesÚ reset_indexÚtailrM)r r Ústart_days_agorQÚclientÚendÚstartÚcurÚall_rowsÚpartsÚstepÚto_tsrYÚerZrar"Údf_partÚdfs rÚ get_candlesrŽRs;õ ÜÐ
œkÔ
*€Fä
,‰,”x—|