+
    ÷j#$  ã                   ó0  € R t ^ RIt^ RIt^ RIt^ RIt^ RIHtHtHt ^ RIH	t	H
t
Ht RR lt]R8X  dd   ]! ]P                  4      ^8”  d   ]P                  ^,          MRt]! ]P                  4      ^8”  d   ]P                  ^,          MRt]! ]]4       R# R# )	zâ
Renko Chart Image Renderer (Pillow)
Generates high-resolution TradingView-style Renko chart snapshots without browser overhead.
Saves data and CPU while giving instant visual verification of the mathematical line and bricks.
N)ÚdatetimeÚtimezoneÚ	timedelta)ÚImageÚ	ImageDrawÚ	ImageFontúdemo_state.jsonc                 ój  aZa[a\a]€ \         P                  P                  V 4      '       g   \        R V  R24       R# \	        V RRR7      ;_uu_ 4       p\
        P                  ! V4      pRRR4       XP                  R. 4      pV'       g   \        R4       R# VR=R pVP                  R	R
4      pVP                  RR4      p	VP                  R4      p
VP                  R4      pVP                  R4      pVP                  RR4      pVP                  RR4      pVP                  R^ 4      pR>pR?pR@pRApRBpRCpRDpREpRFpRGpRHpRIpRJpRKpRLpRMp\        P                  ! RW#3VRN,           4      p \        P                  ! RW#3RO4      p!\        P                  ! V 4      p"\        P                  ! V!4      p# \        P                  ! R^4      p$\        P                  ! R^4      p%\        P                  ! R^4      p&\        P                  ! R^
4      p'^.p(V(^,           o[V^-,
          oZ^p)V^Z,
          p*V"P!                  ^ ^ VV(.VR7       V"P#                  ^ V(VV(.V^R7       ^p+V"P%                  V+^3VVV$R7       V+^i,          p+RV	 R2p,T"P!                  V+^V+^7,           ^ .V	R8X  d   TMRPV	R8X  d   TMTR7       T"P%                  V+^,           ^3Y™R8X  d   TMTV&R7       V+^A,          p+RV^d,          R R2p-T"P!                  V+^V+^X,           ^ .V^ 8X  d   TMTV^ 8X  d   TMTR7       T"P%                  V+^,           ^3T-V^ 8X  d   TMTV&R7       V+^b,          p+V'       d   RMRp.T"P!                  V+^V+^J,           ^ .V'       d   TMRPV'       d   TMTR7       T"P%                  V+^,           ^3T.V'       d   TMTV&R7       V+^T,          p+R p/V'       d<   VP                  R!4      ^8X  d   R"MR#p0VP                  R$4      '       d   R%MR&p1V0 V1 2p/T"P!                  V+^V+^A,           ^ .V'       d   TMRPV'       d   TMTR7       T"P%                  V+^,           ^3T/V'       d   TMTV&R7       V+^P,          p+Ve%   V"P%                  V+^3R'VR( 2VV%R7       V+^x,          p+V
e5   V
R( p2V'       d	   W«8¼  d   TMTp3V"P%                  V^ª,
          ^3V2V3V$R7       R)\'        V4       R*VRQ,          P                  R+R&4       R,2p4V"P%                  V)V(^,           3V4VV&R7       . p5V F$  p6V5P)                  V6R-,          V6R.,          .4       K&  	  Ve   V5P+                  V4       V
e   V5P+                  V
4       \-        V54      o]\/        V54      o\S\S],
          R/,          ;'       g    R0p7S]V7,          o]S\V7,          o\VZV[V\V]3R1 lp8^p9S\S],
          V9,          p:\1        V9^,           4       FZ  p;S]V;V:,          ,           p<V8! V<4      p=V"P#                  V)V=V*V=.V^R7       V"P%                  V*^,           V=^,
          3V<R2 VV'R7       K\  	  \'        V4      p>V*V),
          p?V?\/        V>^4      ,          p@\/        ^V@R3,          4      pAR&pB\3        V4       EF²  w  pCp6V)VCX@,          ,           V@XA,
          ^,          ,           pDV6R-,          V6R.,          V6P                  R4^4      pGpFpE\/        VEVF4      pH\-        VEVF4      pIV8! VH4      pJV8! VI4      pK\5        VKVJ,
          4      ^8  d
   XJ^,           pKXG^8X  d   TMTpLXG^8X  d   TMTpMV#P!                  XDXJVDXA,           XK.VMR7       V"P!                  VDVJVDVA,           VK.XL^R57       V6P                  R+R&4      pNVN'       g   EK  XC^
,          ^ 8X  g   XCV>^,
          8X  g   EK'  XNXB8w  g   EK1  RXN9   d   XNP7                  4       RQ,          MXNpOV"P#                  XDXA^,          ,           SZVDVA^,          ,           SZ^,           .VR7       V"P%                  VD^,
          SZ^,           3VOVV'R7       XNpBEKµ  	  Veª   V8! V4      pP^pQ^pRT)pSXSV*8  d<   V"P#                  XSXP\-        VSXQ,           V*4      VP.V^R7       VSVQXR,           ,          pSKB  R6VR2 2pT^NpUV"P!                  V*XP^	,
          V*VU,           VP^	,           .VR7       V"P%                  V*^,           VP^,
          3VTRRV&R7       V
ex   V8! V
4      pVV"P#                  V)VVV*VV.V^R7       V
R2 pT^<pUV"P!                  V*VV^,
          V*VU,           VV^,           .VR7       V"P%                  V*^,           VV^,
          3VTRRV&R7       V'       dÌ   R7V9   dÅ   V8! VR7,          4      pWVP                  R!4      ^8X  d   TMTpXT)pSXSV*8  d5   V"P#                  XSXW\-        VS^,           V*4      VW.XX^R7       VS^,          pSK;  R8VR7,          R2 2pTV"P!                  V*XW^,
          V*^K,           VW^,           .XXR7       V"P%                  V*^,           VW^,
          3VTRRV'R7       \        P8                  ! V V!4      pYVYP;                  R94      P=                  VR:4       \        R;V 24       R<#   + '       g   i     E
L; i  \         d     \        P                  ! 4       ;p$;p%;p&p' EL¦i ; i)SzError: z does not exist.FÚrzutf-8)ÚencodingNÚ	bricks_1hzNo bricks in state.ÚsymbolÚZECUSDCÚmodeÚLIVEÚpriceÚlineÚposÚ	maker_feeg        ÚgateÚupdatedÚRGBAz	arial.ttf)Úfill)r   Úwidth)r   ÚfontÚ )r   ÚoutlinezMAKER z.3fÚ%zGATE ONzGATE OFFÚFLATÚdirÚLONGÚSHORTÚcarriedz HELDÚ zLINE: z.4fu   1HR CLOSE Â· THE LINE Â· MAIN (u    bricks total Â· last: ÚlabelÚ)ÚoÚcg{®Gáz´?g      ð?c                 ó\   <€ SV S,
          SS,
          ,          SS,
          ,          ,
          # )N© )ÚpÚCHART_BOTTOMÚ	CHART_TOPÚmax_pÚmin_ps   &€€€€Ú3C:\Users\user\Downloads\b bot\render_chart_image.pyÚ
price_to_yÚ&render_renko_image.<locals>.price_to_y”   s%   ø€ Ø˜q 5�y¨U°U­]Õ;¸|ÈiÕ?WÕXÕXÐXó    z.2fg      è?Úd)r   r   zLINE ÚentryzENTRY ÚRGBÚPNGzChart snapshot saved to Ti¿ÿÿÿ)é   é   é
   )r9   é   é   )é   é   é!   )é   é   é   )éé   éí   éò   )éw   é‚   éŽ   )é/   é¾   é†   )rH   rI   rJ   é€   )éÙ   éJ   rM   )rL   rM   rM   rK   )éØ   é²   éZ   )éÏ   rN   éã   )r?   é0   é   )é   é\   é<   )é3   é   é   )rV   é#   é'   )éÿ   )é    r^   r^   r^   )é   rY   é   éÿÿÿÿ)r9   r:   é   )ÚosÚpathÚexistsÚprintÚopenÚjsonÚloadÚgetr   Únewr   ÚDrawr   ÚtruetypeÚ	ExceptionÚload_defaultÚ	rectangler   ÚtextÚlenÚextendÚappendÚminÚmaxÚrangeÚ	enumerateÚabsÚsplitÚalpha_compositeÚconvertÚsave)^Ú
state_pathÚout_pathr   ÚheightÚfÚstateÚbricksÚview_bricksr   r   r   r   r   r   r   r   ÚBG_COLORÚPANEL_COLORÚBORDER_COLORÚ
GRID_COLORÚ
TEXT_COLORÚ
MUTED_TEXTÚUP_COLORÚUP_FILLÚDN_COLORÚDN_FILLÚ
LINE_COLORÚPRICE_COLORÚ	TAG_BG_ONÚTAG_BORDER_ONÚ
TAG_BG_OFFÚTAG_BORDER_OFFÚimgÚoverlayÚdrawÚdraw_ovÚfont_lgÚfont_mdÚfont_smÚfont_xsÚHEADER_HÚ
CHART_LEFTÚCHART_RIGHTÚcur_xÚ	mode_textÚfee_strÚgate_strÚpos_strÚdir_strÚcarried_strÚpx_strÚpx_colorÚ	sub_titleÚ
all_pricesÚbÚ	p_paddingr0   Ún_gridÚstepÚiÚgpÚgyÚn_bÚchart_wÚ	bar_pitchÚbrick_wÚ
last_labelÚidxÚbxr&   r'   r3   Útop_pÚbot_pÚy_topÚy_botÚstroker   ÚlblÚdisplay_timeÚlyÚdash_wÚspace_wÚcurÚ	pill_textÚpill_wÚpyÚeyÚe_colorÚ	final_imgr+   r,   r-   r.   s^   &&&&                                                                                      @@@@r/   Úrender_renko_imagerÊ      s{
  û€ Ü�7‰7�>‰>˜*×%Ò%Ü�˜
�|Ð#3Ð4Ô5Ùä	ˆj˜#¨×	0Õ	0°AÜ—	’	˜!“ˆ÷ 
1ð �Y‰Y�{ BÓ'€FßÜÐ#Ô$Ùð ˜˜�,€KØ�Y‰Y�x Ó+€FØ�9‰9�V˜VÓ$€DØ�I‰I�gÓ€EØ�9‰9�VÓ€DØ
�)‰)�EÓ
€CØ—	‘	˜+ sÓ+€IØ�9‰9�V˜UÓ#€DØ�i‰i˜	 1Ó%€Gð €HØ€KØ€LØ€JØ €JØ €JØ€HØ!€GØ€HØ €GØ€JØ!€KØ€IØ €MØ€JØ!€Nô �)Š)�F˜U˜O¨X¸Õ->Ó
?€CÜ�iŠi˜  °Ó>€GÜ�>Š>˜#Ó€DÜ�nŠn˜WÓ%€GðIÜ×$Ò$ [°"Ó5ˆÜ×$Ò$ [°"Ó5ˆÜ×$Ò$ [°"Ó5ˆÜ×$Ò$ [°"Ó5ˆð
 €HØ˜2•€IØ˜B•;€LØ€JØ˜"•*€Kð 	‡N�N�A�q˜% Ð*°€NÔ=Ø‡I�Iˆq�(˜E 8Ð,°<Àq€IÔIà€Eà‡I�Iˆu�bˆk˜6¨
¸€IÔAØ	ˆS…L€Eð �D�6˜�€IØ‡N�N�E˜2˜u r�z¨2Ð.À$È&Ä.±YÐVbØ,0°F¬N™=Àð ô Nà‡I�Iˆu�q�y˜"ˆo˜t¸f´n©(È*Ð[b€IÔcØ	ˆR…K€Eð �y •} SÐ)¨Ð+€GØ‡N�N�E˜2˜u r�z¨2Ð.À)ÈqÄ.±YÐV`Ø,5¸¬N™=Àð ô Pà‡I�Iˆu�q�y˜"ˆo˜w¸Àa¼©XÈXÐ\c€IÔdØ	ˆR…K€E÷ !‰y j€HØ‡N�N�E˜2˜u r�z¨2Ð.Ç$±YÈLß,0™=°lð ô Dà‡I�Iˆu�q�y˜"ˆo˜x¿$©hÀJÐU\€IÔ]Ø	ˆR…K€Eð €Gß
ØŸG™G E›N¨aÔ/‘&°WˆØ!$§¡¨×!3Ò!3‘g¸ˆØ�I˜k˜]Ð+ˆØ‡N�N�E˜2˜u r�z¨2Ð.Ç#±YÈ<ß,/™=°\ð ô Cà‡I�Iˆu�q�y˜"ˆo˜w¿©XÀ*ÐSZ€IÔ[Ø	ˆR…K€Eð ÒØ�	‰	�5˜"�+ ¨¨S zÐ2¸È'ˆ	ÔRØ��ˆð ÒØ˜#�;ˆß#¨¬‘8¸8ˆØ�	‰	�5˜3•; Ð# V°(Àˆ	ÔIð 2´#°f³+°Ð>UÐV\Ð]_ÕV`×VdÑVdÐelÐnpÓVqÐUrÐrsÐt€IØ‡I�Iˆz˜8 a�<Ð(¨)¸*È7€IÔSð €JÛˆØ×Ñ˜1˜S�6 1 S¥6Ð*Ö+ñ àÒØ×Ñ˜$ÔØÒØ×Ñ˜%Ô ä�
‹O€EÜ�
‹O€EØ˜• $Õ&×-Ð-¨#€IØ	ˆYÕ€EØ	ˆYÕ€E÷Yð Yð €FØ�E�M˜VÕ#€DÜ�6˜A•:ÖˆØ�Q˜•XÕˆÙ˜‹^ˆØ�	‰	�:˜r ;°Ð3¸*ÈAˆ	ÔNØ�	‰	�; •? B¨¥FÐ+°°3¨x¸zÐPWˆ	ÖXñ	 ô ˆkÓ
€CØ˜JÕ&€GØœ#˜c 1›+Õ%€IÜ�!�Y Õ%Ó&€Gà€JÜ˜K×(‰ˆˆQØ˜# 	�/Õ)¨Y¸Õ-@ÀAÕ,EÕEˆØ�C•&˜!˜C�& !§%¡%¨¨Q£-ˆaˆ1ˆÜ�A�q“	ˆÜ�A�q“	ˆÙ˜5Ó!ˆÙ˜5Ó!ˆÜˆu�u�}Ó Ô!Ø˜A•IˆEà !œV‘¨ˆØ˜qœ&‰w gˆð 	×Ñ˜2˜u b¨7¥l°EÐ:ÀÐÔFà�‰˜˜E 2¨¥<°Ð7ÀÈqˆÔQð �e‰e�G˜RÓ ˆßŠ3�C˜"•H ”M S¨C°!­G§^¸À
×9Jà.1°S¬j˜3Ÿ9™9›; rž?¸cˆLØ�I‰I�r˜G A�I•~ |°R¸'À!½)µ^À\ÐTUÕEUÐVÐ]iˆIÔjØ�I‰I�r˜B•w ¨qÕ 0Ð1°<ÀjÐW^ˆIÔ_Ø‹Jñ3 )ð8 ÒÙ˜ÓˆàˆØˆØˆØ�KÔØ�I‰I�s˜B¤ C¨&¥L°+Ó >ÀÐCÈ*Ð\]ˆIÔ^Ø�6˜GÕ#Õ#ŠCð ˜D ˜:Ð&ˆ	ØˆØ�‰˜ R¨!¥V¨[¸6Õ-AÀ2ÈÅ6ÐJÐQ[ˆÔ\Ø�	‰	�; •? B¨¥FÐ+¨Y¸\ÐPWˆ	ÔXð ÒÙ˜ÓˆØ�	‰	�:˜r ;°Ð3¸+ÈQˆ	ÔOØ˜S�kˆ	ØˆØ�‰˜ R¨!¥V¨[¸6Õ-AÀ2ÈÅ6ÐJÐQ\ˆÔ]Ø�	‰	�; •? B¨¥FÐ+¨Y¸\ÐPWˆ	ÔX÷ ˆw˜#Œ~Ù˜˜G�Ó%ˆØ!Ÿg™g e›n°Ô1‘(°xˆàˆØ�KÔØ�I‰I�s˜B¤ C¨!¥G¨[Ó 9¸2Ð>ÀWÐTUˆIÔVØ�1�HŠCØ˜S �\¨#Ð.Ð/ˆ	Ø�‰˜ R¨!¥V¨[¸2Õ-=¸rÀA½vÐFÈWˆÔUØ�	‰	�; •? B¨¥FÐ+¨Y¸\ÐPWˆ	ÔXô ×%Ò% c¨7Ó3€IØ×Ñ�eÓ×!Ñ! (¨EÔ2Ü	Ð$ X JÐ
/Ô0Ù÷w 
1×	0Ð	0ûôb ô IÜ09×0FÒ0FÓ0HÐHˆÐH�'ÐH˜G£gðIús   Ái4Æ/Aj é4j	ê&j2ê1j2Ú__main__zchart_snapshot.png)r   z	chart.pngi   iÐ  )Ú__doc__rh   Úmathrc   Úsysr   r   r   ÚPILr   r   r   rÊ   Ú__name__rr   ÚargvÚ
state_fileÚout_filer)   r2   r/   Ú<module>rÔ      s‚   ðñó
 Û Û 	Û 
ß 2Ñ 2ß +Ñ +ô`ðD ˆzÔÙ # C§H¡H£°Ô 1�—‘˜!–Ð7H€JÙ! #§(¡(›m¨aÔ/ˆs�x‰x˜Ž{Ð5I€HÙ�z 8Ö,ñ r2   