CoolFace
Apppublic

kaan1233/bistelligence-api

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes
backtester.cpython-313.pyc67 linesDownload Raw Back to __pycache__
1�

2ImEj�5��.�SSKrSSKrSSKJrJr SSjrg)�N)�calculate_technical_score�get_signal_labelc#�# �/n0n[U5n	[U5GH�up�SU[U3S-U	-S-5S.v� X�;aM'XnUb[U5US-:aMB/n
SSKJn U"U5n[R"SUR[S	9nUS4S:�USUS
:�-nU[R"USS5-
nU[R"USUS:�USUS:�-SS5-
nU[R"USS:�USS:*-SS5-
nU[R"USS:�USS:*-SS5-
nU[R"USUS:�SS5-
nU[R"USUSS-:*SS5-
nU[R"USS:�SS5-
nURSS5n[USS5nSnUGH�n[U5U-5nUU:aMURUnUnUS ;aUS!:�aS!nUU:�dMAUn[USRU5nS"U;a[US"RU5O[Rn[R "U5(dUS::aUS#-nUS$-nOUUS%--6nUUS&--nUnUn[S[U5U-75H�nUU-n U [U5:�a+[U5S-8n[USRU5n O�S'U;a[US'RU 5O[USRU 5n!S(U;a[US(RU 5O[USRU 5n"U!U::aU nUn OU"U:�dM�U nUn O UnUS:�dGM�UU-9U-S-n#U
R#U[%URUS)5(a&['URUR)55O['URU5[%URUS)5(a&['URUR)55O['URU5[+[U5S%5[+[U5S%5[+[U#5S%5U[-U5S*[/U#S:�5S+.	5 GM� U
(dGM�[1S,U
55n$[U
5U$-10n%[R2"U
V&s/sHn&U&S-PM11 sn&5n'U
V&s/sHn&U&S-PM12 n(n&[U
5U$U%[[+U$[U
5-S-S55[[+U'S%55[[+[5U(5S%55[[+[7U(5S%55S..X�'UR9U
5 GM� U(dS/S0S100//S2.S3.v� g[;US4S59n)Un*/n+/n,[=5n-U)HSn&U-R?[R@"U&S655 U-R?[R@"U&S755 MU [;[CU-55n-/n.Sn/U-GH�n0U0RES85n1U+SSHQn2U2S9n&[R@"U&S75U0::dM'U+RGU25 U2S:U&S-S;--n3U*U2S:U3--
n*MS U/[U)5:a�U)U/n&[R@"U&S65n4U4U0:�aO�U4U0:Xa�XE-n5U*U5:�aEU5n6U*U6-n*U+R#U&U6S<.5 [[+U6S%55U&S:'U.R#U&5 OJU*S=:�aDU*n6U*U6-n*U+R#U&U6S<.5 [[+U6S%55U&S:'U.R#U&5 U/S-
n/U/[U)5:aM�U*[1U+V7s/sHn7U7S:PM13 sn75-n8U,R#U1[+U8S%5S>.5 GM� U,(aU,SS?OUn9U9U-14n:U:U-S-n;U,V<s/sHn<U<S?PM15 n=n<[RHRKU=5n>U>U=-16U>-S-n?[U?5S:�a)[[+[R4"U?5S%55OS@n@[U.5nA[1SAU.55nBU.V&s/sHn&U&S-PM17 nCn&UC(a[R2"WC5OS@nD[WC5S:�a[RL"WC5OSnESnFU.(alU.V&s/sH@n&[R@"U&S75[R@"U&S65-18RNPMB nGn&UG(a[R2"WG5OSnFWES:�a<[[+WDWE-[RP"SB[5SWF5-5-S%55OS@nH[1SCWC55nI[S[1SDUC555nJUJS:�a[[+WIWJ-S%55OSEnK[U-5S:�aU-SU-S-19RNOSFnL[5SUL5SG-nMU9U-SUM--S-20S-nN[;U.SHSISJ9SSKnOS/SLUSM3[WA5[WB5[UAUB-215UAS:�a[[+WBWA-S-S55OS@WAS:�a[[+WDS%55OS@[[+U;S%55[[+WNS%55U[[+U9S%55[WH5[W@5[WK5WC(a[[+[5WC5S%55OS@WC(a[[+[7WC5S%55OS@SN.UWOU,SO.S3.v� g![22a GM�f=fs sn&fs sn&fs sn7fs sn<fs sn&fs sn&f7f)Pu�23Algoritmanın geçmiş performansını ölçer.24 25- Her gün için teknik skoru hesaplar26- Skor >= buy_threshold olduğunda 'AL' sinyali verir27- hold_days gün sonra pozisyon kapatılır28- Win rate, ortalama getiri, max drawdown, Sharpe ratio hesaplar29 30Args:31    stock_data: dict of DataFrames (hisse verileri)32    tickers: analiz edilecek hisseler33    lookback_days: kaç günlük geçmişe bakılacak (default: 400)34    buy_threshold: AL sinyali eşiği (default: 50)35 36Returns:37    dict: Backtest sonuçları38�progress��d)�type�ticker�percentN�r)�_build_features)�index�dtype�ADX��PLUS_DI�MINUS_DI�Close�SMA_20�SMA_50�(�RSI�<��F��MACD�MACD_Signali�����BBLgR���Q�?�Volume_Ratiog�?�39�����)�mean_reversion�breakout�2�ATRgffffff�?g�������?���Low�High�date�label)	r40�41entry_date�	exit_date�entry_price�42exit_price�pnl_pct�score�signal�winc3�<# �UHoS(dMSv� M g7f�r4rN���.0�ts  �
backtester.py�	<genexpr>�run_backtest.<locals>.<genexpr>�s���5�&�Q�e�H�q�q�&���
�	r1)�total_trades�wins�losses�win_rate�43avg_return�44best_trade�worst_trade�result�no_datauTYeterli veri bulunamadı veya test edilen dönemde hiçbir 'AL' sinyali üretilmedi.)�status�message�summary�ticker_results�
recent_trades�equity_curve)r	�datac�4�[R"US5$�Nr-)�pd�to_datetime��xs r;�<lambda>�run_backtest.<locals>.<lambda>�s��R�^�^�A�l�O�5T�)�keyr-r.z%Y-%m-%d�trade�investedgY@)rYrZi�)r+�valuer[gc3�<# �UHoS(dMSv� M g7fr6r7r8s  r;r<r=�s���<��1�U�8�Q�Q��r>��c3�4# �UHoS:�dM45Uv� M g7f�rNr7�r9�rs  r;r<r=s���7�+�Q�Q��q�q�+���	�	c3�4# �UHoS:dM46Uv� M g7fr_r7r`s  r;r<r=s���9�K�q�q�5���K�rbgR���?�@img�v@c��US$rPr7rSs r;rUrVs��!�L�/rWT)rX�reversei��successu gün)�periodr?r@rArBrC�total_return�cagr�initial_capital�final_value�sharpe_ratio�max_drawdown�
profit_factorrDrE)rHrJrKrLrM)*�len�	enumerate�int�ml_modelr
�	ExceptionrQ�Seriesr�float�np�where�clip�range�iloc�nan�isna�append�hasattr�strr+�roundr�bool�sum�mean�max�min�extend�sorted�set�addrR�list�strftime�remove�maximum�47accumulate�std�days�sqrt�abs)P�48stock_data�tickers�
lookback_days�
buy_thresholdrj�max_allocation_pct�	algorithm�49all_tradesrK�
total_tickers�idxr50�df�tradesr
�df_ml�scores�cond_adx_up�analysis_points�in_trade_until�i�current_idxr2�adjusted_threshold�	entry_idxr/�atr_val�stop_loss_price�target_price�exit_idxr0�step�	check_idx�current_low�current_highr1r@rAr:rC�returns_list�
sorted_trades�current_cash�active_positionsrM�event_dates�executed_trades�	trade_idx�current_date�date_str�pos�profit�t_date�	max_alloc�
invest_amount�p�portfolio_value�final_portfolio_value�total_net_profit�total_return_pct�e�
equity_values�cumulative_max�	drawdownsrmr?�51total_wins�all_returns�avg_ret�std_ret�
avg_hold_days�hold_days_list�sharpe�gross_profit�52gross_lossrn�total_days_in_market�yearsrirLsP                                                                                r;�run_backtestr�s����$�J��N���L�M� ��)���!�V��S�1�W�P]�D]�`c�Dc�@d�e�e��#��
�
��
�:��R��=�1�#4�4����	-�	�#�B�'�E�53���1�E�K�K�u�=���U�|�b�(�U�9�-=��j�@Q�-Q�R���"�(�(�;��A�.�.���"�(�(�E�'�N�U�8�_�<��w��RW�X`�Ra�Aa�b�df�hi�j�j��	�"�(�(�E�%�L�B�.�5��<�2�3E�F��A�N�N���"�(�(�E�%�L�2�-�%��,�"�2D�E�r�1�M�M���"�(�(�5��=�5��+?�?��S�I�I��	�"�(�(�5��>�U�5�\�D�-@�@�"�a�H�H���"�(�(�5��0�3�6��A�>�>�����Q��$���
�r�2�6���� �A��b�'�A�+�K��^�+���K�K��,�E�"/���:�:�}�r�?Q�%'�"��*�*�'�	�#�B�w�K�$4�$4�Y�$?�@��BG�%��%��e�� 1� 1�)� <�=�UW�U[�U[���7�7�7�#�#�w�!�|�&1�D�&8�O�#.��#5�L�&1�W�q�[�&A�O�#.�'�A�+�#>�L�$��(�54�"�!�S��W�y�%8�9�D� )�D� 0�I� �C��G�+�#&�r�7�Q�;��%*�2�g�;�+;�+;�H�+E�%F�55��FK�r�k�%��5�	���y�(A�"B�W\�]_�`g�]h�]m�]m�nw�]x�Wy�K�HN�RT��5��F�����)C�#D�Z_�`b�cj�`k�`p�`p�qz�`{�Z|�L�#�o�5�#,��%4�56��$�|�3�#,��%1�57��):�,"*����?� *�[� 8�K�G�3�N�G��M�M�"(�IP�QS�QY�QY�Zc�Qd�fl�Im�Im�c�"�(�(�9�*=�*B�*B�*D�&E�sv�wy�w�w�AJ�xK�tL�GN�r�x�x�X`�Oa�ci�Gj�Gj�S����(�);�)@�)@�)B�%C�ps�tv�t|�t|�~F�uG�qH�',�U�;�-?��'C�&+�E�*�,=�q�&A�#(��w���#;�!&�"2�5�"9�'�"B�#�G�a�K�0�58#�59�y!�P�6��5�&�5�5�D���[�4�'�F�����!?��1�!�I�,��!?�@�J�28�9�&�Q�A�i�L�&�L�9�!$�F��� �!�%��s�6�{�(:�S�(@�!�"D�E�#�E�*�a�$8�9�#�E�#�l�*;�Q�$?�@�$�U�3�|�+<�a�%@�A�&�N�"�
���f�%�C*�F���m�� ���
*60��	�	��:�+T�U�M�"�L����L��%�K�
��������q���7�8�������q��~�6�7����k�*�+�K��O��I�#���(�(��4��$�A�&�C��G��A��~�~�a��n�-��=� �'�'��,��Z��A�i�L�5�,@�A����Z��6�!9�:��'��#�m�,�,��i�(�A��^�^�A�l�O�4�F���$����%�61,�@�	��9�,�$-�M� �M�1�L�$�+�+�a�]�,S�T�$)�%�
�q�*A�$B�A�j�M�#�*�*�1�-�!�D�(�$0�M� �M�1�L�$�+�+�a�]�,S�T�$)�%�
�q�*A�$B�A�j�M�#�*�*�1�-���N�I�7�#�m�,�,�@'��EU�-V�EU��a�62�m�EU�-V�)W�W�����X��o�q�8Q�R�S�[$�^:F�L��,�W�5�?��,��>��(�?�:�c�A��*6�6��A�Q�w�Z��M�6��Z�Z�*�*�=�9�N��-�/�>�A�C�G�I�9<�Y��!�9K�5��r�v�v�i�0�!�4�5�QT�L���'�L��<��<�<�J�)8�9��A�1�Y�<��K�9�&1�b�g�g�k�"�s�G�%(��%5��%9�b�f�f�[�!�q�G��M��kz�{�kz�fg�2�>�>�!�K�.�9�B�N�N�1�\�?�<[�[�a�a�kz��{�3A�����/�r�
�\c�fg�\g�U�5�'�G�+�r�w�w�s�S��M�=R�7R�/S�S�UV�W�
X�mp�F��7�+�7�7�L��S�9�K�9�9�:�J�BL�q�.�E�%��z� 9�1�=�>�V\�M�GJ�+�FV�YZ�FZ�K��O�k�!�n�<�B�B�`c����'�(�6�1�E�#�o�5�1�u�9�
E��J�c�Q�D��?�0I�SW�X�Y]�Z]�^�M���&��u�-���-��63�O��,��3�4�LX�[\�L\��e�J��$=��$C�Q�G�H�be�6B�Q�6F�%��g�q� 1�2�C�!�%�(8�!�"<�=��%��a�.�)�.� ��'<�a�!@�A�!�&�M�!�,�/�"�=�1�?J�%��c�+�&6�� :�;�PS�@K�5��s�;�'7��!;�<�QT�64�")�&�$�+&����K�	��	��H"@��9��p.W��7��:��|�s��A%o�(n�0F#o�E0o�o�D5o�4o�n%65�o�&n*�5E;o�4Do�66o�n/�$Ao�2n4�Bo�n9�Ao�,An>�3H o�67n"�o�!n"�"!o)i�rgj�@g�������?�trend)�pandasrQ�numpyrv�analyzerrrr�r7rWr;�<module>r�s����@�arW