
    'i                     Z    d dl mZmZmZmZ d dlZd dlmZ	  G d dej                        Zy)    )absolute_importdivisionprint_functionunicode_literalsNc                   V    e Zd ZdZdZdddej                  j                  ffZd Z	d Z
y)	MA_CrossOvera  This is a long-only strategy which operates on a moving average cross

    Note:
      - Although the default

    Buy Logic:
      - No position is open on the data

      - The ``fast`` moving averagecrosses over the ``slow`` strategy to the
        upside.

    Sell Logic:
      - A position exists on the data

      - The ``fast`` moving average crosses over the ``slow`` strategy to the
        downside

    Order Execution Type:
      - Market

    )SMA_CrossOver)fast
   )slow   _movavc                     | j                   j                  | j                   j                        }| j                   j                  | j                   j                        }t	        j
                  ||      | _        y )N)period)pr   r
   r   btind	CrossOverbuysig)selfsma_fastsma_slows      a/var/www/app/trading-bot/venv/lib/python3.12/site-packages/backtrader/strategies/sma_crossover.py__init__zMA_CrossOver.__init__>   sL    66===466===4ooh9    c                     | j                   j                  r!| j                  dk  r| j                          y y | j                  dkD  r| j	                          y y )Nr   )positionsizer   sellbuy)r   s    r   nextzMA_CrossOver.nextD   sC    =={{Q		  [[1_HHJ r   N)__name__
__module____qualname____doc__aliasr   MovAvSMAparamsr   r     r   r   r   r      s7    * E 		5;;??#F:r   r   )
__future__r   r   r   r   
backtraderbtbacktrader.indicators
indicatorsr   Strategyr   r)   r   r   <module>r0      s'   ** *  %-2;; -r   