Pakistan Ka Pehla Professional Trading Bot CourseModule 5

5.3Geo Scout — News Sentiment Se Trading

35 min 3 code blocks Quiz (4Q)

Geo Scout — News Sentiment Se Trading

Alright, chalo bachon, class shuru karte hain.

COURSE: Pakistan Ka Pehla Professional Trading Bot Course

MODULE 5: Strategy Development — Theta Sniper Aur Geo Scout Build Karna

LESSON 5.3: Geo Scout — News Sentiment Se Trading

Duration: 35 minutes

Assalam-o-Alaikum, future trading wizards. Ab tak hum charts, numbers aur Greeks ke peechay bhagtay rahay hain. Lekin dunya sirf numbers pe nahi chalti. Asal paisa khabar (news) mein hai. Geo Scout strategy ka maqsad yehi hai — dunya bhar ki news ko process karke un events pe bet karna jinhe aam trader samajh hi nahi paata.

Kya Hai Yeh Geo Scout? Scene Kya Hai?

Seedhi baat: Geo Scout aapka 24/7 news analyst hai. Yeh dunya bhar mein honay walay geopolitical events — jang, elections, trade deals — ko track karta hai. Phir AI ki madad se sentiment nikalta hai ke market ka price aane wali reality se sasta hai (underpriced) ya mehenga (overpriced).

Socho, jab Trump ne China pe tariffs lagaye thay, KSE (Karachi Stock Exchange) pe textile stocks ka kya haal hua tha? Ya jab Russia-Ukraine war shuru hui, oil ki prices kahan se kahan chali gayin? Geo Scout inhi moqon ko pakarney ka automated tareeqa hai. Yeh strategy scanner.py mein rehti hai aur ai/ directory ke models use karti hai to get its "edge".

Chalo, isko tod-phod ke dekhte hain.

1

Geopolitical Keywords Scanning — Samandar Se Machli Pakarna

Pehla masla: Polymarket pe hazaron markets hain. Hum har ek ko to analyze nahi kar saktay. We need to filter. Hum sirf woh markets uthayenge jo hamare interest ke topics se related hain. Yeh kaam hum keywords se karte hain.

Code dekho, yeh hamare strategies/geo_scout.py (hypothetical file, logic scanner.py se milti hai) ka core hai.

python
# strategies/geo_scout.py

# Yeh keywords hamari "watchlist" hain. Inse related koi bhi market hum miss nahi karna chahte.
GEO_KEYWORDS = [
    'iran', 'israel', 'ukraine', 'russia', 'china', 'taiwan',
    'nato', 'war', 'tariff', 'trade war', 'election', 'trump'
]

def find_geo_markets(all_markets: list) -> list:
    """
    Yeh function tamam active markets mein se sirf woh markets filter karta hai
    jo hamare GEO_KEYWORDS se match karti hain.
    """
    geo_markets = []
    for market in all_markets:
        # Market ka question (sawal) uthao, aur usko lowercase kardo taake case sensitivity ka masla na ho.
        question = market.get('question', '').lower()
        
        # List comprehension - ek fancy tareeqa hai loop likhne ka.
        # Yeh check kar raha hai ke hamare GEO_KEYWORDS mein se kon kon se lafz question mein mojood hain.
        matching_keywords = [kw for kw in GEO_KEYWORDS if kw in question]
        
        # Agar koi keyword match hua hai...
        if matching_keywords:
            # Hum market data ke andar hi yeh information save kar lete hain. Aage kaam aayegi.
            market['_geo_keywords'] = matching_keywords
            market['_theme'] = matching_keywords[0]  # Pehla keyword primary theme ban jayega
            geo_markets.append(market)
            
    return geo_markets

# Example usage:
# dummy_markets = [{'question': 'Will Donald Trump win the 2024 election?'}, {'question': 'PSL final: Karachi vs Lahore?'}]
# geo = find_geo_markets(dummy_markets)
# print(geo) 
# Output: [{'question': 'Will Donald Trump win the 2024 election?', '_geo_keywords': ['election', 'trump'], '_theme': 'election'}]

Code Breakdown:

  1. GEO_KEYWORDS: Yeh hamari list hai. Simple, saaf suthri. Isko aap apni research ke hisab se update kar saktay ho. For example, agar Pakistan mein elections anay walay hain, you can add 'imf', 'bajwa', 'nawaz sharif', 'imran khan'.
  2. find_geo_markets: Yeh function market ki list leta hai.
  3. market.get('question', '').lower(): .get('question', '') aadat daal lo. Yeh safe hai. Agar kisi market object mein 'question' ki key na ho, to aapka code phatega nahi, crash nahi karega. It will return an empty string. .lower() se 'Trump' aur 'trump' ek hi baat ban jaati hai.
  4. matching_keywords = [...]: Yeh Python ka jadoo hai, list comprehension. It's a one-liner for a for loop that creates a new list. Efficient and clean.
  5. market['_geo_keywords'] aur market['_theme']: Hum original market object ko modify kar rahe hain. Kyun? Taake aage jaake baar baar search na karna paray. Hum ne market ko "tag" kar diya hai. _theme aage risk management mein kaam aayega.
2

Theme-based Position Limiting — Saaray Anday Ek Tokri Mein Nahi

Okay, so aapne 10 markets dhoond li jo 'iran' ke keyword se match karti hain. Aapka bot excited ho gaya aur sab pe YES buy kar liya. Aglay din Iran aur America ki deal ho gayi. Aapke saare paise doob gaye.

This is why we need theme-based limiting. A "theme" is a single topic, like 'iran' or 'election'. Hum decide kar saktay hain ke hamara bot kisi ek theme pe 2 se zyada positions nahi lega, chahe jitni marzi achi opportunity kyun na ho. This is risk management 101.

Yeh logic run_geo_scout ke main loop mein aati hai.

python
# ... (inside run_geo_scout function) ...

for m in tradeable_markets:
    theme = m['_theme'] # Yaad hai? Humne yeh pehle hi save kar liya tha.
    
    # REAL BOT LOGIC: Database se pucho ke is theme pe pehle se kitni positions hain.
    # Hamari Polymarket Oracle codebase mein yeh db.py se interact karega.
    # positions_on_theme = db.get_positions_by_theme(theme) 
    # if len(positions_on_theme) >= 2:
    #     print(f'[GEO] Skipping {m["question"][:30]}... Theme limit for "{theme}" reached.')
    #     continue # Agli market pe jao, isko choro.

    # ... baaqi ka logic yahan aayega ...

Yahan db.get_positions_by_theme(theme) ek function hoga jo hamari db.py file mein likha hoga. Woh SQLite ya PostgreSQL database se check karega ke "iran" theme pe hamari kitni active trades chal rahi hain. Agar limit (e.g., 2) poori ho gayi hai, to bot us market ko ignore kar dega. Simple.

Pro Tip: Dynamic Keyword Weights You can update keyword weights based on market events, holidays, or breaking news to stay relevant.

📺 Recommended Videos & Resources

🎯 Mini-Challenge

5-Minute Practical Task: Create a sentiment analysis function that takes 5 news headlines about a prediction market topic and returns: (1) overall sentiment (-1 to +1), (2) key sentiment words found, (3) trading signal (BUY/SELL/NEUTRAL). Test with headlines about Pakistan, crypto, and politics.

🖼️ Visual Reference

code
📊 Geo Scout Strategy: News → Signal → Trade
┌────────────────────────────┐
│ News Event (Real-Time)     │
│ "Pakistan elections called"│
└────────────┬───────────────┘
             │
             ▼
┌────────────────────────────┐
│ Search Related Markets     │
│ - Political outcomes       │
│ - Currency pairs           │
│ - Regional equities        │
└────────────┬───────────────┘
             │
             ▼
┌────────────────────────────┐
│ Sentiment Analysis         │
│ (TextBlob, VADER, or LLM)  │
│ - Headline: 0.75 positive  │
│ - Impact: High             │
└────────────┬───────────────┘
             │
             ▼
┌────────────────────────────┐
│ Generate Trading Signal    │
│ BUY: Outcome likely        │
│ SELL: Outcome unlikely     │
│ HOLD: Uncertain            │
└────────────┬───────────────┘
             │
             ▼
┌────────────────────────────┐
│ Execute Trade              │
│ (If all filters pass)      │
└────────────────────────────┘

Lesson Summary

3 runnable code examples4-question knowledge check below

Quiz: [Module 5 Lesson 5.3]

4 questions to test your understanding. Score 60% or higher to pass.