>

파이썬에서 간단한 백 테스터를 만들어서 거래 전략의 성능을 평가하려고합니다. 백 테스터의 일환으로 발생하는 거래를 기록해야합니다. 예 :

Day     Stock    Action     Quantity
1       AAPL     BUY        20
2       CSCO     SELL       30
2       AMZN     SELL       50

거래 시뮬레이션 중에 더 많은 거래를 추가해야합니다.

이를 수행하는 가장 효율적인 방법은 무엇입니까? transactions 를 만들어야합니까  시뮬레이션 시작시 목록 및 [5, 'AAPL', 'BUY', 20] 와 같은 목록 추가  내가 갈 때. 대신 사전이나 numpy 배열을 사용해야합니까? 아니면 그냥 Pandas DataFrame입니까?

감사합니다,

  • 답변 # 1

    list.append  오퍼레이션은 포인터를 이동시키는 것만으로 상수 시간 오퍼레이션으로 상각됩니다.

    OTOH, 와이즈 비즈  그리고 numpy.ndarray  객체는 내부적으로 C에서 배열로 표시되며 불변입니다. 배열/데이터 프레임에 "추가"할 때마다 이전 데이터의 전체 사본과 추가 된 데이터에 대해 새 메모리를재 할당해야하며 결국 복잡해집니다.

    @ayhan이 의견에서 말했듯이 pd.DataFrame 에 데이터를 축적하십시오. 그런 다음 완료되면 데이터 프레임에로드합니다.

    list

관련 자료

  • 이전 Mat-Menu Angular/material2 내부의 항목 목록을 렌더링하는 방법
  • 다음 mysql - SQL은 COUNT (및 GROUP BY?)를 사용하여 레코드를 제외하지 않고 SELECT에서 계산을 수행합니다