dolphindb
npx skills add https://github.com/hugo2046/dolphindb_skill --skill dolphindb
Agent 安装分布
Skill 文档
DolphinDB 宿´ææ¯ææ¡£ä¸å®ææå
çæ¬: 2.0.0 (ä¼åç)
ææ¡£æ°é: 1490 ä¸ªææ¯ææ¡£ + 3 份宿¹ç½ç®ä¹¦
DolphinDBçæ¬: 3.00.4
æ´æ°æ¶é´: 2026-01-22
ææ¡£æ¥æº: https://docs.dolphindb.cn
ð æ ¸å¿èµæºæ¦è§
ð¯ 宿¹ç½ç®ä¹¦ï¼æ·±åº¦æä½³å®è·µï¼
æä¾çäº§çº§æ¶æè®¾è®¡å宿´å·¥ä½æµç¨æåï¼
-
æ°æ®åºç½ç®ä¹¦ (1073è¡)
- DolphinDB æ ¸å¿æ¶æä¸åå¸å¼è®¾è®¡
- TSDB vs OLAP åå¨å¼æè¯¦è§£
- ååºçç¥ãé«å¯ç¨ãå¤ä»½æ¢å¤
- SQLä¼åä¸åºå 计ç®
- éç¨åºæ¯: ç³»ç»æ¶æè®¾è®¡ãæ§è½ä¼åãç产é¨ç½²
-
æµæ°æ®ç½ç®ä¹¦ (2279è¡)
- æµè®¡ç®æ¡æ¶ä¸åå¸è®¢é æºå¶
- 7大æµè®¡ç®å¼æè¯¦è§£
- æµæ¹ä¸ä½æ¶æä¸åå²åæ¾
- éèä¸ç©èç½åºæ¯åºç¨
- éç¨åºæ¯: 宿¶è®¡ç®ãCEPãæµå¼ETL
-
ä¸é«é¢åæµç½ç®ä¹¦ (2205è¡)
- 宿´åæµç³»ç»æ¶æ
- æ°æ®åæ¾ä¸æ¨¡ææ®å弿
- DolphinScript/Python/C++ çç¥å¼å
- éåçç¥å®ææ¡ä¾
- éç¨åºæ¯: éååæµãç®æ³äº¤æãçç¥ç å
ð å¨çº¿ææ¯ææ¡£ï¼1490ç¯ï¼
æåè½é¢ååç±»ç宿´APIåèåæä½æåï¼
| åç±» | ææ¡£æ°é | 说æ |
|---|---|---|
| 彿°åè/å ¶ä»å½æ° | 1171 | ç³»ç»å½æ°ãç½ç»å½æ°ç |
| å ¶ä» | 97 | å ¶ä»ææ¯ææ¡£ |
| 彿°åè/ç»è®¡å½æ° | 61 | ç¸å ³æ§ãåæ¹å·®ãæ åå·®çç»è®¡ææ |
| 彿°åè/æ°å¦å½æ° | 42 | åºç¡æ°å¦è¿ç®ãä¸è§å½æ°ã对æ°ç |
| 彿°åè/SQL彿° | 41 | æ¥è¯¢ãå ³èãèåçSQLæä½ |
| 彿°åè/æ¶é´åºå彿° | 26 | æ¥ææ¶é´å¤çãæ¶åºçªå£è®¡ç® |
| æµæ°æ®å¤ç | 22 | æµè¡¨ã订é ãæµè®¡ç®å¼æ |
| æ°æ®åºæ ¸å¿ | 13 | åå¨å¼æãååºãäºå¡ãé«å¯ç¨ |
| é¨ç½²ä¸é ç½® | 9 | é群é¨ç½²ãåæ°é ç½® |
| 彿°åè/åç¬¦ä¸²å½æ° | 5 | å符串æä½ãæ£åè¡¨è¾¾å¼ |
| APIä¸è¿æ¥å¨ | 1 | PythonãJavaãC++ API |
| è¿ç»´ç®¡ç | 1 | çæ§ãå¤ä»½ãæé管ç |
| æç¨ä¸ç¤ºä¾ | 1 | å¿«éå ¥é¨ãåºæ¯æ¡ä¾ |
宿´ææ¡£ç´¢å¼: è¯¦è§ CATALOG.md
ð 常è§é®é¢å¿«é导èª
æ°æå ¥é¨
- å¦ä½å¿«é䏿DolphinDBï¼ â å ³äº DolphinDB
- å¦ä½é¨ç½²éç¾¤ï¼ â åå¸å¼æ¶æ
- å¦ä½éæ©åå¨å¼æï¼ â æ¥é æ°æ®åºç½ç®ä¹¦ 第3-4ç«
æ°æ®åºè®¾è®¡
- å¦ä½éæ©ååºçç¥ï¼ â æ°æ®ååº + æ°æ®åºç½ç®ä¹¦
- TSDB vs OLAP å¦ä½éæ©ï¼ â TSDBåå¨å¼æ å OLAPåå¨å¼æ
- å¦ä½ä¼åæ¥è¯¢æ§è½ï¼ â æ°æ®åºç½ç®ä¹¦ 第5ç«
æµè®¡ç®å¼å
- å¦ä½å®ç°å®æ¶è®¡ç®ï¼ â æµæ°æ®ç½ç®ä¹¦
- æµè®¡ç®å¼ææåªäºï¼ â æµæ°æ®ç½ç®ä¹¦ 第3ç«
- å¦ä½å®ç°æµæ¹ä¸ä½ï¼ â æµæ°æ®ç½ç®ä¹¦ 第4ç«
éååæµ
- å¦ä½æå»ºåæµç³»ç»ï¼ â åæµç½ç®ä¹¦
- å¦ä½å®ç°æ¨¡ææ®åï¼ â åæµç½ç®ä¹¦ 第3ç«
- å¦ä½è¿è¡ä¸é«é¢åæµï¼ â åæµç½ç®ä¹¦ 第4-7ç«
é«çº§åè½
- å¦ä½å®ç°é«å¯ç¨ï¼ â é«å¯ç¨
- å¦ä½è¿è¡æ°æ®å¤ä»½ï¼ â æ°æ®åºç½ç®ä¹¦ 第6ç«
- å¦ä½ç®¡çæéï¼ â æ°æ®åºç½ç®ä¹¦ 第6.4è
ð 常ç¨ä»£ç 示ä¾
1. å建TSDBåå¨å¼æçååºè¡¨
// ç»åååº: VALUE(æ¥æ) + HASH(è¡ç¥¨ä»£ç )
db_date = database("", VALUE, 2024.01.01..2024.12.31)
db_sym = database("", HASH, [SYMBOL, 10])
db = database("dfs://stock_data", COMPO, [db_date, db_sym])
// TSDBå¼æï¼æ¯ææåºååå»é
schemaTable = table(
1:0,
`trade_time`symbol`price`volume,
[TIMESTAMP, SYMBOL, DOUBLE, LONG]
)
pt = db.createPartitionedTable(
table=schemaTable,
tableName="stock_tick",
partitionColumns=`trade_date`symbol,
sortColumns=`symbol`trade_time, // æåºé®
keepDuplicates=LAST, // å»éçç¥
engine="TSDB"
)
2. å建OLAPåå¨å¼æçååºè¡¨
// OLAP弿éå追å å¼åå
¥åæ¹éåæ
db = database("dfs://stock_analysis", VALUE, 2024.01M..2024.12M)
schemaTable = table(
1:0,
`trade_date`symbol`open`high`low`close`volume,
[DATE, SYMBOL, DOUBLE, DOUBLE, DOUBLE, DOUBLE, LONG]
)
pt = db.createPartitionedTable(
table=schemaTable,
tableName="daily_kline",
partitionColumns=`trade_date,
engine="OLAP"
)
3. æµè®¡ç® – 宿¶K线åæ
// 1. å建æµè¡¨
share streamTable(1:0, `time`sym`price`vol, [TIMESTAMP, SYMBOL, DOUBLE, INT]) as tickStream
share streamTable(1:0, `time`sym`open`high`low`close`volume,
[TIMESTAMP, SYMBOL, DOUBLE, DOUBLE, DOUBLE, DOUBLE, LONG]) as klineStream
// 2. å建æ¶åºèå弿
tsEngine = createTimeSeriesEngine(
name="kline_1min",
windowSize=60000, // 1åéçªå£
step=60000,
metrics=<[first(price), max(price), min(price), last(price), sum(vol)]>,
dummyTable=tickStream,
outputTable=klineStream,
timeColumn=`time,
keyColumn=`sym
)
// 3. 订é
æµè¡¨
subscribeTable(tableName="tickStream", actionName="kline", handler=append!{tsEngine})
// 4. æå
¥æ°æ®æµè¯
insert into tickStream values(2024.01.01T09:30:00.000, `600000, 10.5, 1000)
4. ä¸é«é¢åæµå®æ´æµç¨
// 1. æ¸
çç¯å¢
try{ unsubscribeTable(tableName="replayStream", actionName="backtest") }catch(ex){}
try{ dropStreamEngine("backtestEngine") }catch(ex){}
// 2. åå»ºåæ¾æµè¡¨
share streamTable(1:0, `time`sym`price`vol, [TIMESTAMP, SYMBOL, DOUBLE, INT]) as replayStream
// 3. åå»ºåæµå¼æï¼éè¦å è½½åæµæä»¶ï¼
loadPlugin("/path/to/backtest_plugin.so")
backtestEngine = createBacktestEngine(
name="my_strategy",
initialCapital=10000000,
commission=0.0003
)
// 4. 订é
åæ¾æ°æ®
subscribeTable(tableName="replayStream", actionName="backtest", handler=backtestEngine)
// 5. æ°æ®åæ¾
histData = loadTable("dfs://stock_data", "stock_tick")
ds = replayDS(sqlObj=<select * from histData where trade_date=2024.01.01>,
dateColumn=`trade_date,
timeColumn=`trade_time)
replay(inputTables=ds, outputTables=replayStream, dateColumn=`trade_date,
timeColumn=`trade_time, replayRate=1000)
// 6. è·ååæµç»æ
backtestEngine.getPositions() // æä»
backtestEngine.getOrders() // 订å
backtestEngine.getTrades() // æäº¤
backtestEngine.getMetrics() // ç»©æææ
5. é«çº§SQL示ä¾
// Context By - ç»å
çªå£è®¡ç®
select
trade_date, symbol, close,
movingAvg(close, 5) as ma5,
movingAvg(close, 20) as ma20
from loadTable("dfs://stock", "daily")
context by symbol
// Pivot By - æ°æ®éè§
select close
from loadTable("dfs://stock", "daily")
where symbol in `600000`600001`600002
pivot by trade_date, symbol
// Asof Join - æ¶åºé精确å
³è
select *
from tick_data aj snapshot_data
on tick_data.time = snapshot_data.time and tick_data.symbol = snapshot_data.symbol
ð¡ æä½³å®è·µå·¥ä½æµ
1. æ°æ®åºè®¾è®¡æµç¨
éæ±åæ â åå¨å¼æéæ© â ååºçç¥è®¾è®¡ â æ§è½æµè¯ â ç产é¨ç½²
â â â â â
æ°æ®ç¹å¾ TSDB/OLAP COMPOååº ååæµè¯ é«å¯ç¨é
ç½®
å³çè¦ç¹:
- é«é¢åå ¥ + ç¹æ¥ â TSDB弿 + sortColumns
- æ¹éåæ â OLAP弿
- æ¶åºæ°æ® â VALUE(æ¥æ) + HASH(Symbol) ç»åååº
- æ¥è¯¢ä¼å â åç使ç¨ååºè£åªãå¹¶è¡è®¡ç®
åèææ¡£: æ°æ®åºç½ç®ä¹¦ 第2-4ç«
2. æµè®¡ç®å¼åæµç¨
æ°æ®æºæ¥å
¥ â æµè¡¨è®¾è®¡ â 弿鿩 â 订é
å¤ç â ç»æè¾åº
â â â â â
Kafkaç streamTable 7ç§å¼æ subscribeTable å
¥åº/æ¨é
弿鿩:
- æ»å¨çªå£èå (K线åæ) â TimeSeriesEngine
- 横æªé¢è®¡ç® (å ¨å¸åºæå) â CrossSectionalEngine
- å¤æç¶æé»è¾ (å¤å å计ç®) â ReactiveStateEngine
- å¼å¸¸æ£æµ â AnomalyDetectionEngine
åèææ¡£: æµæ°æ®ç½ç®ä¹¦ 第3ç«
3. éå念宿´æµç¨
æ°æ®åå¤ â åå²åæ¾ â æ¨¡ææ®å â çç¥æ§è¡ â 绩æåæ
â â â â â
ååºè¡¨ replay Exchange BacktestEngine Sharpe/忤
æ ¸å¿ææ¯ç¹:
- 使ç¨
replayæreplayDSä¸¥æ ¼ææ¶åºåæ¾ createExchangeå®ç°”ä»·æ ¼ä¼å ãæ¶é´ä¼å ”æ®å- æ¯æéç¬ãå¿«ç §ãåéé¢çå¤ç§æ°æ®æº
- C++æä»¶å¯æå10å以䏿§è½
åèææ¡£: åæµç½ç®ä¹¦ 宿´å 容
ð å¦ä½ä½¿ç¨æ¬Skill
æåºæ¯æ¥æ¾
-
ææ¯æ°æï¼æ³å¿«é䏿
- å é 读: å ³äº DolphinDB
- ç¶åç: æ°æ®åºç½ç®ä¹¦ 第1ç«
-
æè¦è®¾è®¡çäº§æ°æ®åº
- å¿ è¯»: æ°æ®åºç½ç®ä¹¦ 第2-6ç«
- åè: æ°æ®ååºãé«å¯ç¨
-
æè¦å¼å宿¶è®¡ç®åºç¨
- å¿ è¯»: æµæ°æ®ç½ç®ä¹¦ å ¨æ
- 鿥: æ¬ææ¡£ä¸ç”æµè®¡ç®ä»£ç 示侔
-
æè¦æå»ºéååæµç³»ç»
- å¿ è¯»: åæµç½ç®ä¹¦ å ¨æ
- 宿: ç½ç®ä¹¦ç¬¬5-7ç« çç¥æ¡ä¾
-
æè¦æ¥ç¹å®å½æ°ç¨æ³
- 使ç¨: CATALOG.md æåç±»æ¥æ¾
- æå¨
references/ç®å½æç´¢å ³é®è¯
æè§è²æ¥æ¾
| è§è² | æ¨èé è¯»è·¯å¾ |
|---|---|
| æ¶æå¸ | æ°æ®åºç½ç®ä¹¦ â åå¸å¼æ¶æ â é«å¯ç¨æ¹æ¡ |
| DBA | æ°æ®åºç½ç®ä¹¦ â è¿ç»´ç« è â å¤ä»½æ¢å¤ |
| å端å¼å | æµæ°æ®ç½ç®ä¹¦ â APIææ¡£ â 代ç ç¤ºä¾ |
| éåç ç©¶å | åæµç½ç®ä¹¦ â çç¥å¼å â 绩æåæ |
| æ°æ®åæå¸ | SQL彿°åè â Context By â Pivot By |
ð çæ¬ä¿¡æ¯
-
Skillçæ¬: 2.0.0 (ç¸æ¯1.xçæ¬çæ¹è¿)
- â æ°å¢å®æ´ææ¡£ç´¢å¼ (CATALOG.md)
- â æ°å¢å¸¸è§é®é¢å¿«é导èª
- â æ°å¢5大类代ç 示ä¾
- â ä¼åææ¡£åç±» (14个ç»åç±»å«)
- â æç¡®DolphinDBçæ¬å¯¹åºå ³ç³»
-
DolphinDBçæ¬: 3.00.4
-
ææ¡£åæ¥æ¶é´: 2026-01-20
-
ç»´æ¤çç¥: å£åº¦æ´æ° / éå¤§çæ¬å叿¶åæ¥
ð ç¸å ³èµæº
- å®ç½: https://www.dolphindb.com
- ææ¡£ä¸å¿: https://docs.dolphindb.cn
- 社åºè®ºå: https://community.dolphindb.com
- GitHub: https://github.com/dolphindb
Generated by Skill Creator v2.0 | ä¼åæ¶é´: 2026-01-22