برای ثبت تراکنش های شخصی و تجزیه و تحلیل آینده، می توانید فرآیند را به طور قابل توجهی ساده کنید. در اینجا یک لیست ساده از فیلدهای ضروری آمده است:
- تاریخ: تاریخ معامله
- نوع: خرید یا فروش
- دارایی: نام یا نماد نماد سهام/صندوق/دارایی
- مقدار: تعداد سهام یا واحد
- قیمت: قیمت هر سهم/واحد
- مبلغ کل: کل هزینه یا درآمد حاصل از معامله
- هزینه ها: هر گونه کمیسیون یا هزینه های پرداخت شده
- حساب: جایی که معامله انجام شده است (به عنوان مثال، نام حساب کارگزاری)
- یادداشت ها: هر گونه اطلاعات اضافی که می خواهید به خاطر بسپارید
این مجموعه ساده شده از زمینه ها باید برای اکثر اهداف ردیابی و تحلیل سرمایه گذاری شخصی کافی باشد. این امکان را به شما می دهد تا به راحتی تراکنش ها را ثبت کنید و بعداً عملکرد سرمایه گذاری خود را تجزیه و تحلیل کنید، سود / زیان را محاسبه کنید و ترکیب سبد خود را در طول زمان پیگیری کنید.
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()