R2 ビットコイン裁定取引システムの導入手順

R2はNode.jsとTypeScriptで構築された自動ビットコイン裁定取引プラットフォームです。GitHubミラーから入手可能:https://gitcode.com/gh_mirrors/r21/r2

1. プロジェクト構成の概要

r2/
├── README.md
├── LICENSE
├── package.json
├── tsconfig.json
├── src/
│   ├── index.ts
│   ├── config/
│   │   └── settings.ts
│   ├── core/
│   │   ├── trader.ts
│   │   └── analyzer.ts
│   ├── utils/
│   │   └── helpers.ts
│   └── tests/
│       ├── trader.test.ts
│       └── analyzer.test.ts
└── docs/
    ├── setup.md
    ├── api-guide.md
    └── faq.md
  • README.md: 基本的な説明とクイックスタート手順。
  • LICENSE: オープンソースライセンス情報。
  • package.json: Node.js依存関係とスクリプト定義。
  • tsconfig.json: TypeScriptコンパイラ設定。
  • src/: 主要なアプリケーションコード。
    • index.ts: エントリーポイント。
    • config/settings.ts: 環境設定モジュール。
    • core/: 取引と分析の主要ロジック。
    • utils/: 補助関数群。
    • tests/: 単体テストファイル。
  • docs/: 詳細なドキュメント群。

2. エントリーポイントの解説

src/index.ts はアプリケーションの起動点です:

import { loadSettings } from './config/settings';
import { ArbitrageTrader } from './core/trader';
import { MarketAnalyzer } from './core/analyzer';

async function bootstrap() {
  const settings = loadSettings();
  const analyzer = new MarketAnalyzer(settings);
  const trader = new ArbitrageTrader(settings, analyzer);

  await trader.startMonitoring();
}

bootstrap().catch(err => {
  console.error('起動エラー:', err);
  process.exit(1);
});

このファイルは設定を読み込み、市場分析器と取引エンジンを初期化し、監視ループを開始します。

3. 設定管理モジュール

src/config/settings.ts では環境固有の設定を管理します:

interface AppConfig {
  exchangeApiKey: string;
  dbConnectionString: string;
  pollingIntervalMs: number;
  enableLogging: boolean;
}

export function loadSettings(): AppConfig {
  return {
    exchangeApiKey: process.env.EXCHANGE_API_KEY || 'default_key',
    dbConnectionString: process.env.DATABASE_URL || 'sqlite://./data.db',
    pollingIntervalMs: parseInt(process.env.POLL_INTERVAL || '5000', 10),
    enableLogging: process.env.NODE_ENV !== 'production'
  };
}

設定値は環境変数から優先的に読み込まれ、デフォルト値がフォールバックとして機能します。他のモジュールでは以下のように利用できます:

import { loadSettings } from './config/settings';

const config = loadSettings();
if (config.enableLogging) {
  console.log(`監視間隔: ${config.pollingIntervalMs}ms`);
}

この構成により、開発・ステージング・本番環境での柔軟な設定切り替えが可能です。

タグ: Node.js TypeScript ビットコイン 裁定取引 自動取引

6月19日 18:50 投稿