साथियो नमस्कारआज में आपको एक ऐसी जादुई गूगल शीट पायथन कोड, गूगल क्लाउड एपीआई व गिटहब की सहायता से तैयार करना सीखाने वाला हूं जो आपको वोल्यूम के साथ ब्रेकआउट वाले स्टॉक्स अपने आप सेलेक्ट करके देगी।यह पूरा कोर्स है जो एकदम फ्री है। इस कोर्स के वीडियोज की प्लेलिस्ट आपको मेरे यूटयूब चैनल महेश चन्द्र कौशिक पर मिल जायेगी। इस प्लेलिस्ट का लिंक निम्न हैः- https://www.youtube.com/playlist?list=PL-X8WTMcEbY-UTbq_OiXsFoiLZbEzxE4Y
आज मैं आपको एक ऐसा तरीका बताने जा रहा हूँ जिससे आप खुद की एक ऐसी 'स्मार्ट गूगल शीट' बना सकते हैं, जो हर शाम बाज़ार बंद होने के बाद खुद-ब-खुद NSE से नया डेटा लाएगी, उसमें से सबसे ज़्यादा वॉल्यूम वाले टॉप 250 असली शेयर छांटेगी, और आपके फॉर्मूले के हिसाब से आपको बेहतरीन स्टॉक्स की लिस्ट निकाल कर दे देगी।
चाहे आपको कोडिंग का 'C' भी न आता हो, इस गाइड को स्टेप-बाय-स्टेप फॉलो करें और आपका अपना रोबोट तैयार हो जाएगा!
स्टेप 1: अपनी गूगल शीट तैयार करना
सबसे पहले हमें एक खाली गूगल शीट चाहिए जहाँ सारा डेटा आएगा।
Google Sheets खोलें और एक नई शीट बनाएँ।
इसमें नीचे '+' पर क्लिक करके दो टैब (Sheet) बनाएँ।
पहले टैब का नाम रखें:
Top 250 Stocksदूसरे टैब का नाम रखें:
Final ListTop 250 Stocks शीट में पहली लाइन (Row 1) में ये हेडिंग्स डाल दें:
A1:
NSE CodeB1:
VolumeC1:
Close Price(कॉलम D से आगे हम 50 डीएमए 100 डीएमए 200 डीएमए सीएआर आदि कुछ फार्मूले लगायेगें जो इस पोस्ट में आगे सीखाये जायेगें अभी आपको अपना पूरा फोकस एनएसई से सबसे ज्यादा वोल्यूम वाले टॉप 250 स्टॉक्स की लिस्ट रोज ऑटोमेटिक निकालने करने पर रखना है।!)
स्टेप 2: गूगल क्लाउड (Google Cloud) से API 'चाबी' लेना
हमारी पायथन स्क्रिप्ट को आपकी शीट में डेटा लिखने के लिए एक सुरक्षित रास्ते की ज़रूरत है। इसके लिए हम एक 'Service Account' (रोबोट) बनाएंगे।
पर जाएँ।Google Cloud Console API Library सर्च बॉक्स में "Google Sheets API" ढूँढें और उसे Enable कर दें।
फिर से सर्च करें "Google Drive API" और उसे भी Enable कर दें।
अब बाएँ मेनू में "Credentials" पर क्लिक करें। ऊपर "+ Create Credentials" पर जाएँ और "Service Account" चुनें।
इसे नाम दें (जैसे:
stock-updater-bot) और Create कर दें।अब सर्विस अकाउंट की लिस्ट में उस नए अकाउंट के Email ID (जो
...iam.gserviceaccount.comजैसा होगा) को कॉपी कर लें।उसी ईमेल पर क्लिक करें, Keys टैब में जाएँ -> Add Key -> Create new key पर क्लिक करें। JSON चुनें और डाउनलोड कर लें। यह आपकी तिजोरी की चाबी है!
ज़रूरी काम: अब अपनी गूगल शीट पर वापस आएँ। ऊपर दाईं ओर Share बटन दबाएं और उस कॉपी की हुई Service Account Email ID को 'Editor' का एक्सेस देकर सेव कर दें।
स्टेप 3: GitHub पर अपना ऑटोमेशन सेट अप करना
अब हम अपने कोड को एक ऐसे सर्वर पर रखेंगे जो रोज़ शाम को अपने आप चलेगा। इसके लिए GitHub (जो बिल्कुल फ्री है) का इस्तेमाल करेंगे।
GitHub.com पर जाकर अपना अकाउंट बनाएँ या लॉगिन करें।
दाएँ कोने में '+' दबाएं और New repository चुनें। नाम दें (जैसे:
NSE-Auto-Sheet) और इसे Private रखें।अब अपनी रिपॉजिटरी की Settings में जाएँ। बाएँ मेनू में नीचे Secrets and variables > Actions पर क्लिक करें।
New repository secret बटन दबाएं। Name में लिखें:
GCP_CREDENTIALS।जो JSON फाइल आपने डाउनलोड की थी, उसे नोटपैड (Notepad) में खोलें, उसका सारा टेक्स्ट कॉपी करें और यहाँ Secret बॉक्स में पेस्ट करके सेव कर दें।
स्टेप 4: पायथन स्क्रिप्ट (Python Script) डालना
अब हम वह जादुई कोड डालेंगे जो NSE के नए सिस्टम से डेटा लाएगा।
रिपॉजिटरी के मुख्य पेज (Code टैब) पर Add file > Create new file पर क्लिक करें।
फाइल का नाम दें:
update_sheet.pyनीचे दिया गया पूरा कोड कॉपी करके उस बॉक्स में पेस्ट कर दें:
import gspread
from oauth2client.service_account import ServiceAccountCredentials
import pandas as pd
import requests
import zipfile
import io
from datetime import datetime, timedelta
import os
import json
# 1. Credentials Setup
creds_json = os.environ.get('GCP_CREDENTIALS')
creds_dict = json.loads(creds_json)
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_dict(creds_dict, scope)
client = gspread.authorize(creds)
# अपनी गूगल शीट की ID यहाँ डालें (URL के बीच का हिस्सा)
spreadsheet_id = "यहाँ_अपनी_शीट_की_ID_डालें"
worksheet = client.open_by_key(spreadsheet_id).worksheet("Top 250 Stocks")
# 2. NSE UDiFF Data Fetcher
def fetch_bhavcopy_for_date(date_obj):
date_str = date_obj.strftime("%Y%m%d")
url = f"https://nsearchives.nseindia.com/content/cm/BhavCopy_NSE_CM_0_0_0_{date_str}_F_0000.csv.zip"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
}
try:
response = requests.get(url, headers=headers, timeout=15)
if response.status_code == 200:
with zipfile.ZipFile(io.BytesIO(response.content)) as z:
csv_filename = z.namelist()[0]
with z.open(csv_filename) as f:
df = pd.read_csv(f)
sym_col = 'TckrSymb' if 'TckrSymb' in df.columns else 'SYMBOL'
close_col = 'ClsPric' if 'ClsPric' in df.columns else 'CLOSE'
series_col = 'SctySrs' if 'SctySrs' in df.columns else 'SERIES'
vol_col = 'TtlTradgVol'
for c in ['TtlTradgVol', 'TtlTrdQty', 'TotTrdQty', 'TOTTRDQTY']:
if c in df.columns:
vol_col = c
break
# सिर्फ EQ सीरीज और ETFs (LIQUID/BEES) को बाहर करना
if series_col in df.columns:
df = df[df[series_col].astype(str).str.strip() == 'EQ']
filter_keywords = 'BEES|ETF|GOLD|LIQUID|CASE|SILVER|LIQ'
df = df[~df[sym_col].astype(str).str.contains(filter_keywords, case=False, na=False)]
df_top = df.sort_values(by=vol_col, ascending=False).head(250)
return df_top[[sym_col, vol_col, close_col]].values.tolist()
return None
except:
return None
# 3. Execution Logic
date = datetime.now()
data_to_insert = None
fetched_date_str = ""
for i in range(5):
test_date = date - timedelta(days=i)
if test_date.weekday() >= 5: continue
data_to_insert = fetch_bhavcopy_for_date(test_date)
if data_to_insert:
fetched_date_str = test_date.strftime('%d-%b-%Y')
break
# 4. Update Sheet
if data_to_insert:
worksheet.batch_clear(['A2:C251'])
worksheet.update('A2', data_to_insert)
ist_now = (datetime.utcnow() + timedelta(hours=5, minutes=30)).strftime('%d-%b %H:%M')
status_msg = f"Data Date: {fetched_date_str} | Last Update: {ist_now} (IST)"
worksheet.update('K2', [[status_msg]])
print("SUCCESS: Sheet Updated!")
ध्यान दें: कोड में spreadsheet_id की जगह अपनी शीट के URL से ID निकाल कर ज़रूर डालें। फिर Commit changes पर क्लिक करें।
स्टेप 5: टाइमर (Cron) सेट करना
हम इस कोड को रोज़ रात 8:15 बजे चलाएंगे ताकि GitHub के सर्वर पर ट्रैफिक न मिले।
अपने GitHub में Actions टैब पर क्लिक करें।
"set up a workflow yourself" पर क्लिक करें।
नीचे दिया गया कोड पेस्ट करें:
name: Update NSE Stocks to Google Sheet
on:
schedule:
# यह समय 14:45 UTC है, जिसका मतलब भारत में रात 8:15 PM है
- cron: '45 14 * * 1-5'
workflow_dispatch:
jobs:
update-sheet:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install Libraries
run: pip install gspread oauth2client pandas requests
- name: Run Python Script
env:
GCP_CREDENTIALS: ${{ secrets.GCP_CREDENTIALS }}
run: python update_sheet.py
इसे भी Commit changes कर दें। बस, आपका ऑटोमेशन तैयार है!
यहां तक इस कोर्स की कक्षा 1 थी इससे आगे अगली कक्षा में सीखाया जायेगा इस कक्षा का फ्री वीडियो यूटयूब पर निम्न लिंक पर देख सकते हैं:- https://youtu.be/MnIJ6kx6ww4
🚀 ऑटोमैटिक स्टॉक स्कैनर कैसे बनाएं - कक्षा 2 (Moving Averages & Advanced CAR Formula)
नमस्कार दोस्तों! 'ऑटोमैटिक स्टॉक एनालाइज़र शीट' बनाने की इस मास्टरक्लास (कक्षा 2) में आपका स्वागत है।
कक्षा 1 के वीडियो और ब्लॉग पोस्ट में हमने सीखा था कि कैसे गिटहब (GitHub) की मदद से रोज़ाना शाम को NSE से टॉप 250 शेयरों का रॉ डेटा (Raw Data) अपनी गूगल शीट में अपने आप कैसे लाया जाए।
आज की इस कक्षा 2 में हम उस रॉ डेटा में मेरे (महेश कौशिक) कुछ एडवांस फॉर्मूले लगाएंगे और इसे एक 'स्मार्ट स्कैनर' में बदलेंगे। हम अपनी 'Top 250 Stocks' शीट में 50, 100 और 200 दिन का मूविंग एवरेज निकालेंगे, और सबसे खास—मेरा बनाया हुआ एडवांस CAR (Cumulative Average Rule) रेटिंग फॉर्मूला लगाएंगे जो आपको बताएगा कि स्टॉक खरीदने लायक है या नहीं।
तो चलिए, अपनी गूगल शीट खोलिए और मेरे साथ ये 5 आसान स्टेप्स फॉलो कीजिए:
स्टेप 1: लाइव प्राइस (CMP) लाना
हमारी शीट के कॉलम A, B और C में पायथन ने डेटा डाल दिया है। अब हम सेल D2 (CMP) में गूगल फाइनेंस का फॉर्मूला लगाएंगे ताकि दिन में हमें लाइव भाव दिखे।
सेल D2 में यह फॉर्मूला पेस्ट करें:
स्टेप 2: मूविंग एवरेज (50, 100 और 200 DMA)
अब हम वो इंडिकेटर्स लगाएंगे जो स्टॉक का ट्रेंड (Trend) बताते हैं।
सेल E2 (50 DMA) में पेस्ट करें:
सेल F2 (100 DMA) में पेस्ट करें:
सेल G2 (200 DMA) में पेस्ट करें:
स्टेप 3: बुल रन (Bull Run) और 200 DMA से दूरी
सेल H2 (Output) में हम एक शर्त लगाएंगे जो बताएगी कि स्टॉक बुल रन में है या नहीं। सेल H2 में पेस्ट करें:
=IF(AND(D2>E2, D2>F2, D2>G2, I2>=0.01, I2<=10), "In Bull Run",
IF(AND(D2<E2, D2<F2, D2<G2, I2>=-10, I2<=-0.01), "In Bear Run", "Unconfirmed"))सेल I2 (Difference from 200 DMA) में हम 200 DMA से प्रतिशत दूरी निकालेंगे। सेल I2 में पेस्ट करें:
स्टेप 4: मेरा एडवांस CAR (Cumulative Average Rule) फॉर्मूला
यह इस शीट का सबसे ताकतवर हिस्सा है। यह फॉर्मूला पिछले 52 हफ्तों के हाई (High) का पता लगाता है, वहाँ से अब तक का डेटा निकालकर उसका औसत निकालता है, और यह चेक करता है कि क्या यह स्टॉक लगातार ऊपर की ओर जा रहा है।
(नोट: यह फॉर्मूला लंबा है, आप इस पूरे बॉक्स को एक साथ कॉपी करके सेल J2 में पेस्ट कर सकते हैं, गूगल शीट इसे आसानी से समझ लेगा)
सेल J2 (CAR Rating) में यह पूरा फॉर्मूला कॉपी करके पेस्ट करें:
=IFERROR(IF(A2="","ENTER STOCK",
LET(
raw_high, GOOGLEFINANCE("NSE:" & A2, "high", TODAY()-365, TODAY()),
high_date, IFERROR(TO_DATE(QUERY(raw_high, "SELECT Col1 WHERE Col2 IS NOT NULL ORDER BY Col2 DESC LIMIT 1 LABEL Col1 ''", 1)), TODAY()-30),
raw_data, IFERROR(GOOGLEFINANCE("NSE:" & A2, "close", high_date, TODAY()), GOOGLEFINANCE("NSE:" & A2, "close", TODAY()-10, TODAY())),
prices, IFERROR(CHOOSEROWS(INDEX(raw_data, 0, 2), SEQUENCE(ROWS(raw_data)-1, 1, 2, 1)), {0}),
count_rows, ROWS(prices),
cum_avg, SCAN(0, SEQUENCE(count_rows), LAMBDA(a,n, AVERAGE(CHOOSEROWS(prices, SEQUENCE(n))))),
last_10, IF(count_rows < 10, {0;0;0;0;0;0;0;0;0;0}, CHOOSEROWS(cum_avg, SEQUENCE(10, 1, count_rows - 9, 1))),
check, SUMPRODUCT(--(CHOOSEROWS(last_10, SEQUENCE(9, 1, 2, 1)) > CHOOSEROWS(last_10, SEQUENCE(9, 1, 1, 1)))),
IF(count_rows < 10, "Short History", IF(check = 9, "Buy/Average Out", "Avoid/Hold"))
)
), "TICKER NOT FOUND")
👉 ज़रूरी काम: अब सेल D2 से लेकर J2 तक के सभी फॉर्मूलों को एक साथ सेलेक्ट करें और नीचे Row 250 तक ड्रैग (Drag) कर दें (या डबल-क्लिक कर दें)। आपका सारा डेटा कैलकुलेट हो जाएगा!
स्टेप 5: मास्टर फॉर्मूला (Final List तैयार करना)
निश्चित रूप से, यहाँ आपके 'फाईनल लिस्ट' (Final List) वाले स्टेप का पूरा विवरण है, जिसमें मास्टर फॉर्मूला को दो लाइनों में इस तरह व्यवस्थित किया गया है कि यह ब्लॉग पर आसानी से फिट हो जाए और आपके फॉलोवर्स इसे सीधे कॉपी-पेस्ट कर सकें:
स्टेप 5: फाईनल लिस्ट (Final List) तैयार करना
यह इस पूरी प्रोसेस का सबसे महत्वपूर्ण हिस्सा है। यहाँ हम एक मास्टर फॉर्मूले की मदद से अपनी पसंद के बेहतरीन स्टॉक्स को अलग करेंगे।
शीट का सेटअप:
अपनी 'Final List' वाली शीट खोलें।
पहली रो (Row 1) में सेल A1 से F1 तक को सेलेक्ट करें और हेडिंग दें: Stocks In Bull Run
दूसरी रो (Row 2) में कॉलम के नाम इस प्रकार लिखें:
A2: NSE Code
B2: Volume
C2: Previous Close
D2: CMP
E2: Difference from 200 DMA
F2: CAR
मास्टर फॉर्मूला पेस्ट करना: अब हमें सिर्फ एक फॉर्मूला सेल A3 में डालना है। यह फॉर्मूला 'Top 250 Stocks' वाली शीट से डेटा उठाएगा, उसे फिल्टर करेगा और वॉल्यूम के हिसाब से सही क्रम में लगा देगा।
(नोट: इस फॉर्मूले को दो लाइनों में लिखा गया है ताकि ब्लॉग पर यह बाहर न निकले। आप इस पूरे बॉक्स को एक साथ कॉपी करके सेल A3 में पेस्ट कर दें, गूगल शीट इसे बिल्कुल सही तरह से स्वीकार कर लेगा)
सेल A3 में यह फॉर्मूला पेस्ट करें:
=IFERROR(SORT(FILTER({'Top 250 Stocks'!A:D, 'Top 250 Stocks'!I:J}, 'Top 250 Stocks'!H:H="In Bull Run",
'Top 250 Stocks'!J:J="Buy/Average Out"), 2, FALSE), "कोई स्टॉक नहीं मिला")
यह फॉर्मूला अपने आप उन सभी स्टॉक्स की लिस्ट तैयार कर देगा जो बुल रन में हैं और जिनकी CAR रेटिंग "Buy/Average Out" है। आपको बार-बार कुछ भी करने की ज़रूरत नहीं है, जैसे ही मुख्य शीट अपडेट होगी, यह लिस्ट भी अपने आप अपडेट हो जाएगी।
🌟 बोनस अपडेट: वॉल्यूम (Volume) की जगह टर्नओवर (Turnover) से टॉप 250 शेयर कैसे चुनें?
मेरे कुछ फॉलोवर्स ने मांग की है कि वे 'टोटल वॉल्यूम' की जगह 'टोटल टर्नओवर' (कुल ट्रेडेड वैल्यू) के आधार पर टॉप 250 स्टॉक्स सेलेक्ट करना चाहते हैं। यह एक बहुत ही शानदार और प्रोफेशनल सोच है!
वॉल्यूम के बजाय टर्नओवर से शेयर चुनने के फायदे: अक्सर 1-2 रुपये वाले पेनी स्टॉक्स (Penny Stocks) का वॉल्यूम (क्वांटिटी) बहुत ज्यादा होता है, जिससे वे फालतू में हमारी लिस्ट में ऊपर आ जाते हैं। लेकिन 'टर्नओवर' हमें यह बताता है कि आज किस शेयर में सबसे ज़्यादा रुपया (पैसा) लगा है। टर्नओवर के आधार पर फिल्टर करने से कचरा शेयर अपने आप बाहर हो जाएंगे और आपको सिर्फ हाई-क्वालिटी और मजबूत स्टॉक्स की लिस्ट मिलेगी, जहाँ बड़े निवेशक (Smart Money) पैसा लगा रहे हैं।
यदि आप भी अपनी शीट को इस नए और ज़्यादा सटीक तरीके से अपग्रेड करना चाहते हैं, तो कोडिंग में उलझने की बिल्कुल ज़रूरत नहीं है। बस इन आसान स्टेप्स को फॉलो करें:
स्टेप 1: अपने GitHub अकाउंट में जाएँ और अपनी update_sheet.py फाइल खोलें।
स्टेप 2: दाईं ओर ऊपर पेंसिल (✏️ Edit) के बटन पर क्लिक करें।
स्टेप 3: वहां पहले से लिखे हुए पूरे कोड को सेलेक्ट करके डिलीट (Delete) कर दें (पेज को बिल्कुल खाली कर दें)।
स्टेप 4: अब नीचे दिए गए इस नए कोड को कॉपी करें और वहां पेस्ट कर दें:
import gspread
from oauth2client.service_account import ServiceAccountCredentials
import pandas as pd
import requests
import zipfile
import io
from datetime import datetime, timedelta
import os
import json
# 1. Credentials Setup
creds_json = os.environ.get('GCP_CREDENTIALS')
if not creds_json:
print("CRITICAL: GCP_CREDENTIALS secret missing!")
exit(1)
creds_dict = json.loads(creds_json)
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_dict(creds_dict, scope)
client = gspread.authorize(creds)
# ⚠️ अपनी गूगल शीट की ID यहाँ डालें
spreadsheet_id = "यहाँ_अपनी_शीट_की_ID_डालें"
worksheet = client.open_by_key(spreadsheet_id).worksheet("Top 250 Stocks")
# 2. NSE Data Fetcher (TURNOVER LOGIC)
def fetch_bhavcopy_for_date(date_obj):
date_str = date_obj.strftime("%Y%m%d")
url = f"https://nsearchives.nseindia.com/content/cm/BhavCopy_NSE_CM_0_0_0_{date_str}_F_0000.csv.zip"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
}
try:
response = requests.get(url, headers=headers, timeout=20)
if response.status_code == 200:
with zipfile.ZipFile(io.BytesIO(response.content)) as z:
csv_filename = z.namelist()[0]
with z.open(csv_filename) as f:
df = pd.read_csv(f)
df.columns = [c.strip() for c in df.columns]
sym_col = next((c for c in ['TckrSymb', 'SYMBOL'] if c in df.columns), None)
close_col = next((c for c in ['ClsPric', 'CLOSE'] if c in df.columns), None)
series_col = next((c for c in ['SctySrs', 'SERIES'] if c in df.columns), None)
# टर्नओवर के लिए कॉलम (TtlTrfVal)
turnover_col = next((c for c in ['TtlTrfVal', 'TtlTrdVal', 'TURNOVER_LACS', 'TURNOVER'] if c in df.columns), None)
if not all([sym_col, close_col, turnover_col]):
return None
if series_col:
df = df[df[series_col].astype(str).str.strip() == 'EQ']
filter_keywords = 'BEES|ETF|GOLD|LIQUID'
df = df[~df[sym_col].astype(str).str.contains(filter_keywords, case=False, na=False)]
df[turnover_col] = pd.to_numeric(df[turnover_col], errors='coerce')
df = df.dropna(subset=[turnover_col])
# टर्नओवर के आधार पर टॉप 250
df_top = df.sort_values(by=turnover_col, ascending=False).head(250)
return df_top[[sym_col, turnover_col, close_col]].values.tolist()
return None
except Exception as e:
return None
# 3. Execution Logic (7-Day Lookback)
date = datetime.now()
data_to_insert = None
fetched_date_str = ""
for i in range(7):
test_date = date - timedelta(days=i)
if test_date.weekday() >= 5: continue
data_to_insert = fetch_bhavcopy_for_date(test_date)
if data_to_insert:
fetched_date_str = test_date.strftime('%d-%b-%Y')
break
# 4. Update Sheet
if data_to_insert:
try:
worksheet.batch_clear(['A2:C251'])
worksheet.update('A2', data_to_insert)
ist_now = (datetime.utcnow() + timedelta(hours=5, minutes=30)).strftime('%d-%b %H:%M')
status_msg = f"Data Date: {fetched_date_str} | Last Update: {ist_now} (IST)"
worksheet.update('K2', [[status_msg]])
print(f"SUCCESS: Turnover Sheet Updated successfully for {fetched_date_str}!")
except Exception as e:
print(f"Google Sheet Error: {str(e)}")
else:
print("FAILED: पिछले 7 दिनों में से किसी भी दिन की फाइल नहीं मिली।")
स्टेप 5: कोड पेस्ट करने के बाद spreadsheet_id = "यहाँ_अपनी_शीट_की_ID_डालें" वाली लाइन में अपनी गूगल शीट की ID वापस डाल लें और ऊपर से Commit changes कर दें।
स्टेप 6 (अंतिम काम): अपनी गूगल शीट खोलें और दोनों शीट्स (Top 250 Stocks और Final List) में कॉलम B की हेडिंग को "Volume" से बदलकर "Turnover" कर दें, ताकि आगे कोई कंफ्यूजन न रहे!
बस हो गया! अब आपका स्कैनर और भी ज़्यादा पावरफुल और सटीक बन चुका है।
जिन लोगों के कोई भी समस्या आ रही है वे गूगल जेमिनी खोलें। उसमे यह कमांड लिखें
हैलो, मैं महेश कौशिक सर के निम्न ब्लॉग पोस्ट को पढ़कर उससे सीखकर पायथन कोड से ऑटोमेटेड स्टोक्स सेलेक्श शीट बना रहा हूंः- https://www.maheshkaushik.com/2026/05/blog-post.html
परन्तु इस शीट में मेरे कुछ ऐरर आ रही है क्या आप इस ब्लॉग पोस्ट के अनुसार शीट बनानें मे मेरी मदद कर सकते हैं।
उसके बाद जेमिनी को अपने एरर कोड अपनी समस्या का स्क्रीनशॉट आदि देते जायें व जेमिनी के बताये अनुसार सही करते जायें। आपकी प्रोब्लम सॉल्व हो जायेगी।
इसे समझने के लिये कक्षा 2 का वीडियो इस लिकं से देखेंः-
https://youtu.be/tyeG16q9214?si=cGkG-QJjooFLcsdu
जिन भी फॉलोवर्स के समस्याएं आ रही थी व जो शीट नहीं बना पा रहे थे उनका सर्वे एक गूगल फार्म में करवाया गया तथा गूगल फार्म में प्राप्त सर्वे के अनुसार फॉलोवर्स की समस्या को कैटेगराईज करके सबका समाधान इस गूगल डॉक्यूमेंट में दे दिया गया है यदि आपके भी कोई समस्या आ रही है तो इस गूगल डाक्यूमेंट को पढकर उसका समाधान तलाश कर सकते हैंः-
https://docs.google.com/document/d/1qr9nZUbBiU4yYVkSy6cck_D4Guk0wjf94PJL72m6QIc/edit?usp=drive_link
जो फॉलोवर एक ही शीट में दो अलग अलग टैब बनाकर एक में वोल्यूम के आधार पर टॉप 250 स्टॉक्स डाउनलोड करना चाहते हैं व दूसरी टैब में टर्नओवर के आधार पर टॉप 250 स्टॉक्स डाउनलोड करना चाहते हैं उनके लिये मैंने आपके लिए एक "टू-इन-वन मास्टर कोड" (2-in-1 Master Code) लिखा है। यह दो अलग-अलग रोबोट नहीं हैं, बल्कि एक ही बेहद एडवांस स्क्रिप्ट है।
यह नया कोड क्या करता है? यह NSE के सर्वर पर जाकर भावकॉपी (Bhavcopy) की फाइल सिर्फ 1 ही बार डाउनलोड करता है। फिर यह अपने दिमाग (Memory) में उसी 1 फाइल से 'वॉल्यूम' वाले टॉप 250 शेयर निकालता है और पहली शीट में डाल देता है। फिर सेकंड भर के अंदर, उसी फाइल से 'टर्नओवर' वाले टॉप 250 शेयर निकालता है और दूसरी शीट में डाल देता है।
स्टेप 1: आपकी गूगल शीट में एक नया टैब (Tab) बनाना
चूँकि आप ,एक ही शीट का इस्तेमाल कर रहे हैं। , तो सबसे पहले आपको इसमें टर्नओवर का डेटा मंगाने के लिए एक खाली जगह बनानी होगी:
अपनी उसी गूगल शीट को खोलें। जो बनायी हुयी है। यदि टर्नओवर वाली बनायी हुयी है तो उसी को खोलें।
नीचे '+' बटन दबाकर एक नया टैब (Sheet) बनाएँ और उसका नाम बिल्कुल यह रखें:
Top 250 Turnover(स्पेलिंग और स्पेस बिल्कुल यही रखें क्योंकि कोड इसी नाम को ढूँढेगा)।अब अपनी पुरानी शीट
Top 250 Stocksकी पहली लाइन (Row 1 की हेडिंग्स A1 से लेकर K1 तक) कॉपी करें और इस नईTop 250 Turnoverशीट की Row 1 में पेस्ट कर दें।(वैकल्पिक) इस नई शीट के B1 में 'Volume' की जगह 'Turnover (Lacs)' लिख लें ताकि कंफ्यूजन न रहे।
स्टेप 2: आपका नया 'टू-इन-वन' (2-in-1) पायथन कोड
update_sheet.py फ़ाइल को खोलकर उसमें पहले से मौजूद पूरे कोड को डिलीट (Delete) करना है और यह नया मास्टर कोड पेस्ट करना है। इसमें जहां लिखा है यहां पर अपनी शीट की आईडी डाले वहां आपकी शीट की आईडी डालना मत भुलें आईडी कैसे निकालते हैं यह वीडियो में बताया है नीचे वीडियो का लिंक भी आ जायेगा। 50 प्रतिशत फॉलोवर जिनके ऐरर आती है वो या तो शीट की आईडी डालना ही भूल जाते है या आईडी डालने में कोई गलती करते हैं या आइडी के पास जो इन्वर्टेड कोमा है उनको डीलीट कर देते हैं। इसलिये आईडी वाली गलती का ध्यान कर लेना।अब आपको क्या करना है?
इस कोड को GitHub में पेस्ट करके Commit changes कर दें।
Actions टैब में जाकर एक बार 'Run Workflow' पर क्लिक कर दें।
आप देखेंगे कि आपकी दोनों शीट्स एक साथ सुपरफास्ट स्पीड से भर गई हैं। Top 250 Stocks में पहले की तरह वॉल्यूम वाले शेयर आएंगे और नई Top 250 Turnover शीट में पैसे (Value) वाले बेहतरीन शेयर आ जाएंगे।
यदि किसी के कोई ऐरर आती है तो पूरे कोर्स में फॉलोवर्स द्वारा बतायी गयी कॉमन ऐरर का समाधान इस गूगल डाक्यूमेंट में दे दिया है इसे पढ़कर समाधान कर लेवें।
https://docs.google.com/document/d/1qr9nZUbBiU4yYVkSy6cck_D4Guk0wjf94PJL72m6QIc/edit?usp=sharing
आगे आपको क्या करना है? (सिर्फ 2 मिनट का काम)
स्टेप 1: अपनी शीट में नीचे '+' दबाकर एक नया टैब बनाएँ और उसका नाम Final List Turnover रख दें। Final List वाली शीट का नाम बदलकर Final List Volume कर देवें।
स्टेप 2: अपनी पुरानी 'Final List Volume' की ऊपर वाली हेडिंग्स (Row 1 के A1 से F1 तक) को कॉपी करें और इस नई शीट की पहली लाइन में पेस्ट कर दें। व उपर के हेडिंग में वोल्यूम के स्थान पर टर्नओवर कर देवें।
स्टेप 3: अब इस नई शीट के सेल A2 में यह नया फॉर्मूला पेस्ट कर दें:
| 🚀 डेटा लोड हो रहा है, कृपया प्रतीक्षा करें... |
महत्वपूर्ण प्रकटीकरण (Disclosure): मैं एक SEBI पंजीकृत रिसर्च एनालिस्ट (SEBI Registered Research Analyst) हूँ। ऊपर दी गई जानकारी, तकनीकी सेटअप, फॉर्मूले और स्टॉक्स की सूची केवल शैक्षिक और अध्ययन उद्देश्यों (Educational Purposes) के लिए साझा की गई है। कृपया कोई भी निवेश निर्णय लेने से पहले अपने वित्तीय सलाहकार से परामर्श अवश्य लें।
1 error and warning
ReplyDeleteupdate-sheet
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
done
Deleteसबसे पहले तो आप निश्चिंत रहें, यह कोई Error (खराबी) नहीं है, बल्कि GitHub की तरफ से सिर्फ एक पीली Warning (सूचना) है। चूँकि हम मई 2026 में हैं और GitHub 2 जून 2026 से अपने बैकग्राउंड सिस्टम (Node.js) को अपडेट करने वाला है, इसलिए वह हर यूज़र को यह सूचना दिखा रहा है। इस मैसेज के आने पर भी आपका और आपके फॉलोवर्स का डेटा 100% सही तरीके से अपडेट हो रहा है।
Delete📌 फॉलोवर्स के लिए रिप्लाई (Node.js Warning का समाधान):
क्या आपको "Node.js 20 actions are deprecated" वाली Warning दिख रही है?
घबराएं नहीं! यह कोई Error नहीं है जिससे आपका कोड रुकेगा। यह सिर्फ GitHub की तरफ से एक सूचना है कि वे 2 जून 2026 से अपने सिस्टम को अपडेट कर रहे हैं। आपका कोड इसके बावजूद बिल्कुल सही काम करेगा और शीट अपडेट होगी।
Error: Process completed with exit code 1.
DeleteI AM RECEIVING THIS ERROR.PLEASE HELP.
sir mera last work fail huwa
Deletesir sheet update nhi hui yahi wali same error aayi hai
DeleteSIR, Error: Process completed with exit code 1. yah error aa raha hai, please kya karna hai bataiye.
Deletesir mera bhi aisa hi ayatha, i left it as it is but when i chcked in morning th sheet was updated, i hope this for same for all who have issue faced as error 1
DeleteWorking Great Sir Thanks
DeleteError: Process completed with exit code 2. ye error aa raha h
DeleteNode.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Deletewarning or error, file did not autorun had to manually run the task, please guide, thank you
Got success sir ji thank u so much
DeleteManually triggered 8 minutes ago
Delete@gcssshomegcssshome
df9f69d
main
Status
Failure
Total duration
32s
Artifacts
–
DeleteError: Process completed with exit code 1.
I face this error
Thanks GuruJi :) eagerly waiting for further video.
DeleteSir ji namaskar,
DeleteMera ek Vinamra nivedan tha ki company ke volume or turnover me se Kise prathmikta Dena chahie?
Dhanyvad🙏
Error: Process completed with exit code 1.
ReplyDeletedone error resolved
Deleteक्या आपके GitHub Actions में "Error 1" (Process completed with exit code 1) आ रहा है?
Deleteयह एरर तब आता है जब GitHub को आपकी Google API की 'चाबी' (Credentials) नहीं मिल पाती। इसे ठीक करने के लिए कृपया ये 3 चीजें चेक करें:
1. Secret के नाम की स्पेलिंग (सबसे बड़ी गलती):
अपने GitHub रिपॉजिटरी की Settings > Secrets and variables > Actions में जाएँ।
चेक करें कि आपने जो Secret बनाया है, उसका नाम बिल्कुल GCP_CREDENTIALS ही होना चाहिए (सब कुछ Capital letters में, कोई स्पेस नहीं)। अगर नाम में Credential (बिना S के) या स्माल लेटर लिखा है, तो कोड काम नहीं करेगा।
2. JSON फाइल कॉपी करने में गलती:
आपने जो चाबी (JSON फाइल) डाउनलोड की थी, क्या आपने उसका पूरा टेक्स्ट कॉपी किया था? शुरू का ब्रैकेट { और आखिरी ब्रैकेट } भी कॉपी होना ज़रूरी है। इसे दोबारा कॉपी करके Secret को 'Update' कर दें।
3. YAML फाइल (.github/workflows/main.yml) में स्पेसिंग की गलती:
YAML फाइल में स्पेस (Space) बहुत मायने रखता है। चेक करें कि आपके कोड में env: वाली लाइन बिल्कुल Run Python Script के नीचे होनी चाहिए, कुछ इस तरह:
- name: Run Python Script
env:
GCP_CREDENTIALS: ${{ secrets.GCP_CREDENTIALS }}
run: python update_sheet.py
क्या करें? एक बार अपना पुराना Secret डिलीट करें, GCP_CREDENTIALS नाम से एक नया Secret बनाएँ, उसमें पूरा JSON कोड सावधानी से पेस्ट करें और फिर से 'Run workflow' करके देखें। आपका एरर 100% गायब हो जाएगा!
99% मामलों में फॉलोवर्स ने GCP_CREDENTIALS की स्पेलिंग गलत लिखी होती है या YAML फाइल में कोड पेस्ट करते समय स्पेसिंग (Indentation) बिगाड़ दी होती है।
sir ji 03 baar check kar liya but update nahi ho raha
Delete14s
Delete1s
Run python update_sheet.py
Traceback (most recent call last):
File "/home/runner/work/NSE-Auto-Sheet/NSE-Auto-Sheet/update_sheet.py", line 13, in
creds_dict = json.loads(creds_json)
File "/opt/hostedtoolcache/Python/3.10.20/x64/lib/python3.10/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "/opt/hostedtoolcache/Python/3.10.20/x64/lib/python3.10/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/opt/hostedtoolcache/Python/3.10.20/x64/lib/python3.10/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Error: Process completed with exit code 1.
3. YAML फाइल (.github/workflows/main.yml) में स्पेसिंग की गलती:
DeleteYAML फाइल में स्पेस (Space) बहुत मायने रखता है। चेक करें कि आपके कोड में env: वाली लाइन बिल्कुल Run Python Script के नीचे होनी चाहिए, कुछ इस तरह:
- name: Run Python Script
env:
GCP_CREDENTIALS: ${{ secrets.GCP_CREDENTIALS }}
run: python update_sheet.py Sir ye mujhe kahi nhi mila blog me na video me. kripya iska step batayen. baki sab thik kar liya hai manine .
Annotations
Delete1 error and 1 warning
update-sheet
Process completed with exit code 1.
Save Sheet as google sheet. This has resoled the issue, if everything is OK.
DeleteI had copy the error code to Chatgpt, that analysed & help me in correction.
DeleteIs we have to run every time to update sheet? as sheet is not showing any thing on opening.
DeleteSir, the volume sheet is done, thank you very much. I learn a lot through your videos, thank you. I am getting an error in the turnover sheet. The coding on the blog and the sheet code shown in your video seem a little different at the end. Could that be why the problem is arising?
DeleteI also got error code 1 4-5 times, try one more thing. When you are done with what sir had explained , go to sheet and rename sheet again top 250 stocks with same name ( top 250 stocks) manually. I did this and it worked.
DeleteThank you so much Sir for this invaluable knowledge and guidance 🙏
ReplyDeleteThank you sir
Deletehow to solve please explain
DeleteBAHUT ACHCHHE SE MERA DRONE AAPKE MARGDARSAN ME UDH CHUKA HAI SIR JEE
ReplyDeleteThank you sir
Deletesir buy weekly Karna hai ya daily please clarify
Deleteexcellent, in one go it worked, amazing sir
ReplyDeletesir ye error aa rhi hai
ReplyDeleteProcess completed with exit code 2.
please click on the update-sheet , and then it will display the actual error message. paste that here and Sir/myself can help in the setup
Delete
Deleteupdate-sheet
Process completed with exit code 1.
update-sheet
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
please help - what to do
Brokerage plus charges both side formula samajh nahi aaya
DeleteTHANK YOU SIR AAPNE BAHUT ACHA SIKHAYA UPDATE HONE THODI PROBLEM AA RAHI HAI MAGAR KOSHIS KARTE RAHENGE
ReplyDelete
ReplyDeleteupdate-sheet
Process completed with exit code 1.
update-sheet
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
ReplyDeleteupdate-sheet
Process completed with exit code 1.
update-sheet
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Chandan Kumar
Please click on the red cross - wala update-sheet and you will get the actual error. paste that error here. the above message is a warning message and that is fine .
Delete
ReplyDeleteAnnotations
1 error and 1 warning
update-sheet
Process completed with exit code 1.
update-sheet
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Please Help Sir Chandan Kumar
Sir, apne ko sheet banaya uska link mujse nahi ban rahi hai
ReplyDeleteSir , i am a software Engineer since last 16 years and never seen someone working so hard for the benefit of others without taking any fees and teaching something by which people can become self dependent financially. you are Awesome. May Krishna Bless you.
ReplyDeleteNode.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
ReplyDeleteSheet me stocks to aa rahe hai but 2nd sheet (finalsheeet)hai usk stocks nahi dik rahe hai sir ?aisa kyu?
ReplyDeletethenk you
ReplyDeleteAnnotations
ReplyDelete1 error and 1 warning
update-sheet
Process completed with exit code 1.
update-sheet
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Please give the solution
Thanks a lot Mahesh ji for teaching this automation via Github. I just did it and finished entire set up in 15 mins. Truly appreciate you for the efforts , bahut bahut dhanyawaad!
ReplyDeleteThankyou sir aapki videos bhot help krti h.
ReplyDeleteThank you sir aapki videos bhot help krti h.
ReplyDeleteNAMASKAR SIR, MAINE SABKUCH KAR TO DIYA AUR MERE FINAL LIST ME 250 STOCKS BHI AA GAYE LEKIN FINAL LIST WALI SHEET EMPTY HI HAI, USKO KAISE SOLVE KAR SAKTE HAI, MERA EMAIL ADDRESS SHARE.DEMO14@GMAIL.COM HAI
ReplyDeletePart 2 ka video aayega, Usme batayege. Wait till date
DeleteMahesh Sir !!! Working Great Thanks. From Gujarat
ReplyDeleteSheet updated successfully..Waiting for further guidance for integration with CAR sheet
ReplyDeleteSir, me apaka kamchor sishya meri bhi excel sheet 100 % ban gai
ReplyDeleteAnnotations
ReplyDelete1 error and 1 warning
update-sheet
Process completed with exit code 1.
update-sheet
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Sir ye code aa raha hai bataye kya kare
Gurudev !!! Working Great Thanks.
ReplyDeleteSheet updated successfully..Waiting for next video....
sir , same error mujha bhi aay raha hai. but maine sahi kar liy ha
ReplyDeleteproblem code mai nhi hai , sheet mai hai
sheet k name copy nhi kiya tha ish liya error aay rha tha ( Top 250 Stocks) rename kiya blog pai se copy kar k. ab sahi work kar raha hai. mera liya yeah work kar raha hai , hope aur sab k liya bhi kare,
problem kaha hue
;- pehla mena sheet k name kuhd type kiya tha. (not copy paste)
Annotations
ReplyDelete1 error and 1 warning
update-sheet
Process completed with exit code 1.
update-sheet
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
please give solution for this error
jahan pe wo 2 sheet banai thi aur ek ka naam Top 250 Stocks rakha tha , bs uski spelling check karo dekho ki kahin koi Small/Capital letters ki dikkat na ho usko exact match karo video k hisab se ...Thank You!!!
ReplyDeleteThumbs 👍
DeleteMeri sheet bhi nahi aa rahi thi maine ek galti kar di thi maine sheet ka name top 250 stock kar diya tha stock me 's' nahi lagaya tha maine stocks karke code wapis edit kar diya to meri sheet update ho gayi Thanks sir
ReplyDeleteNamaskar Sir, apane jo process se maine advance karke maine usme add pura 2256 stock huva aur uska Fundamental sara data download hota hai, 40 colomn hui, fundamental like Symbol Company Name Sector Industry Close (₹) Open (₹) High (₹) Low (₹) Prev Close (₹) Price Change (₹), Promoter% ........
ReplyDeleteKaise Kiya?
Deleteनमस्कार सर, अपने जो प्रोसेस से मैंने एडवांस करके हमें ऐड पूरा 2256 स्टॉक हुवा और उसका फंडामेंटल सारा डेटा डाउनलोड होता है, 40 कॉलम हुई, फंडामेंटल जैसे सिंबल कंपनी का नाम सेक्टर इंडस्ट्री क्लोज (₹) ओपन (₹) हाई (₹) लो (₹) प्रीव क्लोज (₹) प्राइस चेंज (₹), प्रमोटर% ........ Fundamental sara data download hota hai, 40 colomn hui, fundamental like Symbol Company Name Sector Industry Close (₹) Open (₹) High (₹) Low (₹) Prev Close (₹) Price Change (₹), Promoter% ........
ReplyDeleteनमस्कार सर, अपने जो प्रोसेस से मैंने एडवांस करके हमें ऐड पूरा 2256 स्टॉक हुवा और उसका फंडामेंटल सारा डेटा डाउनलोड होता है, 40 कॉलम हुई, फंडामेंटल जैसे सिंबल कंपनी का नाम सेक्टर इंडस्ट्री क्लोज (₹) OPEN (₹) HIGH (₹) LOW (₹) Previous close (₹) प्राlprice change (₹), promoter % ........ बाद में मैने उसको Android app में ssynchronize कर दिया और ये app without problem मस्त चलती हैं, excel sheet hang होती थी पर app मस्त रीत से चलती है और google sheet में data change होता है वैसे 30 second में update data fatch हो जाता हैं thank you sir, very good morning sir 😊
ReplyDeleteHello sir,
ReplyDeleteHello sir,
ReplyDeletegithub pr creating anew file click karte hi 404 aaa rha h
Sir waiting for the next video
ReplyDeleteMERA DRONE raat 1:37 pe launch ho raha hai??
ReplyDeleteSIR CODE MAI JAAKAR CREATE NEW FILE PAR CLICK KARNE K BAAD NEW FILE NAME KA KOI OPTION NHI AA RAHA AUR PYTHON KO PASTE KARNE KA BOX NHI AA RAHA
ReplyDeletesame happed with me, tried multiple times, same result
DeleteMera bhi create new file nehi horsha tha phir uska solution hain mere paas
DeleteGitHub me copilot bolke ek help section hain usko bolo wo kar dega tumhe karna nehi parega
Mahesh Ji, one point in case if I change the coding for turnover strategy than i need to make a copy of this Volume based sheet and delete the code ? secondly if I delete this volume base code and update for turnover hope my volume base sheet will work without issue
ReplyDeleteH2 me code kane par Error aa raha hai
ReplyDeleteSir maine Kaksha 1 puri video follow kia lekin last me github me code pe jake create new file pe click karne ke baad same page reload hua hai....I am stuck there only so not able to complete auto sheet, please help me.
ReplyDeleteSame
DeleteSir Ye error aa raha hai please guide, ab to turnover vala code delete ho gaya hai
ReplyDeleteProcess completed with exit code 1.
update-sheet
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Ac
Sir jo blog me code hai usme last 3 lines extra hai jo apki video vale code me hai uski vajah se to nahi hai ye error please aap ek baar check kariye because mene code blog se pura sahi copy kiya hai but apki video me uska last kuch alag hai
DeleteSheet working Sir :)
ReplyDeleteThanks for providing this useful sheet, But when we buy and sell that data is required to be linked with this sheet so please provide two linked sheets where buy and sell transactions cna be entered. This will make it complete sheet. Please consider this.
ReplyDeleteSir, I really loved the idea that you are moving a huge population from manual (error) trading towards algo trading step by step. the way you are creating these classes even a class 6th student can also follow this a build a trading system which is far from human error and emotional trading. I hope I understand correctly you have helped us create a scanner now next step is profit booking based on trailing SL based on ATR, Position sizing, and automatic trade executions. Your vision and intention for greater good is commendable.
ReplyDeleteMy Name is Vineet Sharma I am on your whatsapp list, mu number ends with 5110, Please let me know If I can help you with any technical aspect of this project.
Hello Sir Thanks for great work. I really appreciate it. Some suggestions/queries if you may a) instead of top 250 why not top 500 shares nifty 50, next 50, mid 150, and small 250 b) its only highest traded volume/value shares on one particular day . Real breakout is only if average traded volume/value for the previous few days is broken substantially in the current traded day hope u can guide novice people like me . Thanks and again i really appreciate the hard work you you are doing for us.
ReplyDeletesir creat a new file per click krne k baad next interface open nahi ho raha, jaha hamne code copy paste krna hai,? kya krna hoga koi alternate option nahi hai kya?
ReplyDeletesame here
Deletesame problem, pta chle to btana
DeleteSir, the code that you've pasted in the video is different from what is in your blog; hence, it's throwing an error. Please correct the code.
ReplyDeleteuse this code, it will generate 2 sheet ByVolume and ByTurnover so that you can have both FINAL List (US Col A for ByVolume, Col H for ByTurnover):
ReplyDeleteCode: update_sheet.py
https://docs.google.com/document/d/1fqS2T-yMeog7LEfaf2DHSqvDi3mpkNdBecEJ2YbTlEY/edit?usp=sharing
-----------------------------------------
SHEET ID HERE - replace with your sheet id
-Anil
sir aapki script kaam toh kar rahi thi lekin github ke saath error aa raha tha, maine kuch changes ke saath. Sirf google services or google cloud ka use karke hi sab aapne daily script run karna lekin shaam 7 baje kar diya hai.
ReplyDeletelekin aapka bhut bhut dhanayawaad sir, aapne itna sab hume apna gyan dene ke liye.
Sir agar volume ke jagape turnover pe kiya jaye uska code jo apne copy Kiya video me dikhaya hain uske baad 2 line apne alag se blog me add Kiya hain kya ???
ReplyDeleteKuki blog me extra 2 line dikh raha hain jo apki video me nehi tha
sir,error coming-creating a new file is not clickable in Code tab.
ReplyDeleteAnnotations
ReplyDelete1 error and 1 warning
update-sheet
Process completed with exit code 1.
update-sheet
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-python@v5. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
SIR YE VOLUME WALI SHEET ME PROBLEM NAHI AA RAHI THI LAKIN AB TURNOVER WALI SHEET ME PROBLEM AA RAHI HAI
Sir batana
ReplyDeleteMeri sheet ban gai hai, thank you
ReplyDeleteSIR AAPKA JAWAB NAHI AAPNE ITNI MEHNAT KARTE HAI HUMARE LIYE WO BHI ITNE SALO SE MAIN APKO 2019 SE FOLLOW KAR RAHA HOON MAINE YE PURI 2IN 1SHEET BANA LI HAI APKI KIRPA SE
ReplyDeletesir ye maha nalayko ko roj roj apke es blog par ake TOP VOLUMR PO TOP TURNOVER dekh na hoga
ReplyDeleteगुरुजी नमस्कार, यहां जो दो बटन दिए हैं, उनमें जो स्टॉक्स दिखते हैं क्या dma dma car की तर्ज पर दिखेंगे? यानि कि cmp असेंडिंग ऑर्डर में।
ReplyDeleteOne can find common stocks in both sheets and sort them in third sheet using formula:
ReplyDeletecase1:
Common in Turnver and Volume
=IFERROR(FILTER('Final List Turnover'!A3:A, COUNTIF('Final List Volume'!A3:A, 'Final List Turnover'!A3:A)), "कोई स्टॉक नहीं मिला")
Case 2:
Common in Volume and Turnover
=IFERROR(FILTER('Final List Volume'!A3:A, COUNTIF('Final List Turnover'!A3:A, 'Final List Volume'!A3:A)), "कोई स्टॉक नहीं मिला")
thankyou guruji dono sheet work kar rahi hai
ReplyDeleteGURUJI aapne complex concept ko itna simple language m samjhaya h ki har koi kar pa raha h. thank you guruji
ReplyDeleteSir,
ReplyDeleteमैने दोनों sheet बनाली और उस sheet पर से Android app बनाली है, अब पूरी जिंदगी चलेगी 😂
एक बात और है कि live share Market में volume और turnover की Google sheet बना सकते हैं क्या? पायथन कोड बताई प्लीज, मैने बनाई है पर डेटा नहीं आ रहा
प्लीज इस पर सलाह दीजिए या पाईथन कोड बताईये
Pranam Sir, dono hi button mey "koi stock nahi mila" ye hi aa raha hai. Blog pe bhi aur meri sheet mey bhi....Final List mey hi hai ye problem, top 250 toh load ho rahey hain. Shayad is 2 in 1 code ke liye dono final list ke liye formula dubara dey dein toh ho jayega. Kyunki hamney pahley turnover wali hi bana li this phir kal 2 in 1 use kia to formula mey shayad koi mix-up ho gaya hai....
ReplyDeleteAbhi phir check kiya toh volume waley button mey toh aa gaye stock. Blog button pe bhi aur meri sheet mey bhi magar blog ke dusrey turnover button mey bhi "koi stock nahi mile" aur meri sheet mey bhi - Aisa possible toh nahi hona chahiye, isliye lag raha hai ki formulae mey kuch mix-up hai
ReplyDeleteLast updation date is 25th however it's 26th today
ReplyDeleteDron nhi ud paya sir
ReplyDeleteSir ji, output wale formula ke according 50 DMA aur 100 DMA, 200 DMA ke neeche ho sakte hain, lekin phir bhi price teeno DMA ke upar ho sakta hai. Kya aise case mein bhi stock ko bull run mein consider kiya jayega?
ReplyDeleteYeh formula aapki Nifty Ki Dukaan ke breakout version wale formula se thoda different lag raha hai. Kripya ek baar isko validate kar dijiye.
Formula in this blog:
=IF(AND(D2>E2, D2>F2, D2>G2, I2>=0.01, I2<=10), "In Bull Run",
IF(AND(D2=-10, I2<=-0.01), "In Bear Run", "Unconfirmed"))
(bull example: CMP>50 DMA, CMP>100 DMA, CMP >200 DMA)
Formula in Nifty ki Dukaan
=IF(AND(D2>E2, E2>F2, F2>G2, I2>=0.01, I2<=10), "In Bull Run",
IF(AND(D2=-10, I2<=-0.01), "In Bear Run", "Unconfirmed"))
(bull example: CMP>50 DMA, 50 DMA>100 DMA, 100 DMA >200 DMA)
बहुत बहुत धन्यवाद सर APNE मेरी ट्रैडिंग KO बहुत आसान कर दिया अब सोचना नहीं पड़ता है क्या करें क्या न करें सब ऑटोमैटिक तरीके से हो जाता है Compounding करना भी बहुत आसान हो गया वॉल्यूम और टर्न ओवर दोनों का एक ही शीट लाना बहुत बढ़िया हो गया. म इसका इंतज़ार था। मेरा ड्रोन बहुत अच्छे से उड़ रहा है सर । बहुत बहुत धन्यवाद आपका
ReplyDeleteबहुत बहुत धन्यवाद सर आपने मेरी ट्रैडिंग को बहुत आसान कर दिया अब सोचना नहीं पड़ता है क्या करें क्या न करें सब ऑटोमैटिक तरीके से हो जाता है. Compounding करना भी बहुत आसान हो गया. वॉल्यूम और टर्न ओवर दोनों का एक ही शीट में लाना बहुत बढ़िया हो गया. मुझे इसका इंतज़ार था। मेरा ड्रोन बहुत अच्छे से उड़ रहा है सर । बहुत बहुत धन्यवाद आपका.
ReplyDeletehttps ://jhakashLife.com
Sir ji namaskar,
ReplyDeleteMera ek Vinamra nivedan tha ki company ke volume or turnover me se Kise prathmikta Dena chahiye.
dhanyvad🙏
Thanks for 2 special button. Being senior citizen
ReplyDeleteI am feeling relief .I can't depend on my junior । सबसे बड़ा बात उनसे मेरा आत्म सम्मान जिंदा रहेगा। आप को कोटि कोटि धन्यवाद। ईश्वर आप को सदा अपने आशीर्वाद से नवाजे।
Sir, yaha pe click karate vakt stock kyu nahi dikhai dete
ReplyDeleteSir aap wakai me mahan ho, aapke saare videos dekhe hain bahut hi gyan vardhak hain.
ReplyDeleteVolume vaali file ready hai, value waali try karne ke liye waqt nahi mila.
Bahut bahut dhanyawad,agli kaksha ka intezar rahega.