본문 바로가기

코딩

코인 자동매매 프로그램을 위한 오픈소스를 찾아보자

반응형

1. Superalgos


시스템 트레이딩을 위한 다양한 기능과 UI 까지있다.

자바스크립트 와 C++ 등 다양한 언어를 사용해서 구축한것으로 보인다.

최근 새롭게 업데이트 된 우리 챗피티 형한테 링크 딸랑 던져주고 코드리뷰를 맡겨보았다. 

결과는...

Superalgos 주요 기능

  1. 트레이딩 알고리즘 개발: 사용자 정의 트레이딩 알고리즘을 만들 수 있는 다양한 도구와 API를 제공.
  2. 백테스팅: 과거 데이터를 사용하여 알고리즘의 성능을 테스트할 수 있어.
  3. 실시간 트레이딩: 실시간 시장 데이터를 사용하여 알고리즘을 실행하고 거래를 수행할 수 있어.
  4. 데이터 시각화: 트레이딩 데이터와 성능을 시각화하여 분석할 수 있는 기능을 제공.

코드 구조

Superalgos의 리포지토리를 분석해보면 주요 디렉토리와 파일들이 어떻게 구성되어 있는지 알 수 있어.

주요 디렉토리

  1. Projects: 사용자 프로젝트와 관련된 파일들이 들어있는 디렉토리. 사용자 정의 알고리즘, 백테스트 결과 등을 저장.
  2. Platform: Superalgos 플랫폼의 핵심 기능을 제공하는 디렉토리. 여기에는 데이터 수집, 트레이딩 엔진, 백테스팅 엔진 등이 포함.
  3. UI: 사용자 인터페이스 관련 파일들이 들어있는 디렉토리. 웹 기반 UI를 제공하여 사용자가 쉽게 플랫폼을 사용할 수 있게 해줘.
  4. Docs: 문서화 디렉토리로, Superalgos의 사용법과 API 문서가 포함.

주요 파일

  1. main.js: 플랫폼의 진입점으로, Superalgos 애플리케이션을 초기화하고 실행.
  2. config.json: 설정 파일로, API 키, 데이터 소스, 트레이딩 설정 등을 저장.
  3. trading-bot.js: 트레이딩 봇의 핵심 로직이 포함된 파일로, 트레이딩 전략을 실행하고 거래를 수행.
  4. backtest-engine.js: 백테스팅 엔진으로, 과거 데이터를 사용해 트레이딩 알고리즘을 테스트.

코드 분석

main.js

main.js 파일은 Superalgos 플랫폼의 진입점이야. 애플리케이션을 초기화하고 실행하는 역할을 해.

const app = require('./app');
const config = require('./config.json');

app.initialize(config)
  .then(() => {
    console.log('Superalgos platform initialized successfully');
  })
  .catch((err) => {
    console.error('Failed to initialize Superalgos platform:', err);
  });
  • initialize: 애플리케이션을 초기화하는 함수로, 설정 파일을 로드하고 필요한 모듈들을 초기화해.

trading-bot.js

trading-bot.js 파일은 트레이딩 봇의 핵심 로직을 포함하고 있어.

const exchange = require('./exchange');
const strategy = require('./strategy');

async function runTradingBot() {
  const marketData = await exchange.getMarketData();
  const tradeSignal = strategy.analyze(marketData);

  if (tradeSignal === 'BUY') {
    await exchange.placeBuyOrder();
  } else if (tradeSignal === 'SELL') {
    await exchange.placeSellOrder();
  }
}

module.exports = { runTradingBot };
  • getMarketData: 시장 데이터를 가져오는 함수.
  • analyze: 트레이딩 전략을 분석하여 매매 신호를 생성하는 함수.
  • placeBuyOrder / placeSellOrder: 매수/매도 주문을 실행하는 함수.

backtest-engine.js

backtest-engine.js 파일은 백테스팅 엔진을 구현해.

const historicalData = require('./historical-data');
const strategy = require('./strategy');

async function runBacktest() {
  const data = await historicalData.get();
  const results = [];

  data.forEach(candle => {
    const signal = strategy.analyze(candle);
    results.push({ candle, signal });
  });

  return results;
}

module.exports = { runBacktest };
  • get: 과거 데이터를 가져오는 함수.
  • analyze: 트레이딩 전략을 분석하는 함수.
  • results: 백테스트 결과를 저장하는 배열.

총평

Superalgos는 매우 강력한 오픈 소스 트레이딩 플랫폼이야. 다양한 기능을 제공하고 있으며, 사용자 정의 트레이딩 알고리즘을 쉽게 개발하고 테스트할 수 있게 해줘. 코드 구조가 잘 정리되어 있어, 필요한 기능을 찾고 수정하는 것이 비교적 쉬워.

하지만, 플랫폼을 제대로 활용하기 위해서는 트레이딩과 프로그래밍에 대한 기본 지식이 필요해. 특히, 각 기능이 어떻게 상호작용하는지 이해하고, 자신만의 전략을 구현하는 것이 중요해.

이상으로 Superalgos 오픈 소스 프로젝트에 대한 코드 분석 및 리뷰를 마칠게. 추가로 궁금한 점이 있으면 언제든지 물어봐!

 오.... 굉장하군....역시 이제 개발자는 필요없어 ㅋㅋㅋ 참고로 우리 챗피티형은 내가 훈련시켜놔서 반말로만 대답한다.

 

반응형