เคจเคฎเคธ्เคคे เคฆोเคธ्เคคों! เคฎेเคฐे เคฏूเค्เคฏूเคฌ เคैเคจเคฒ เคชเคฐ เคเคชเคा เคช्เคฏाเคฐ เคฆेเคจे เคे เคฒिเค เคฌเคนुเคค-เคฌเคนुเคค เคงเคจ्เคฏเคตाเคฆ। เคตीเคกिเคฏो เคฎें เคिเค เคเค เคตाเคฆे เคे เค เคจुเคธाเคฐ, เคฏเคนाँ เคตเคน 'เคธुเคชเคฐ เคธ्เคैเคจเคฐ เคोเคก' เคนै เคो เคเคชเคे เคฒिเค 210 เคถेเคฏเคฐों เคे เคเคคिเคนाเคธिเค เคกेเคा เคो เคชเคฒเค เคเคชเคเคคे เคนी เคธ्เคैเคจ เคเคฐ เคฆेเคा เคเคฐ เคेเคตเคฒ เคเคจ เคถेเคฏเคฐों เคी เคฒिเคธ्เค เคฆेเคा เคिเคจเคฎें CAR (Cumulative Average) เคชॉเคिเคिเคต เคนै เคเคฐ เคो เค เคชเคจे 30, 50 เคต 200 DMA เคธे เคเคชเคฐ เค्เคฐेเคก เคเคฐ เคฐเคนे เคนैं।
เคธเคฌเคธे เค เค्เคी เคฌाเคค เคฏเคน เคนै เคि เคเคธे เคเคฒाเคจे เคे เคฒिเค เคเคชเคो เคिเคธी เคธॉเคซ्เคเคตेเคฏเคฐ เคो เคกाเคเคจเคฒोเคก เคเคฐเคจे เคฏा เคोเคกिंเค เคธीเคเคจे เคी เคोเค เค़เคฐूเคฐเคค เคจเคนीं เคนै। เคฌเคธ เคจीเคे เคฆिเค เคเค 4 เคเคธाเคจ เคธ्เคेเคช्เคธ เคो เคซॉเคฒो เคเคฐें:
๐ Google Colab เคฎें เคोเคก เคैเคธे เคเคฒाเคं? (4 เคเคธाเคจ เคธ्เคेเคช्เคธ)
เคธ्เคेเคช 1: Google Colab เคोเคฒें
เค
เคฌ เค
เคชเคจे เคฌ्เคฐाเคเค़เคฐ (Chrome, Safari เคเคฆि) เคฎें เคจเคฏा เคैเคฌ เคोเคฒें เคเคฐ
เค เคเคฐ เคเคช เคชเคนเคฒी เคฌाเคฐ เค เคฐเคนे เคนैं, เคคो เคฏเคน เคเคชเคธे เคเคชเคी Gmail ID เคธे เคฒॉเคिเคจ เคเคฐเคจे เคो เคเคนेเคा, เคฒॉเคिเคจ เคเคฐ เคฒें।
เคธ्เค्เคฐीเคจ เคชเคฐ เคเคชเคो เคจीเคฒे เคฐंเค เคा 'New Notebook' (เคจเค เคจोเคเคฌुเค) เคฌเคเคจ เคฆिเคाเค เคฆेเคा, เคเคธ เคชเคฐ เค्เคฒिเค เคเคฐें।
เคธ्เคेเคช 2: เคจीเคे เคฆिเค เคเค เคोเคก เคो เคॉเคชी เคเคฐें เคฎैंเคจे เคชूเคฐा เคชाเคฏเคฅเคจ เคोเคก (Python Code) เคฆिเคฏा เคนुเค เคนै। เคเคธ เคชूเคฐे เคोเคก เคो เคเค เคธाเคฅ เคธेเคฒेเค्เค เคเคฐें เคเคฐ Copy เคเคฐ เคฒें।
๐ เคฏเคนाँ เคธे เคोเคก เคॉเคชी เคเคฐें: ๐
# -------------------------------------------------------------------------
# CAR (Cumulative Average) + 30, 50, 200 DMA เคธुเคชเคฐ เคฌ्เคฐेเคเคเคเค เคธ्เคैเคจเคฐ
# -------------------------------------------------------------------------
# เคฏเคนाँ เคนเคฎ เคुเค เค़เคฐूเคฐी เคฒाเคเคฌ्เคฐेเคฐी (เคूเคฒเคिเค) เคฎंเคा เคฐเคนे เคนैं:
import yfinance as yf # เคฏเคน เคฒाเคเคฌ्เคฐेเคฐी เคฏाเคนू เคซाเคเคจेंเคธ เคธे เคถेเคฏเคฐों เคा เคเคคिเคนाเคธिเค (Historical) เคกेเคा เคซ्เคฐी เคฎें เคกाเคเคจเคฒोเคก เคเคฐเคคी เคนै।
import pandas as pd # เคฏเคน เคกेเคा เคो เคเค เคเค्เคธेเคฒ เคैเคธी เคेเคฌเคฒ (Rows เคเคฐ Columns) เคฎें เค
เค्เคे เคธे เคธเคाเคจे เคे เคाเคฎ เคเคคी เคนै।
import warnings # เคซाเคฒเคคू เคी เคेเคคाเคตเคจिเคฏों เคो เคुเคชाเคจे เคे เคฒिเค।
import logging # เคฏเคน เคชीเคे เคเคฒ เคฐเคนे เคช्เคฐोเคธेเคธ เคे เคฎैเคธेเค เคो เคंเค्เคฐोเคฒ เคเคฐเคคा เคนै।
from datetime import datetime # เคฏเคน เคเค เคी เคคाเค़ा เคคाเคฐीเค เคจिเคाเคฒเคจे เคे เคฒिเค เคนै।
# เคฏเคน เคฒाเคเคจ เคฏाเคนू เคซाเคเคจेंเคธ เคी เคซाเคฒเคคू เคฒाเคฒ เคฐंเค เคी เคเคฐเคฐ (เคैเคธे เค
เคเคฐ เคोเค เคถेเคฏเคฐ เคจ เคฎिเคฒे) เคो เคธ्เค्เคฐीเคจ เคชเคฐ เคเคจे เคธे เคฐोเคเคคी เคนै, เคคाเคि เคนเคฎाเคฐी เคธ्เค्เคฐीเคจ เคธाเคซ เคฐเคนे।
logging.getLogger('yfinance').setLevel(logging.CRITICAL)
warnings.filterwarnings('ignore')
# -------------------------------------------------------------------------
# เคฎुเค्เคฏ เคซंเค्เคถเคจ เคฌเคจाเคจा (Main Scanner Logic)
# -------------------------------------------------------------------------
# 'advanced_stock_scanner' เคจाเคฎ เคा เคเค เคซंเค्เคถเคจ เคฌเคจा เคฐเคนे เคนैं, เคिเคธे เคนเคฎ เค
เคชเคจी เคถेเคฏเคฐों เคी เคฒिเคธ्เค เคฆेंเคे।
def advanced_stock_scanner(ticker_list):
results = [] # เคाเคฒी เคฒिเคธ्เค เคฌเคจा เคฐเคนे เคนैं, เคिเคธเคฎें เคนเคฎ เคชाเคธ เคนुเค (Breakout) เคถेเคฏเคฐों เคा เคกेเคा เคเคฎा เคเคฐेंเคे।
# เคเค เคी เคคाเคฐीเค เคो (DD-MM-YYYY) เคे เคซॉเคฐ्เคฎेเค เคฎें เคจिเคाเคฒ เคฐเคนे เคนैं, เคคाเคि เคเคธे เคนเคฎाเคฐी เคเค्เคธेเคฒ เคฐिเคชोเคฐ्เค เคฎें เคोเคก़ เคธเคें।
today_date = datetime.now().strftime("%d-%m-%Y")
print(f"เคुเคฒ {len(ticker_list)} เคถेเคฏเคฐों เคी เคธ्เคैเคจिंเค เคถुเคฐू เคนो เคฐเคนी เคนै... เคृเคชเคฏा เคช्เคฐเคคीเค्เคทा เคเคฐें।\n")
# FOR เคฒूเคช (Loop): เคฏเคน เคฒूเคช เคนเคฎाเคฐी เคฒिเคธ्เค เคे เคนเคฐ เคเค เคถेเคฏเคฐ (ticker) เคो เคเค-เคเค เคเคฐเคे เคेเค เคเคฐेเคा।
for ticker in ticker_list:
try:
# 1. เคกेเคा เคกाเคเคจเคฒोเคก เคเคฐเคจा (Data Fetching)
# เคฏเคนाँ เคนเคฎ เคชिเคเคฒे 2 เคธाเคฒ (period="2y") เคा เคฐोเค़ाเคจा (interval="1d") เคกेเคा เคกाเคเคจเคฒोเคก เคเคฐ เคฐเคนे เคนैं।
# 200 DMA เคจिเคाเคฒเคจे เคे เคฒिเค เคนเคฎें เคเคฎ เคธे เคเคฎ 200 เคฆिเคจ เคा เคกेเคा เคाเคนिเค เคนी เคนोเคคा เคนै।
data = yf.download(ticker, period="2y", interval="1d", progress=False)
# เค
เคเคฐ เคोเค เคถेเคฏเคฐ เคฌाเค़ाเคฐ เคฎें เคจเคฏा เคเคฏा เคนै เคเคฐ เคเคธเคा 200 เคฆिเคจ เคा เคกेเคा เคนी เคจเคนीं เคนै, เคคो เคเคธे เคोเคก़ เคเคฐ เค
เคเคฒे เคถेเคฏเคฐ เคชเคฐ เคाเค।
if data.empty or len(data) < 200:
continue
# เค्เคฒोเค़िंเค เคช्เคฐाเคเคธ (เคฌंเคฆ เคญाเคต) เคो เคเค เคฒिเคธ्เค เคฎें เคจिเคाเคฒ เคฐเคนे เคนैं।
close_prices = data['Close'].squeeze()
# 2. เคฎूเคตिंเค เคเคตเคฐेเค (DMAs) เคी เคเคฃเคจा
# .rolling(window=30).mean() เคชिเคเคฒे 30 เคฆिเคจों เคा เคธाเคงाเคฐเคฃ เคเคธเคค เคจिเคाเคฒเคคा เคนै।
# .iloc[-1] เคा เคฎเคคเคฒเคฌ เคนै เคि เคนเคฎें เคชूเคฐी เคฒिเคธ्เค เคจเคนीं เคाเคนिเค, เคธिเคฐ्เคซ เคเค เคी เคธเคฌเคธे เคคाเค़ा (เคเค़िเคฐी) เคเคตเคฐेเค เคाเคนिเค।
dma_30 = close_prices.rolling(window=30).mean().iloc[-1]
dma_50 = close_prices.rolling(window=50).mean().iloc[-1]
dma_200 = close_prices.rolling(window=200).mean().iloc[-1]
# CMP (Current Market Price) เคฏाเคจी เคถेเคฏเคฐ เคा เคเค เคा เคคाเค़ा เคญाเคต।
cmp = close_prices.iloc[-1]
# 3. เคฆूเคฐी เคी เคเคฃเคจा (Distance from 200 DMA)
# เคถेเคฏเคฐ เคเค เค
เคชเคจे 200 เคฆिเคจों เคी เคเคธเคค เคธे เคिเคคเคจे เคช्เคฐเคคिเคถเคค (%) เคเคชเคฐ เคฏा เคจीเคे เคนै, เคฏเคน เคเคธเคा เคซॉเคฐ्เคฎूเคฒा เคนै।
dist_200_dma = ((cmp - dma_200) / dma_200) * 100
# 4. เคธाเคฒाเคจा เคนाเค (52-Week High) เคोเคเคจा
# .tail(252) เคा เคฎเคคเคฒเคฌ เคนै เคि เคนเคฎ เคชिเคเคฒे 1 เคธाเคฒ (1 เคธाเคฒ เคฎें เคฒเคเคญเค 252 เค्เคฐेเคกिंเค เคฆिเคจ เคนोเคคे เคนैं) เคा เคกेเคा เคฒे เคฐเคนे เคนैं।
last_1y_data = data.tail(252)
# เคเคธ 1 เคธाเคฒ เคे เคกेเคा เคฎें เคถेเคฏเคฐ เคจे เคธเคฌเคธे เค्เคฏाเคฆा เคนाเค (High) เคिเคธ เคคाเคฐीเค เคो เคฌเคจाเคฏा เคฅा, เคตเคน เคคाเคฐीเค (idxmax) เคจिเคाเคฒ เคฐเคนे เคนैं।
high_date = last_1y_data['High'].squeeze().idxmax()
# 5. CAR (Cumulative Average) เคी เคเคฃเคจा
# เคนाเค เคตाเคฒी เคคाเคฐीเค เคธे เคฒेเคเคฐ เคเค เคคเค เคा เคธाเคฐा เค्เคฒोเค़िंเค เคกेเคा เคจिเคाเคฒ เคฐเคนे เคนैं।
car_data = close_prices.loc[high_date:]
# เค
เคเคฐ เคจเคฏा เคนाเค เคฌเคจे เคนुเค เค
เคญी 10 เคฆिเคจ เคญी เคจเคนीं เคนुเค เคนैं, เคคो เคนเคฎाเคฐी CAR เคी เคเคฃเคจा เคจเคนीं เคนो เคธเคเคคी, เคเคธเคฒिเค เค
เคเคฒे เคถेเคฏเคฐ เคชเคฐ เคाเค।
if len(car_data) < 10:
continue
# expanding().mean() เคนเคฎाเคฐी เค
เคธเคฒी CAR เคจिเคाเคฒเคคा เคนै, เคฏाเคจी เคชเคนเคฒे เคฆिเคจ เคธे เคฒेเคเคฐ เคเค เคคเค เคा เคฒเคाเคคाเคฐ เคฌเคข़เคคा เคนुเค เคเคธเคค।
car_values = car_data.expanding().mean()
# เคนเคฎें เคेเคตเคฒ เคชिเคเคฒे 10 เคฆिเคจों เคी CAR เคेเค เคเคฐเคจी เคนै, เคเคธเคฒिเค .tail(10) เคा เคเคชเคฏोเค เคिเคฏा।
last_10_car = car_values.tail(10)
# 6. เค्เคฐेंเคก เคेเค เคเคฐเคจा (Trend Verification)
# is_monotonic_increasing เคฏเคน เคेเค เคเคฐเคคा เคนै เคि เค्เคฏा เคชिเคเคฒे 10 เคฆिเคจों เคธे CAR เคฒเคाเคคाเคฐ เคฌเคข़ เคฐเคนी เคนै (เคฌिเคจा เคเค เคญी เคฆिเคจ เคिเคฐे)।
if last_10_car.is_monotonic_increasing:
car_status = 'Positive' # เคฒเคाเคคाเคฐ เคฌเคข़ी เคคो เคชॉเคिเคिเคต
else:
car_status = 'Negative' # เคเค เคฆिเคจ เคญी เคिเคฐी เคคो เคจेเคेเคिเคต
# 7. เคซाเคเคจเคฒ เคธुเคชเคฐ-เค्เคฐेเคกिंเค เคธ्เค्เคฐेเคेเคी เคी เคถเคฐ्เคค (The Magic Rule)
# เคถเคฐ्เคค 1: เคเค เคा เคญाเคต 30 DMA เคธे เคเคชเคฐ เคนो
# เคถเคฐ्เคค 2: เคเค เคा เคญाเคต 50 DMA เคธे เคเคชเคฐ เคนो
# เคถเคฐ्เคค 3: เคเค เคा เคญाเคต 200 DMA เคธे เคเคชเคฐ เคนो
# เคถเคฐ्เคค 4: CAR เคชिเคเคฒे 10 เคฆिเคจों เคธे เคฒเคाเคคाเคฐ เคชॉเคिเคिเคต (เคฌเคข़เคคी เคนुเค) เคนो
if (cmp > dma_30) and (cmp > dma_50) and (cmp > dma_200) and (car_status == 'Positive'):
action = '๐ข Positive Breakout' # เคธเคฌ เคชाเคธ เคนुเค เคคो เคนเคฐा เคธिเค्เคจเคฒ
else:
action = '๐ด Avoid/Hold' # เคเค เคญी เคถเคฐ्เคค เคซेเคฒ เคนुเค เคคो เคฒाเคฒ เคธिเค्เคจเคฒ
# 8. เคกेเคा เคเคฎा เคเคฐเคจा
# เค
เคฌ เคो เคญी เคกेเคा เคนเคฎเคจे เคเคชเคฐ เคैเคฒเคुเคฒेเค เคिเคฏा เคนै, เคเคธे เค
เคชเคจी เคเค्เคธेเคฒ เคेเคฌเคฒ เคฎें เคกाเคฒเคจे เคे เคฒिเค เคเคเค्เค ा เคเคฐ เคฐเคนे เคนैं।
if action == '๐ข Positive Breakout':
results.append({
'Date': today_date,
'Stock': ticker.replace('.NS', ''), # .NS เคนเคा เคฐเคนे เคนैं เคคाเคि เคถेเคฏเคฐ เคा เคจाเคฎ เคธाเคซ เคฆिเคे।
'CMP': round(cmp, 2), # เคญाเคต เคो เคฆเคถเคฎเคฒเคต เคे 2 เค
ंเคों เคคเค เคฐाเคंเคก เคเคซ (Round off) เคเคฐ เคฐเคนे เคนैं।
'30 DMA': round(dma_30, 2),
'50 DMA': round(dma_50, 2),
'200 DMA': round(dma_200, 2),
'200 DMA Dist %': round(dist_200_dma, 2),
'CAR Status': car_status,
'Action': action
})
except Exception as e:
# เค
เคเคฐ เคिเคธी เคถेเคฏเคฐ เคा เคกेเคा เคกाเคเคจเคฒोเคก เคนोเคจे เคฎें เคोเค เคฆिเค्เคเคค เคเค, เคคो เคोเคก เคो เคฐुเคเคจे เคฎเคค เคฆो, เคชाเคธ (pass) เคเคฐเคे เค
เคเคฒे เคถेเคฏเคฐ เคชเคฐ เคเคฒे เคाเค।
pass
# 9. เคซाเคเคจเคฒ เคฐिเคเคฒ्เค เคी เคธเคซाเค (Filtering)
# เคเคเค्เค े เคिเค เคเค เคธाเคฐे เคกेเคा เคो pandas เคी DataFrame (เคเค्เคธेเคฒ เคถीเค) เคฎें เคฌเคฆเคฒ เคฐเคนे เคนैं।
df_positive = pd.DataFrame(results)
# เค
ंเคค เคฎें, เคुเคจी เคเค เคฒिเคธ्เค เคो 200 DMA เคी เคฆूเคฐी (% Distance) เคे เคเคงाเคฐ เคชเคฐ เคोเคे เคธे เคฌเคก़े เค्เคฐเคฎ เคฎें (Ascending order) เคธेเค เคเคฐ เคฐเคนे เคนैं।
if not df_positive.empty:
df_positive = df_positive.sort_values(by='200 DMA Dist %', ascending=True)
return df_positive
# -------------------------------------------------------------------------
# เคोเคก เคो เคฐเคจ เคเคฐเคจा (Execution Part)
# -------------------------------------------------------------------------
# เคฏเคน เคนเคฎाเคฐे 210 เคถेเคฏเคฐों เคी เคชूเคฐी เคฒिเคธ्เค เคนै, เคिเคธे เคนเคฎाเคฐा เคธ्เคैเคจเคฐ เคेเค เคเคฐेเคा।
my_stocks = [
'360ONE.NS', 'ABB.NS', 'APLAPOLLO.NS', 'AUBANK.NS', 'ADANIENSOL.NS',
'ADANIENT.NS', 'ADANIGREEN.NS', 'ADANIPORTS.NS', 'ADANIPOWER.NS', 'ABCAPITAL.NS',
'ALKEM.NS', 'AMBER.NS', 'AMBUJACEM.NS', 'ANGELONE.NS', 'APOLLOHOSP.NS',
'ASHOKLEY.NS', 'ASIANPAINT.NS', 'ASTRAL.NS', 'AUROPHARMA.NS', 'DMART.NS',
'AXISBANK.NS', 'BSE.NS', 'BAJAJ-AUTO.NS', 'BAJFINANCE.NS', 'BAJAJFINSV.NS',
'BAJAJHLDNG.NS', 'BANDHANBNK.NS', 'BANKBARODA.NS', 'BANKINDIA.NS', 'BDL.NS',
'BEL.NS', 'BHARATFORG.NS', 'BHEL.NS', 'BPCL.NS', 'BHARTIARTL.NS',
'BIOCON.NS', 'BLUESTARCO.NS', 'BOSCHLTD.NS', 'BRITANNIA.NS', 'CGPOWER.NS',
'CANBK.NS', 'CDSL.NS', 'CHOLAFIN.NS', 'CIPLA.NS', 'COALINDIA.NS',
'COCHINSHIP.NS', 'COFORGE.NS', 'COLPAL.NS', 'CAMS.NS', 'CONCOR.NS',
'CROMPTON.NS', 'CUMMINSIND.NS', 'DLF.NS', 'DABUR.NS', 'DALBHARAT.NS',
'DELHIVERY.NS', 'DIVISLAB.NS', 'DIXON.NS', 'DRREDDY.NS', 'ETERNAL.NS',
'EICHERMOT.NS', 'EXIDEIND.NS', 'FORCEMOT.NS', 'NYKAA.NS', 'FORTIS.NS',
'GAIL.NS', 'GVT&D.NS', 'GMRAIRPORT.NS', 'GLENMARK.NS', 'GODFRYPHLP.NS',
'GODREJCP.NS', 'GODREJPROP.NS', 'GRASIM.NS', 'HCLTECH.NS', 'HDFCAMC.NS',
'HDFCBANK.NS', 'HDFCLIFE.NS', 'HAVELLS.NS', 'HEROMOTOCO.NS', 'HINDALCO.NS',
'HAL.NS', 'HINDPETRO.NS', 'HINDUNILVR.NS', 'HINDZINC.NS', 'POWERINDIA.NS',
'HYUNDAI.NS', 'ICICIBANK.NS', 'ICICIGI.NS', 'ICICIPRULI.NS', 'IDFCFIRSTB.NS',
'ITC.NS', 'INDIANB.NS', 'IEX.NS', 'IOC.NS', 'IRFC.NS', 'IREDA.NS',
'INDUSTOWER.NS', 'INDUSINDBK.NS', 'NAUKRI.NS', 'INFY.NS', 'INOXWIND.NS',
'INDIGO.NS', 'JINDALSTEL.NS', 'JSWENERGY.NS', 'JSWSTEEL.NS', 'JIOFIN.NS',
'JUBLFOOD.NS', 'KEI.NS', 'KPITTECH.NS', 'KALYANKJIL.NS', 'KAYNES.NS',
'KFINTECH.NS', 'KOTAKBANK.NS', 'LTF.NS', 'LICHSGFIN.NS', 'LTM.NS',
'LT.NS', 'LAURUSLABS.NS', 'LICI.NS', 'LODHA.NS', 'LUPIN.NS',
'M&M.NS', 'MANAPPURAM.NS', 'MANKIND.NS', 'MARICO.NS', 'MARUTI.NS',
'MFSL.NS', 'MAXHEALTH.NS', 'MAZDOCK.NS', 'MOTILALOFS.NS', 'MPHASIS.NS',
'MCX.NS', 'MUTHOOTFIN.NS', 'NBCC.NS', 'NHPC.NS', 'NMDC.NS',
'NTPC.NS', 'NATIONALUM.NS', 'NESTLEIND.NS', 'NAM-INDIA.NS', 'NUVAMA.NS',
'OBEROIRLTY.NS', 'ONGC.NS', 'OIL.NS', 'PAYTM.NS', 'OFSS.NS',
'POLICYBZR.NS', 'PGEL.NS', 'PIIND.NS', 'PNBHOUSING.NS', 'PAGEIND.NS',
'PATANJALI.NS', 'PERSISTENT.NS', 'PETRONET.NS', 'PIDILITIND.NS', 'POLYCAB.NS',
'PFC.NS', 'POWERGRID.NS', 'PREMIERENE.NS', 'PRESTIGE.NS', 'PNB.NS',
'RBLBANK.NS', 'RECLTD.NS', 'RADICO.NS', 'RVNL.NS', 'RELIANCE.NS',
'SBICARD.NS', 'SBILIFE.NS', 'SHREECEM.NS', 'SRF.NS', 'MOTHERSON.NS',
'SHRIRAMFIN.NS', 'SIEMENS.NS', 'SOLARINDS.NS', 'SONACOMS.NS', 'SBIN.NS',
'SAIL.NS', 'SUNPHARMA.NS', 'SUPREMEIND.NS', 'SUZLON.NS', 'SWIGGY.NS',
'TATACONSUM.NS', 'TVSMOTOR.NS', 'TCS.NS', 'TATAELXSI.NS', 'TMPV.NS',
'TATAPOWER.NS', 'TATASTEEL.NS', 'TECHM.NS', 'FEDERALBNK.NS', 'INDHOTEL.NS',
'PHOENIXLTD.NS', 'TITAN.NS', 'TORNTPHARM.NS', 'TRENT.NS', 'TIINDIA.NS',
'UNOMINDA.NS', 'UPL.NS', 'ULTRACEMCO.NS', 'UNIONBANK.NS', 'UNITDSPR.NS',
'VBL.NS', 'VEDL.NS', 'VMM.NS', 'IDEA.NS', 'VOLTAS.NS',
'WAAREEENER.NS', 'WIPRO.NS', 'YESBANK.NS', 'ZYDUSLIFE.NS'
]
# เคเคชเคฐ เคฌเคจाเค เคเค เคซंเค्เคถเคจ เคो เค
เคชเคจी เคถेเคฏเคฐों เคी เคฒिเคธ्เค เคฆेเคเคฐ เคเคฒा เคฐเคนे เคนैं।
positive_breakout_data = advanced_stock_scanner(my_stocks)
# เคो เคญी เคฐिเคเคฒ्เค เคเคฏा, เคเคธे เคธ्เค्เคฐीเคจ เคชเคฐ เค
เค्เคे เคธे เคช्เคฐिंเค เคเคฐ เคฐเคนे เคนैं।
print("\n--- ๐ข เคซाเคเคจเคฒ เคฒिเคธ्เค: เคेเคตเคฒ POSITIVE BREAKOUT เคธ्เคॉเค्เคธ ---")
if positive_breakout_data.empty:
print("เคเค เคिเคธी เคญी เคถेเคฏเคฐ เคจे เคเคชเคी เคธเคญी เคเคก़ी เคถเคฐ्เคคों เคो เคชाเคฐ เคจเคนीं เคिเคฏा เคนै। (เคोเค เคจเคฏा เคฌ्เคฐेเคเคเคเค เคจเคนीं)")
else:
print(positive_breakout_data.to_string(index=False))
# เค
ंเคค เคฎें: เคเคธ เคंเคเคจी เคी เคนुเค เคฒिเคธ्เค เคो 'Final_Breakout_List.xlsx' เคจाเคฎ เคธे เคธेเคต เคเคฐ เคฐเคนे เคนैं।
positive_breakout_data.to_excel("Final_Breakout_List.xlsx", index=False)
print("\nเคซ़िเคฒ्เคเคฐ เคी เคเค เคซाเคเคจเคฒ เคฒिเคธ्เค 'Final_Breakout_List.xlsx' เคธेเคต เคนो เคเค เคนै!")
# เคฏเคน เคเคฎांเคก เคूเคเคฒ เคोเคฒाเคฌ (Colab) เคो เคฌोเคฒเคคी เคนै เคि เคเค्เคธेเคฒ เคซाเคเคฒ เคฌเคจเคจे เคे เคฌाเคฆ เคเคธे เคธीเคงा เคนเคฎाเคฐे เคंเคช्เคฏूเคเคฐ เคฎें เคกाเคเคจเคฒोเคก เคเคฐ เคฆे।
from google.colab import files
files.download("Final_Breakout_List.xlsx")
เคธ्เคेเคช 4: เคฎैเคिเค เคฆेเคें (Run the Code) เคोเคก เคชेเคธ्เค เคเคฐเคจे เคे เคฌाเคฆ, เคเคธ เคฌॉเค्เคธ เคे เคฌिเคฒ्เคुเคฒ เคฌाเคฏीं (Left) เคคเคฐเคซ เคเค เคोเคฒ 'Play' (▶️) เคा เคฌเคเคจ เคนोเคा। เคฌเคธ เคเคธ เคชเคฐ เค्เคฒिเค เคเคฐ เคฆें!
เคชเคฐिเคฃाเคฎ: เคुเค เคนी เคธेเคंเคก्เคธ เคฎें เคฏเคน เคोเคก เคฌैเคเค्เคฐाเคंเคก เคฎें 210 เคถेเคฏเคฐों เคा เคกेเคा เคंเคाเคฒेเคा। เคธ्เค्เคฐीเคจ เคชเคฐ เคเคชเคो เคธिเคฐ्เคซ เคชाเคธ เคนुเค เคถेเคฏเคฐों เคी เคซाเคเคจเคฒ เคฒिเคธ्เค เคฆिเคेเคी।
เคเคो-เคกाเคเคจเคฒोเคก: เคเคคเคจा เคนी เคจเคนीं, เคฏเคน เคเคชเคे เคंเคช्เคฏूเคเคฐ เคฏा เคฎोเคฌाเคเคฒ เคฎें 'Final_Breakout_List.xlsx' เคจाเคฎ เคी เคเค เคเค्เคธेเคฒ เคซाเคเคฒ เคญी เค เคชเคจे เคเคช เคกाเคเคจเคฒोเคก เคเคฐ เคฆेเคा เคिเคธเคฎें เคเคชเคे เคเค เคे เค्เคฐेเคกिंเค เคธिเค्เคจเคฒ्เคธ เคนोंเคे!
Related Video:-
