Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 22 additions & 65 deletions backend/app/data/sample_data.csv
Original file line number Diff line number Diff line change
@@ -1,67 +1,24 @@
Date,Close,High,Low,Open,Volume
,AAPL,AAPL,AAPL,AAPL,AAPL
2024-11-11,223.98373413085938,225.45212091614073,221.25673663335022,224.7528927426808,42005600
2024-11-12,223.98373413085938,225.34224111445195,223.11469448970428,224.30339000560164,40398300
2024-11-13,224.8727569580078,226.4010754152989,222.5153482196322,223.76397540644066,48566200
2024-11-14,227.9693603515625,228.61864039722624,224.7528954725484,224.77287777547028,44923900
2024-11-15,224.7528839111328,226.67077335813082,224.023689933323,226.15134020310103,47923700
2024-11-18,227.7695770263672,229.4876892234719,224.92270099550518,225.00261496304853,44686000
2024-11-19,228.02928161621094,229.90722171238716,226.41106572007726,226.73070634208972,36211800
2024-11-20,228.7484893798828,229.67746064503265,225.64190448211673,227.80951934283004,35169600
2024-11-21,228.26902770996094,229.90722593821596,225.46211628612434,228.6286329426038,42108300
2024-11-22,229.61753845214844,230.46661102927646,227.80952873867182,227.80952873867182,38168300
2024-11-25,232.61424255371094,232.99383009111634,229.48769048234254,231.2058026888721,90152800
2024-11-26,234.8018341064453,235.31128373473052,233.07373841155265,233.07373841155265,45986200
2024-11-27,234.67198181152344,235.43115689965902,233.55321672420507,234.21249554010248,33498400
2024-11-29,237.06935119628906,237.5488197625333,233.71304074851764,234.55211454995276,28481400
2024-12-02,239.3268585205078,240.52553753151284,236.89953466637493,237.00941446483552,48137100
2024-12-03,242.3834991455078,242.49337894569658,238.6376176509325,239.54662188503684,38861000
2024-12-04,242.74310302734375,243.84190102311462,240.9850414761411,242.60325739533934,44383900
2024-12-05,242.7730712890625,244.2714238935446,241.86408229295347,243.72204013219255,40033900
2024-12-06,242.5732879638672,244.3613305629988,241.8141281502541,242.6432183998472,36870600
2024-12-09,246.47900390625,246.96847124510987,241.48449521514058,241.56440918324205,44649200
2024-12-10,247.4978790283203,247.93739821602466,245.0705399660552,246.61884065291167,36914800
2024-12-11,246.2192840576172,250.52454792031958,245.98952569372008,247.68767076725757,45205800
2024-12-12,247.68768310546875,248.46682524629017,245.41017310687806,246.61885092340057,32777500
2024-12-13,247.85748291015625,249.01619729452798,245.96955931284188,247.54782582286595,33155300
2024-12-16,250.7642822265625,251.10392039685559,247.3780059899919,247.71764416028498,51694800
2024-12-17,253.20159912109375,253.5512208135588,249.50566587259755,249.80533943156328,51356400
2024-12-18,247.77757263183594,254.0007260278641,247.46791553993853,251.88305927654196,56774100
2024-12-19,249.51565551757812,251.72323503929724,246.81862390484895,247.22817727073837,60882300
2024-12-20,254.21051025390625,254.71994465608725,245.42017186050566,247.76758181309805,147495300
2024-12-23,254.98965454101562,255.36922684225433,253.17164603591402,254.49020366493687,40858800
2024-12-24,257.91644287109375,257.92641115938613,255.0096198916901,255.2094124344067,23234700
2024-12-26,258.7355041503906,259.81433504408284,257.34704665632455,257.90642916266114,27237100
2024-12-27,255.30929565429688,258.41589596104086,252.78207543596488,257.54682582842287,42355300
2024-12-30,251.9230194091797,253.22159473829512,250.47461491371794,251.95298524244893,35557500
2024-12-31,250.1449737548828,253.00183336212825,249.15605553782555,252.16275955239965,39480700
2025-01-02,243.5821990966797,248.826433311358,241.55442975303322,248.65660659999048,55740700
2025-01-03,243.0927276611328,243.91181916074598,241.624340886356,243.0927276611328,40244100
2025-01-06,244.73092651367188,247.05836939894766,242.93290033169586,244.04168187374515,45045600
2025-01-07,241.94400024414062,245.28032844029428,241.08494412707995,242.71314361950866,40856000
2025-01-08,242.43344116210938,243.44234164075266,239.78635773622742,241.65429905026372,37628900
2025-01-10,236.58987426757812,239.8962364632009,232.74409661721964,239.7463920626497,61710900
2025-01-13,234.14256286621094,234.41227060505477,229.46771001708314,233.27352322575203,49630700
2025-01-14,233.02378845214844,235.8606656353981,232.21468051006943,234.49217517741417,39435300
2025-01-15,237.60874938964844,238.6975638581554,234.17252500331003,234.38230107288462,39832000
2025-01-16,228.00930786132812,237.74859991927732,227.7795647267042,237.089336348529,71759100
2025-01-17,229.7274169921875,232.03487756376998,228.22906438809179,231.86506609768284,68488300
2025-01-21,222.39547729492188,224.17352112887505,219.13906319002535,223.75398423747347,98070400
2025-01-22,223.58416748046875,223.87384226456615,219.54859611049605,219.54859611049605,64126500
2025-01-23,223.41436767578125,226.78066167492807,222.05586069453574,224.493183388126,60234800
2025-01-24,222.5353240966797,225.38220009721186,221.16683361690275,224.53312753788666,54697900
2025-01-27,229.6075439453125,231.89502211760887,223.73399710835045,223.77396171163917,94863400
2025-01-28,237.99832153320312,239.9262098046868,230.55650666713984,230.59647127201654,75707600
2025-01-29,239.0971221923828,239.5965730646729,233.75299176206667,233.86287156365174,45486100
2025-01-30,237.3290557861328,240.52553823889048,236.94948349745044,238.40787147181928,55658300
2025-01-31,235.74081420898438,246.91852728753366,233.18362815459494,246.91852728753366,101075100
2025-02-03,227.75958251953125,231.5753945205246,225.45212191586603,229.73741895869952,73063300
2025-02-04,232.54432678222656,232.87396618357337,226.40107197135944,227.00041910872287,45067300
2025-02-05,232.21469116210938,232.4144684638066,228.0193068583431,228.27901582634638,39620300
2025-02-06,232.9638671875,233.54323203112875,230.17692277145878,231.0359788855247,29925300
2025-02-07,227.3800048828125,233.74300400322835,227.0104008794231,232.3445476829273,39707200
2025-02-10,227.64999389648438,230.58999633789062,227.1999969482422,229.57000732421875,33115600
2025-02-11,232.6199951171875,235.22999572753906,228.1300048828125,228.1999969482422,53718400
2025-02-12,236.8699951171875,236.9600067138672,230.67999267578125,231.1999969482422,45243300
2025-02-13,241.52999877929688,242.33999633789062,235.57000732421875,236.91000366210938,53614100
2025-02-14,244.60000610351562,245.5500030517578,240.99000549316406,241.25,40896200
2024-04-11,174.2173614501953,174.63540094951088,167.36970557110288,167.54885233902874,91070300
2024-04-12,175.72027587890625,177.52176704196785,173.39127675717174,173.44102962389059,101593300
2024-04-15,171.87841796875,175.7999037342719,171.68930847441092,174.53586805138283,73531800
2024-04-16,168.583984375,172.94338974194338,167.47920033817573,170.94284143183614,73711200
2024-04-17,167.21046447753906,169.84800441976404,167.21046447753906,168.81289870293196,50901200
2024-04-18,166.2549591064453,167.8474456964944,165.7672716683895,167.24031189258443,43122900
2024-04-19,164.22454833984375,165.6179626751691,163.30887389276177,165.42886837664992,67772100
2024-04-22,165.0606231689453,166.47394798708703,163.99565958352764,164.74213492186811,48116400
2024-04-23,166.11561584472656,166.26492000363532,164.14492548116624,164.57291251221173,49537800
2024-04-24,168.22567749023438,168.50436038665487,165.4288858023208,165.75732156896873,48251800
2024-04-25,169.09156799316406,169.80818542681567,167.35973999732644,168.73325927633826,50558300
2024-04-26,168.5043487548828,170.53475474394267,168.38490238817732,169.081624768213,44838400
2024-04-29,172.6846160888672,175.20272483761752,172.28650201133235,172.555222179483,68169400
2024-04-30,169.52952575683594,174.16762945183916,169.20107478920735,172.5154270766455,65934800
2024-05-01,168.5043487548828,171.89832652202932,168.31523926242042,168.78303163206596,50383100
2024-05-02,172.21682739257812,172.6049939419865,170.08688513916925,171.69926693100732,94214900
2024-05-03,182.51817321777344,186.12115543095717,181.80155578938326,185.7727942523785,163224100
2024-05-06,180.85604858398438,183.33433694545525,179.5721025190793,181.49304025440043,78569700
2024-05-07,181.54278564453125,184.0310366275269,180.46787458450643,182.58785409480518,77305800
2024-05-08,181.8811798095703,182.20963072654146,180.5972339353124,181.9906634485607,45057100
2024-05-09,183.70260620117188,183.792179594264,181.2541604804327,181.70204263297254,48983000
2024-05-10,182.4368438720703,184.47000383075684,181.51992740382525,184.28063783698332,50759500
Binary file modified backend/app/routes/__pycache__/backtest.cpython-312.pyc
Binary file not shown.
36 changes: 9 additions & 27 deletions backend/app/routes/backtest.py
Original file line number Diff line number Diff line change
@@ -1,42 +1,21 @@
# # backend/app/routes/backtest.py

# from fastapi import APIRouter, HTTPException
# from fastapi import APIRouter
# from pydantic import BaseModel
# from app.services.strategy_parser import convert_xml_to_json
# from typing import List, Dict, Any
# from app.services.backtester import run_backtest

# router = APIRouter()

# class StrategyPayload(BaseModel):
# strategy_xml: str

# @router.post("/backtest")
# def run_backtest_route(payload: StrategyPayload):
# try:
# strategy_json = convert_xml_to_json(payload.strategy_xml)
# result = run_backtest(strategy_json)
# return result
# except Exception as e:
# raise HTTPException(status_code=500, detail=str(e))


# from fastapi import APIRouter, Request
# from pydantic import BaseModel
# from typing import Any, Dict
# from app.services.backtester import run_backtest

# router = APIRouter()

# # ✅ Request model
# class BacktestRequest(BaseModel):
# symbol: str
# start_date: str
# end_date: str
# code: Dict[str, Any]
# code: List[Dict[str, Any]] # ✅ code is a list of rule dictionaries

# @router.post("/backtest")
# async def backtest(request_data: BacktestRequest):
# try:
# print("Received request:", request_data)
# result = run_backtest(
# symbol=request_data.symbol,
# start_date=request_data.start_date,
Expand All @@ -47,6 +26,7 @@
# except Exception as e:
# return {"error": str(e)}


from fastapi import APIRouter
from pydantic import BaseModel
from typing import List, Dict, Any
Expand All @@ -58,7 +38,8 @@ class BacktestRequest(BaseModel):
symbol: str
start_date: str
end_date: str
code: List[Dict[str, Any]] # ✅ code is a list of rule dictionaries
initial_balance: float # ✅ Added balance
code: List[Dict[str, Any]]

@router.post("/backtest")
async def backtest(request_data: BacktestRequest):
Expand All @@ -68,7 +49,8 @@ async def backtest(request_data: BacktestRequest):
symbol=request_data.symbol,
start_date=request_data.start_date,
end_date=request_data.end_date,
strategy_json=request_data.code
strategy_json=request_data.code,
initial_balance=request_data.initial_balance # ✅ Pass to backend
)
return result
except Exception as e:
Expand Down
Binary file modified backend/app/services/__pycache__/backtester.cpython-312.pyc
Binary file not shown.
Loading