Skip to content

Commit dce3974

Browse files
committed
init
0 parents  commit dce3974

101 files changed

Lines changed: 48448 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/rust.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Rust
2+
3+
on:
4+
push:
5+
branches: [ "main" ]
6+
pull_request:
7+
branches: [ "main" ]
8+
9+
env:
10+
CARGO_TERM_COLOR: always
11+
12+
jobs:
13+
build:
14+
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
- name: Build
20+
run: cargo build --verbose
21+
- name: Run tests
22+
run: cargo test --verbose

.gitignore

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Rust
2+
/target/
3+
**/*.rs.bk
4+
*.pdb
5+
6+
# Cargo
7+
Cargo.lock
8+
9+
# IDE
10+
.vscode/
11+
.idea/
12+
*.swp
13+
*.swo
14+
*~
15+
16+
# OS
17+
.DS_Store
18+
.DS_Store?
19+
._*
20+
.Spotlight-V100
21+
.Trashes
22+
ehthumbs.db
23+
Thumbs.db
24+
25+
# Logs
26+
*.log
27+
28+
# Runtime data
29+
pids
30+
*.pid
31+
*.seed
32+
*.pid.lock
33+
34+
# Coverage directory used by tools like istanbul
35+
coverage/
36+
37+
# Dependency directories
38+
node_modules/
39+
40+
# Optional npm cache directory
41+
.npm
42+
43+
# Optional eslint cache
44+
.eslintcache
45+
46+
# Output of 'npm pack'
47+
*.tgz
48+
49+
# Yarn Integrity file
50+
.yarn-integrity
51+
52+
# dotenv environment variables file
53+
.env
54+
.env.local
55+
.env.development.local
56+
.env.test.local
57+
.env.production.local
58+
59+
# Compiled binary
60+
/hyperliquid-backtest
61+
62+
# Build artifacts
63+
*.rlib
64+
*.so
65+
*.dylib
66+
*.dll
67+
68+
# Backup files
69+
*.bak
70+
*.backup
71+
*.tmp
72+
73+
# Test results
74+
test-results/
75+
76+
#
77+
target

CHANGELOG.md

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
### Added
11+
- Initial project structure and core dependencies
12+
- Comprehensive error handling system with `HyperliquidBacktestError`
13+
- Core data structures: `HyperliquidData`, `HyperliquidBacktest`, `HyperliquidCommission`
14+
- Data conversion functionality between Hyperliquid API and rs-backtester formats
15+
- Funding rate utilities and calculations
16+
- Hyperliquid data fetcher with async API integration
17+
- Enhanced commission structure with maker/taker fee distinction
18+
- Enhanced backtesting engine with funding payment calculations
19+
- Strategy extensions including funding arbitrage and enhanced SMA crossover
20+
- Enhanced reporting and metrics with funding-specific analytics
21+
- CSV export functionality with funding rate data
22+
- Comprehensive examples and documentation
23+
- Unit, integration, and performance test suites
24+
- Structured logging and debugging support
25+
- Migration guide from rs-backtester
26+
27+
### Changed
28+
- N/A (initial release)
29+
30+
### Deprecated
31+
- N/A (initial release)
32+
33+
### Removed
34+
- N/A (initial release)
35+
36+
### Fixed
37+
- N/A (initial release)
38+
39+
### Security
40+
- N/A (initial release)
41+
42+
## [0.1.0] - 2024-01-XX
43+
44+
### Added
45+
- Initial release of hyperliquid-backtest
46+
- Core backtesting functionality with Hyperliquid data integration
47+
- Funding rate support and perpetual futures mechanics
48+
- Async data fetching from Hyperliquid API
49+
- Enhanced reporting with funding-specific metrics
50+
- Built-in strategies: funding arbitrage and enhanced SMA crossover
51+
- Comprehensive error handling and type safety
52+
- Structured logging and debugging support
53+
- Migration compatibility with rs-backtester
54+
- Extensive documentation and examples
55+
56+
### Technical Details
57+
- Minimum Rust version: 1.70
58+
- Dependencies: tokio, chrono, serde, thiserror, csv, hyperliquid-rust-sdk, rs-backtester
59+
- API stability: Pre-1.0 development phase with semantic versioning
60+
- Test coverage: >90% with unit, integration, and performance tests
61+
- Documentation: Complete API documentation with examples
62+
63+
### Breaking Changes
64+
- N/A (initial release)
65+
66+
### Migration Guide
67+
- See [Migration Guide](https://docs.rs/hyperliquid-backtest/latest/hyperliquid_backtester/migration/index.html) for upgrading from rs-backtester
68+
69+
---
70+
71+
## Release Process
72+
73+
### Version Numbering
74+
- **Major** (X.0.0): Breaking API changes, significant architectural changes
75+
- **Minor** (0.X.0): New features, backward compatible additions
76+
- **Patch** (0.0.X): Bug fixes, documentation updates, performance improvements
77+
78+
### Pre-1.0 Development
79+
During the pre-1.0 phase (current), minor versions may include breaking changes.
80+
All breaking changes will be clearly documented in this changelog with migration instructions.
81+
82+
### Post-1.0 Stability
83+
After reaching 1.0.0, the public API will be stable within major versions:
84+
- Public items in the `prelude` module are guaranteed stable
85+
- Core data structures maintain backward compatibility
86+
- Error types may add variants but not remove them
87+
- Strategy interfaces remain stable for implementors
88+
89+
### Release Checklist
90+
- [ ] Update version in Cargo.toml
91+
- [ ] Update CHANGELOG.md with release notes
92+
- [ ] Run full test suite: `cargo test --all-features`
93+
- [ ] Run clippy: `cargo clippy -- -D warnings`
94+
- [ ] Run rustfmt: `cargo fmt --check`
95+
- [ ] Update documentation: `cargo doc --no-deps`
96+
- [ ] Test examples: `cargo run --example basic_backtest`
97+
- [ ] Create git tag: `git tag v0.1.0`
98+
- [ ] Publish to crates.io: `cargo publish`
99+
- [ ] Update GitHub release with changelog

0 commit comments

Comments
 (0)