ثبت داده های معامله های شخصی

برای ثبت تراکنش های شخصی و تجزیه و تحلیل آینده، می توانید فرآیند را به طور قابل توجهی ساده کنید. در اینجا یک لیست ساده از فیلدهای ضروری آمده است:

  1. تاریخ: تاریخ معامله
  2. نوع: خرید یا فروش
  3. دارایی: نام یا نماد نماد سهام/صندوق/دارایی
  4. مقدار: تعداد سهام یا واحد
  5. قیمت: قیمت هر سهم/واحد
  6. مبلغ کل: کل هزینه یا درآمد حاصل از معامله
  7. هزینه ها: هر گونه کمیسیون یا هزینه های پرداخت شده
  8. حساب: جایی که معامله انجام شده است (به عنوان مثال، نام حساب کارگزاری)
  9. یادداشت ها: هر گونه اطلاعات اضافی که می خواهید به خاطر بسپارید

این مجموعه ساده شده از زمینه ها باید برای اکثر اهداف ردیابی و تحلیل سرمایه گذاری شخصی کافی باشد. این امکان را به شما می دهد تا به راحتی تراکنش ها را ثبت کنید و بعداً عملکرد سرمایه گذاری خود را تجزیه و تحلیل کنید، سود / زیان را محاسبه کنید و ترکیب سبد خود را در طول زمان پیگیری کنید.

import sqlite3
import csv
from datetime import datetime

def create_table():
    conn = sqlite3.connect('transactions.db')
    c = conn.cursor()
    c.execute('''CREATE TABLE IF NOT EXISTS transactions
                 (date TEXT, type TEXT, asset TEXT, quantity REAL, price REAL, 
                  total_amount REAL, fees REAL, account TEXT, notes TEXT)''')
    conn.commit()
    conn.close()

def add_transaction():
    date = input("Enter date (YYYY-MM-DD): ")
    type = input("Enter type (Buy/Sell): ")
    asset = input("Enter asset name or ticker: ")
    quantity = float(input("Enter quantity: "))
    price = float(input("Enter price per unit: "))
    total_amount = float(input("Enter total amount: "))
    fees = float(input("Enter fees: "))
    account = input("Enter account name: ")
    notes = input("Enter any notes: ")

    conn = sqlite3.connect('transactions.db')
    c = conn.cursor()
    c.execute("INSERT INTO transactions VALUES (?,?,?,?,?,?,?,?,?)",
              (date, type, asset, quantity, price, total_amount, fees, account, notes))
    conn.commit()
    conn.close()
    print("Transaction added successfully!")

def export_to_csv():
    conn = sqlite3.connect('transactions.db')
    c = conn.cursor()
    c.execute("SELECT * FROM transactions")
    
    with open('transactions.csv', 'w', newline='') as csvfile:
        csv_writer = csv.writer(csvfile)
        csv_writer.writerow(['Date', 'Type', 'Asset', 'Quantity', 'Price', 'Total Amount', 'Fees', 'Account', 'Notes'])
        csv_writer.writerows(c)
    
    conn.close()
    print("Data exported to transactions.csv")

def main():
    create_table()
    while True:
        print("\n1. Add a new transaction")
        print("2. Export to CSV")
        print("3. Exit")
        choice = input("Enter your choice (1-3): ")
        
        if choice == '1':
            add_transaction()
        elif choice == '2':
            export_to_csv()
        elif choice == '3':
            break
        else:
            print("Invalid choice. Please try again.")

if __name__ == "__main__":
    main()

دیدگاهتان را بنویسید