Files
mt5-tools/__pycache__/view_trade_analysis.cpython-314.pyc
T

176 lines
28 KiB
Plaintext
Raw Normal View History

2026-04-12 18:25:46 +10:00
+
g°ŢiOWăóćRt^RIt^RIHt^RIt^RIt]PP^]PP]PP] 444^RI
2026-04-12 18:25:46 +10:00
HtHtRtRtR#)uk
pages/trade_analysis.py
=======================
MT5 Trade Analysis page — migrated from main dashboard.
2026-04-14 08:39:30 +10:00
N)Údetect_and_parseÚ
calc_statscór^RIpVP4pRVP9dRVP9d
VR,VR&RVP9dRVP9d
VR,VR&RVP9dRVR&RVP9dRVR&R VP9dRVR &R
VP9dRVR
&R VP9d!RVP9dVR,^8„VR &R VP9d„VPVR ,R
R7VR &RVP9d%VR ,PP 4VR&RVP9d!VR ,PP VR&RVP9dVPVR,R
R7VR&RVP9dkR VP9dZRVP9dIVR,VR ,,
PP4^<, P^4VR&V#)zFMap IC Markets DataFrame columns to the schema expected by calc_stats.NÚ symbol_baseÚstrategyÚ
net_profitÚprofitÚ
commissiongÚswapÚslÚtpÚwinÚ open_timeÚcoerce)ÚerrorsÚ day_of_weekÚhourÚ
close_timeÚ duration_min) ÚpandasÚcopyÚcolumnsÚ to_datetimeÚdtÚday_namerÚ
total_secondsÚround)ÚdfÚpdÚouts& Ú+C:\Users\pc\MT5Tools\view_trade_analysis.pyÚ
_normalise_icr!ăŘ
Ź'‰')€Cđź Ô
¸#ż+ą+Ô(EŘ,J‰Řs—{" x°s·{±{Ô'BŘ)H‰
Ř3ź;™;ÔŘ
S—[‘[Ô ŘF‰ Ř 3—;‘;ÔŘD‰ Ř 3—;‘;ÔŘD‰ ŕ C—K‘KÔ L°C·K±KÔ$?ŘŐŃ*E‰
ŕc—kź>™>¨#¨kŐ*:Ŕ8LŘ  § ˇ Ô +Ř!$ [Ő!1×!4Ń!4×!=Ń!=Ó!?C
Ń Ř źÔ 2C‰KŘs—{źN™N¨3¨|Ő+<ŔXNŘSź[™[Ô(¨[¸CżKąKÔ-GČLĐ\_×\gŃ\gÔLgŘ # LŐ 1°C¸ Ő4DŐ Dß "ˇ§=ˇ=Ł?°Rő 8ß9>ą¸đ ŕ €Jócó\P!R4RRRRR.RR/P4F/wrV\P9gKV\PV&K1 \P!^^.4wr#V;_uu_4\P
!RRR.R R
R 7pRRR4T;_uu_4\P !R R R
7\P!RRR7'dOR\PR&R\PR&.\PR&\P!4RRR4XR8XEd\P!RRRR7pV'VPP4PRt4'\VP4VP4wrgVeaV\PR&V\PR&.\PR&\P!R\!V4 RV 24EM\P"!R4EMpV'd\P$!R4EMP\P!RRRR7pV'EdVPP4PRu4'^RIHpHp V'VP4p X!V 4p V 'g\P"!R4M¶V \PR&V \PR&R\PR&X !WĽ^,R7p
\/V
4p
V
\PR&\P!R\!V
4 R\!V 4 R24MMV'd\P$!R!4\PP9R4'\PP9R
V4R8X\PR,p R".V ,p\P:!R#VR$R7pVR"8XdRMTp\PP9R4'dD^R%IHp V !\PR,VR7p
\/V
2026-04-12 18:25:46 +10:00
4p
V
\PR&\PR,p\PR,pVe\!V4^8Xd\P !R&R R
7R#V'd'\P<!R'V R(\!V4 R)24\P>!4\P!^4wppppV;_uu_4VR*,PA4PC4pVR*,PE4PC4p\PF!R+VVVR,R-7p\PF!R.VVVR/R-7pRRR4V;_uu_4\IVR0,PK4PM4PO44p\PP!R1VR2R7pRRR4V;_uu_4\IVR3,PK4PM4PO44p\PP!R4VR5R7pRRR4V;_uu_4.RvOp\PP!R6VR7R7p \PP!R8R9R:.R;R7p!RRR4VPS4pWfR*,PTPBXVR*,PTPBX8*,,pX'dWfR0,PWV4,pX'dWfR3,PWV4,pX 'dWfR<,PWV 4,pX!'dWfR=,PWV!4,p\P<!R>\!V4 R?24\P
2026-04-14 08:39:30 +10:00
!R@.RwOR RER 7p"\P>!4RxRFlp#RyRGlp$RHp%RIp&RJp'V"RA8Xdn\YV4p(V#!V(RK4V$!V4\P!^4wp)p*V);_uu_4V%!V4RRR4V*;_uu_4V&!V4RRR4EMřV"RB8XEd\IVR3,PK4PM4PO44p+V+'g\PZ!RL4EM”\P\!RM4.p,V+F„p-WfR3,V-8H,p.\YV.4p/V,P_RNV-ROV/RP,RQV/RR,RSV/RT,RUV/RV,RWV/RX,RYV/RZ,R[V/R\,R]V/R^,R_V/R`,/
4K† \aRa4PcV,4PeRQRbRc7p0\Pf!V0PhPkV'.RzORd7R R Re7\P>!4\P:!RfV+4p1V1'd„WfR3,V18H,p.\YV.4p/V#!V/V14V$!V.V1 Rg24\P!^4wp)p*V);_uu_4V%!V.4RRR4V*;_uu_4V&!V.4RRR4EMÚEMŘV"RC8XE\IVR0,PK4PM4PO44p2.p,V2Frp-WfR0,V-8H,p.\YV.4p/V,P_R1V-ROV/RP,RQV/RR,RSV/RT,RUV/RV,RWV/RX,RYV/RZ,R[V/R\,/4Kt \aRa4PcV,4PeRQRbRc7p0\Pf!V0PhPkV'.RzORd7R R Re7\P:!RhV24p1V1'dWfR0,V18H,p.\YV.4p/V#!V/V14V$!V.V1 Rg24\P!^4wp)p*V);_uu_4V%!V.4RRR4V*;_uu_4V&!V.4RRR4MMV"RD8XdV%!V4V&!V4\P>!4\Pl!Ri4;_uu_4.R{Op3V3U4u.uFp4V4VP9gKV4NK p3p4Rkp5\Pf!VV3,PhPkV5RRRj.Rd7R R RlRm7\Pn!RnVV3,PqRbRo7RpV RqV R2RrRs7RRR4R# +'giE
2026-04-12 18:25:46 +10:00
L;i +'giE L“;i \,d(p
2026-04-14 08:39:30 +10:00
\P"!RT
2026-04-12 18:25:46 +10:00
R24RpRp
?
E LORp
2026-04-14 08:39:30 +10:00
?
2026-04-12 18:25:46 +10:00
ii;i \0dMp
\P"!R T
24^RIp\P4!TP744Rp
?
E
LłRp
?
ii;i +'giEL;i +'giEL4;i +'giELŕ;i +'giEL©;i +'giEL ;i +'giEL ;i +'giEL;i +'giEL3;i +'giEL{;i +'giEL[;iuup4i +'giR#;i)|u📊 Trade AnalysisÚta_dfNÚ ta_formatÚ ta_accountsÚ ta_ic_bytesz File sourcezMT5 / Quant AnalyzerzIC Markets XLSXTÚ ta_source)Ú
horizontalÚkeyz<br>)Úunsafe_allow_htmlu
đź—‘ ClearÚta_clear)r*z2Upload MT5 Report (HTM/HTML) or Quant Analyzer CSVÚ ta_upload)Útyper*ú.csvu âś“ Loaded u trades — u,Could not parse report — check file formatz*Please upload a .htm, .html, or .csv file.z*Upload IC Markets Position History (.xlsx))Úget_icmarkets_accountsÚparse_icmarkets_xlsxuHicmarkets_parser.py not found — ensure it is in the MT5Tools folder. (Ú)uJNo accounts found — check this is an IC Markets Position History export.)Úaccountz account(s) foundzError parsing file: zPlease upload an .xlsx file.z All accountsÚAccountÚ
ta_ic_account)r1
<div class="info-card">
Upload an MT5 account history report (.htm/.html), MT5 backtest report,
or a Quant Analyzer CSV export to begin analysis.
</div>
zFormat detected: **u** · z
total tradesrÚFromÚta_from)ÚvalueÚ min_valueÚ max_valuer*ÚToÚta_toÚsymbolÚSymbolÚta_symrz
Strategy / EAÚta_stratz Day of weekÚta_daysÚTypeÚbuyÚsellÚta_typerr.z
Showing **z** trades after filtersz
Analysis modeÚOverallú By Strategyú By SymbolúBy Day of WeekÚta_modecó(V'd\P!RV R24\P!^4wr#rEpVPRRVR,R
24VPRVR, R24VPRVR , 4VPR
VR , 4VPR RVR
,R
24\P!^4wr#rEpVPRVR,4VPRRVR,R
24VPRRVR,R
24VPRRVR,R
24VPRRVR,R
24\P!^4wr#rEpVPRVR,4VPRVR,4VPRVR, R24VPRVR , R24VPR!RVR",R
24\P!^4wr#rEVPR#VR$,4VPR%VR&, R24VPR'VR(,4VPR)VR*, R24R+#),z**ú
Net ProfitÚ$rz,.2fzWin RateÚwin_rateÚ
Profit FactorÚ
profit_factorz R:R RatioÚrr_ratioÚ
ExpectancyÚ
expectancyz Total TradesÚ total_tradeszAvg WinÚavg_winzAvg LossÚavg_lossúMax DDÚ max_drawdownz
Best TradeÚ
best_tradezMax Consec WinsÚmax_consec_winszMax Consec LossesÚmax_consec_lossesz Avg Win DurÚavg_win_durationÚmz Avg Loss DurÚavg_loss_durationz Worst TradeÚ worst_tradez Long TradesÚ long_tradesz
Long Win RateÚ
long_win_ratez Short TradesÚ short_tradeszShort Win RateÚshort_win_rateN)ÚstÚmarkdownrÚmetric)ÚstatsÚlabelÚc1Úc2Úc3Úc4Úc5s&& r Ú render_statsÚrender.<locals>.render_statsÍsKß Ü ŹKŠK"UG 2Ô źZšZ¨Ř
Ź ‰ , Q u¨\Ő':¸4Đ&@Đ#AÔ
2026-04-12 18:25:46 +10:00
Ź ‰ * e¨JŐ&7Đ%8¸Đ#:Ô
Ź ‰ / e¨OŐ&<Đ%=Ô
Ź ‰ + e¨JŐ&7Đ%8Ô
Ź ‰ , Q u¨\Ő':¸4Đ&@Đ#AÔźZšZ¨Ř
Ź ‰ . Ő#8Ô
Ź ‰ ) Q u¨YŐ'7¸Đ&=Đ#>Ô
Ź ‰ * Q u¨ZŐ'8¸Đ&>Đ#?Ô
Ź ‰ ( Q u¨^Ő'<¸TĐ&BĐ#CÔ
Ź ‰ , Q u¨\Ő':¸4Đ&@Đ#AÔźZšZ¨Ř
Ź ‰ Đ# uĐ->Ő'?Ô
Ź ‰ Đ% uĐ-@Ő'AÔ
2026-04-12 18:25:46 +10:00
Ź ‰ -¨%Đ0BŐ*CĐ)DŔAĐ'FÔ
Ź ‰ .¨%Đ0CŐ*DĐ)EŔQĐ'GÔ
Ź ‰ ¨5°Ő+?ŔĐ*EĐ'FÔźš AŘ
2026-04-12 18:25:46 +10:00
Ź ‰ - Ő#7Ô
Ź ‰ / e¨OŐ&<Đ%=¸QĐ#?Ô
Ź ‰ . Ő#8Ô
Ź ‰ Đ" eĐ,<Ő&=Đ%>¸aĐ#@ÖAr"cóŘ^RIpVPR4P4p\P!^4pV^,P RRRV 2R7pV^,P RRR V 2R7pV^,P R
RR V 2R7pV^,P R RR
V 2R7p.R-Op \ P!4p
V'd`VR,P4VR&V
P\ P!VR,VR,RR\R^R7RRR74V'RVP9\\VR,P4P444F wrĽW3R,V 8H,P4p
V
R,P4V
R&V
P\ P!V
2026-04-14 08:39:30 +10:00
R,V
R,RV \W^,\!V 4,,RRR7R74 V'RVP9\\VR,P4P444F wrľW3R,V8H,P4p
2026-04-14 08:39:30 +10:00
V
R,P4V
R&V
P\ P!V
2026-04-12 18:25:46 +10:00
R,V
R,RV\W^,\!V 4,,RRR7R74 V'RVP9.R.Op\V4F´wp pW3R,V8H,P4p
2026-04-14 08:39:30 +10:00
V
P"'dK:V
R,P4V
R&V
P\ P!V
R,V
R,RV\W^,\!V 4,,RR7R74 V
P%VRR R \R!R"7\R#RR$7\R#R%RR&7\^<^^(^(R'7\R ^R(7R)R*7
\P&!V
RR+V 2R,7R#)/éNrz
Account totalTÚ eq_account_)r8r*rGFÚ eq_strat_rHÚeq_sym_rIÚeq_dow_ú#7c6af7rÚ_cumÚlinesr4)ÚcolorÚwidthÚtozeroyzrgba(124,106,247,0.06))ÚmodeÚnameÚlineÚfillÚ fillcolorrgř?Údot)rzr{Údash)r}r~rr€rr=r…rihú
rgba(0,0,0,0)ú
2026-04-12 18:25:46 +10:00
sans-serif©Úfamilyúrgba(128,128,128,0.15))Ú gridcolorÚshowgridrM)rÚ
tickprefixrŚ©Úb)ÚbgcolorÚ borderwidthz x unified)
ÚtitleÚheightÚ plot_bgcolorÚ
paper_bgcolorÚfontÚxaxisÚyaxisÚmarginÚlegendÚ hovermodeÚeq_fig_)Úuse_container_widthr*)
rwz#34C27Az#F5A623z#E05555z#4C8EF5z#A78BFAz#22D3EEz#FB923Cz#F472B6z#86EFAC©ÚMondayÚTuesdayÚ WednesdayÚThursdayÚFriday)rÚ sort_valuesrrerÚcheckboxÚgoÚFigureÚcumsumÚ add_traceÚScatterÚdictÚ enumerateÚsortedÚdropnaÚuniqueÚlenÚemptyÚ
2026-04-14 08:39:30 +10:00
update_layoutÚ plotly_chart)Údf_plotrirÚdf_sÚov_colsÚ show_accountÚ
2026-04-12 18:25:46 +10:00
show_strategyÚ show_symbolÚshow_dowÚCOLORSÚfigÚstratÚsubÚsymÚ dow_orderÚdows&& r Úrender_equity_curveÚ#render.<locals>.render_equity_curveěŰŘ×" 0×7ô—*’*Q“-Ř ť
×+¨OŔtĐT_Đ`eĐ_fĐRgĐh Ř ť
×+¨MŔuĐT]Đ^cĐ]dĐReĐf
Ř ť
×+¨KŔuĐT[Đ\aĐ[bĐRcĐd Ř ť
×+Đ,<ŔuĐT[Đ\aĐ[bĐRcĐdňEôŹiŠi‹k÷ Ř  Ő6D‰LŘ ŹM‰Mś"ź*š*بV­ Ř 9Ü  °ÔĐ*Bô ô
÷ Z¨4Ż<©<Ô%¤f¨T°*Ő-=×-DŃ-DÓ-F×-MŃ-MÓ-OÓ&PÖQŘ 
Ő+¨UŃ:Ř! /×8F Ř
śbźjšjŘ'¨3¨v­   F¨a­C´°VłŐ+<Ő$=ŔSČuÔöńR÷ 8 t§|ˇ|Ô#¤F¨4°­>×+@Ń+@Ó+B×+IŃ+IÓ+KÓ$LÖMŘ ť>¨3Ń/×6Ř! /×8F Ř
śbźjšjŘ'¨3¨v­   F¨a­C´°VłŐ+<Ő$=ŔSČvÔöńN÷ 
¨Ż©ÔL# IÖ.‘ 
ŐŃ;Ř—9—99™hŘ! 8F Ř
2026-04-14 08:39:30 +10:00
śbźjšjŘ'¨3¨v­   F¨a­C´°VłŐ+<Ő$=ŔSÔöń  ×ŃŘ ŘĐ!9ŔDÔĐ!9ŔcĐTXÔ"  b¨BÔ ¸ ô
2026-04-12 18:25:46 +10:00
2026-04-14 08:39:30 +10:00
ô ŹŠ°¸WŔUŔGĐ;L×Mr"cóx.ROpVPR4PR R!RR3R7PVUu.uF"q"VR,P49gK VNK$ up4pWR,,PR4R,P 4PVP
2026-04-12 18:25:46 +10:00
^R7pWR,(,PR4R,P 4PVP
^R7p\ P!4pVP\ P!VP
2026-04-14 08:39:30 +10:00
VRRR 74VP\ P!VP
2026-04-12 18:25:46 +10:00
VR
R R 74VPR R
RRR\RR7\^<^^(^(R7\RR7\RRR7\RR7R7
\P!VRR7VP4p.R"OVnVR,P!^4VR&\P"!VRRR7R#uupi)#r˘rrr
2026-04-14 08:39:30 +10:00
cóD\VP4^d,^4#)éd)rÚmean)r}s&r Ú<lambda>Ú2render.<locals>.render_dow_chart.<locals>.<lambda>;s¬5°·±ł¸¸qÔ+Ar")ÚtradesrrN©Ú
fill_valueÚProfitúrgba(45,198,83,0.8)©r}r~r€Ú marker_colorÚLossúrgba(230,57,70,0.8)zP&L by Day of WeekéÚrelativer†r‡r)rrM©rúrgba(0,0,0,0.3)©r“©
2026-04-12 18:25:46 +10:00
r•rÚbarmoder—rr™rr rL©r Ú
hide_indexN)ÚSaturdayÚSunday©rÚcount©rÚsum)ÚDayÚTradesrLú
Win Rate %)ÚgroupbyÚaggÚreindexr˛Úindexr©ÚBarrµreÚ reset_indexrrÚ dataframe)ÚdrĹÚwins_dowÚ
losses_dowrżrs& r Úrender_dow_chartÚ render.<locals>.render_dow_chart6Ú\ ŘŹo‰oŃ!AĐ
2026-04-14 08:39:30 +10:00
÷ ‰'™iÓP™i°¸
Ő0F×0MŃ0MÓ0OŃ+O—11™iŃ
đ  Uť^Ő,×4°]ÓCŔLŐQ×W×_Đ`c×`iŃ`iĐvwĐxŘ eťn5°mÓDŔ\ŐR×X×`Đad×ajŃajĐwxĐy
äŹiŠikŘ Ź
2026-04-14 08:39:30 +10:00
”b—ffsźy™y¨H¸XĐTiÔ Ź