AI एजेंट · पाठ

जोखिम और अनुपालन सुरक्षा-सीमाएँ

पोज़िशन आकार सीमाएँ, प्रतिबंधित साधनों की जाँच और ऑडिट लॉगिंग।

पाठ 3, कुल 4 में से13 चरण

जोखिम और अनुपालन सुरक्षा-सीमाएँ, CoddyKit पर AI एजेंट का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह AI एजेंट सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। AI एजेंट पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

वित्तीय एजेंटों को कड़े सुरक्षा-नियंत्रण क्यों चाहिए

बिना किसी प्रतिबंध के कोई भी कारोबार सुझाने वाला वित्तीय एजेंट उपयोगकर्ताओं को विनाशकारी नुकसान या नियामकीय उल्लंघनों के जोखिम में डाल सकता है। मानव सलाहकार के विपरीत, एजेंट अपनी अनुशंसा तर्क-प्रणाली को लगातार उसी तरह चलाएगा — यानी कोई त्रुटि या गलत विन्यास हर उपयोगकर्ता को प्रभावित करेगा।

कड़े सुरक्षा-नियंत्रण सबसे गंभीर परिणामों को रोकते हैं।

निवेश-स्थिति की सीमाएँ

एजेंट किसी एक परिसंपत्ति में पोर्टफोलियो का कितना हिस्सा लगाने की अनुशंसा कर सकता है, इसकी सीमा तय करें। एक सामान्य नियम है: कोई भी एक निवेश-स्थिति कुल पोर्टफोलियो मूल्य के 20% से अधिक नहीं होनी चाहिए। इससे विनाशकारी संकेंद्रण जोखिम रुकता है।

MAX_POSITION_PCT = 0.20   # 20% of portfolio max per asset

def check_position_size(ticker: str, trade_usd: float,
                        portfolio_value: float) -> dict:
    proposed_pct = trade_usd / portfolio_value
    if proposed_pct > MAX_POSITION_PCT:
        return {
            'allowed': False,
            'reason': (
                f'Position size {proposed_pct:.1%} exceeds limit {MAX_POSITION_PCT:.1%}. '
                f'Max trade for this portfolio: USD {portfolio_value * MAX_POSITION_PCT:.0f}'
            )
        }
    return {'allowed': True, 'position_pct': round(proposed_pct, 4)}

if __name__ == '__main__':
    print('Large trade:', check_position_size('TSLA', 30000, 100000))
    print('Small trade:', check_position_size('TSLA', 10000, 100000))

प्रतिबंधित साधनों की सूची

उन साधनों की सूची बनाए रखें जिनकी अनुशंसा करने की एजेंट को अनुमति नहीं है: अत्यल्प-मूल्य वाले सट्टात्मक शेयर, अत्यधिक उत्तोलित ईटीएफ, प्रतिबंधित प्रतिभूतियाँ या व्यक्तिगत निवेशकों के लिए अनुपयुक्त साधन।

PROHIBITED_TICKERS = {
    'UVXY',   # VIX leveraged ETF — too volatile
    'TVIX',   # Delisted leveraged VIX
    'JDST',   # 3x leveraged gold miners short
    'NUGT',   # 3x leveraged gold miners long
    'YANG',   # 3x China short
}

PROHIBITED_TYPES = {'penny_stock', 'leveraged_3x', 'inverse_volatility'}

def check_prohibited_instrument(ticker: str) -> dict:
    if ticker.upper() in PROHIBITED_TICKERS:
        return {
            'allowed': False,
            'reason': f'{ticker} is on the prohibited instruments list'
        }
    return {'allowed': True}

if __name__ == '__main__':
    print("Checking UVXY:", check_prohibited_instrument('UVXY'))
    print("Checking AAPL:", check_prohibited_instrument('AAPL'))

दिन-व्यापारी पैटर्न नियम की जाँच

US में, USD 25,000 से कम राशि वाले खाते को तब पैटर्न डे ट्रेडर (PDT) के रूप में चिह्नित किया जाता है, जब वह 5 कारोबारी दिनों में 4 या अधिक खरीद-बिक्री के पूर्ण चक्र वाले कारोबार करे। उसी दिन के कारोबार की अनुशंसा करने से पहले एजेंट को कारोबार की आवृत्ति जाँचनी चाहिए।

from datetime import datetime, timedelta, timezone

def check_pdt_rule(account_value_usd: float,
                   recent_trades: list[dict]) -> dict:
    if account_value_usd >= 25_000:
        return {'at_risk': False, 'reason': 'Account above PDT threshold'}

    cutoff = datetime.now(timezone.utc) - timedelta(days=5)
    recent = [
        t for t in recent_trades
        if datetime.fromisoformat(t['timestamp']) > cutoff
        and t.get('is_day_trade', False)
    ]

    if len(recent) >= 3:
        return {
            'at_risk': True,
            'day_trades_in_5_days': len(recent),
            'reason': (
                f'Account has {len(recent)} day trades in the last 5 days. '
                f'A 4th would trigger the PDT restriction.'
            )
        }
    return {'at_risk': False, 'day_trades_in_5_days': len(recent)}

if __name__ == '__main__':
    now = datetime.now(timezone.utc)
    trades = [
        {'timestamp': (now - timedelta(days=1)).isoformat(), 'is_day_trade': True},
        {'timestamp': (now - timedelta(days=2)).isoformat(), 'is_day_trade': True},
        {'timestamp': (now - timedelta(days=3)).isoformat(), 'is_day_trade': True},
    ]
    result = check_pdt_rule(account_value_usd=10000, recent_trades=trades)
    print('PDT rule check:', result)

अस्थिरता-आधारित कारोबार आकार समायोजन

अधिक अस्थिर परिसंपत्तियों में जोखिम अधिक होता है। निवेश-स्थिति का आकार अस्थिरता के विपरीत अनुपात में तय करें: यदि किसी परिसंपत्ति की अस्थिरता आधार स्तर से दोगुनी है, तो आधे निवेश-स्थिति आकार का सुझाव दें।

import yfinance as yf, numpy as np

BASELINE_VOL = 0.15   # 15% annualized vol — S&P 500 average

def volatility_scaled_size(ticker: str, base_allocation_usd: float) -> dict:
    hist = yf.Ticker(ticker).history(period='1y')['Close'].pct_change().dropna()
    vol = float(hist.std() * np.sqrt(252))

    scaling_factor = BASELINE_VOL / max(vol, 0.01)
    adjusted_usd   = base_allocation_usd * scaling_factor

    return {
        'ticker':             ticker,
        'annualized_vol':     round(vol, 4),
        'scaling_factor':     round(scaling_factor, 3),
        'adjusted_size_usd':  round(adjusted_usd, 2),
        'note': 'High-vol asset: position scaled down' if scaling_factor < 1 else 'Normal sizing'
    }

हर अनुशंसा का लेखा-रिकॉर्ड रखना

हर कारोबार अनुशंसा — चाहे स्वीकार की गई हो या अस्वीकार — पूरे संदर्भ के साथ दर्ज की जानी चाहिए: समय-चिह्न, उपयोगकर्ता ID, सुझाई गई कार्रवाई, की गई सुरक्षा-जाँचें और परिणाम। इससे अनुपालन समीक्षा के लिए पूरा लेखा-परीक्षण रिकॉर्ड तैयार होता है।

import json, hashlib, time, logging

audit_logger = logging.getLogger('financial_agent.audit')
audit_logger.setLevel(logging.INFO)

def audit_log(user_id: str, action: str, ticker: str,
              amount_usd: float, guardrail_results: list[dict],
              approved: bool, reason: str):
    log_entry = {
        'timestamp':         time.time(),
        'user_id':           user_id,
        'action':            action,
        'ticker':            ticker,
        'amount_usd':        amount_usd,
        'guardrails':        guardrail_results,
        'approved':          approved,
        'reason':            reason,
        'entry_id':          hashlib.md5(f'{user_id}{time.time()}'.encode()).hexdigest()[:12]
    }
    audit_logger.info(json.dumps(log_entry))

if __name__ == '__main__':
    import sys
    audit_logger.addHandler(logging.StreamHandler(sys.stdout))
    audit_log('user_42', 'BUY', 'AAPL', 5000.0,
               [{'check': 'position_size', 'allowed': True}],
               True, 'Within limits')

अस्वीकरण जोड़ना

एजेंट के किसी भी वित्तीय आउटपुट में यह अस्वीकरण शामिल होना चाहिए कि वह व्यक्तिगत वित्तीय सलाह नहीं है। इसे स्वचालित रूप से जोड़ें — इसे लगातार जोड़ने के लिए LLM पर कभी निर्भर न रहें।

FINANCIAL_DISCLAIMER = (
    '\n\n---\n'
    'DISCLAIMER: This output is generated by an AI agent and is for '
    'informational purposes only. It does not constitute personalized financial advice. '
    'Past performance does not guarantee future results. '
    'Please consult a licensed financial advisor before making investment decisions.'
)

def inject_disclaimer(response: str) -> str:
    if 'DISCLAIMER' not in response:
        return response + FINANCIAL_DISCLAIMER
    return response

if __name__ == '__main__':
    response = 'AAPL is currently trading at $150 with strong upward momentum.'
    print(inject_disclaimer(response))

सभी सुरक्षा-नियंत्रण क्रम से चलाना

एकल guardrail_check() फ़ंक्शन बनाएँ, जो सभी जाँचों को क्रम से चलाए और कारण सहित सफल/असफल निर्णय लौटाए। किसी भी अनुशंसा को अंतिम रूप देने से पहले एजेंट इसे बुलाता है।

def guardrail_check(user_id: str, ticker: str, action: str,
                    amount_usd: float, portfolio_value: float,
                    account_value: float, recent_trades: list[dict]) -> dict:
    checks = []

    # 1. Prohibited instruments
    prohibited = check_prohibited_instrument(ticker)
    checks.append({'check': 'prohibited_instrument', **prohibited})
    if not prohibited['allowed']:
        audit_log(user_id, action, ticker, amount_usd, checks, False, prohibited['reason'])
        return {'approved': False, 'reason': prohibited['reason'], 'checks': checks}

    # 2. Position size
    size_check = check_position_size(ticker, amount_usd, portfolio_value)
    checks.append({'check': 'position_size', **size_check})
    if not size_check['allowed']:
        audit_log(user_id, action, ticker, amount_usd, checks, False, size_check['reason'])
        return {'approved': False, 'reason': size_check['reason'], 'checks': checks}

    # 3. PDT rule
    if action == 'day_trade':
        pdt = check_pdt_rule(account_value, recent_trades)
        checks.append({'check': 'pdt_rule', **pdt})
        if pdt['at_risk']:
            return {'approved': False, 'reason': pdt['reason'], 'checks': checks}

    audit_log(user_id, action, ticker, amount_usd, checks, True, 'All guardrails passed')
    return {'approved': True, 'checks': checks}

जोखिम-प्रोफ़ाइल के आधार पर उपयुक्तता जाँच

अनुशंसा को उपयोगकर्ता की बताई गई जोखिम-सहनशीलता के अनुरूप रखें। किसी सतर्क निवेशक को उच्च-बीटा वाले वृद्धि शेयरों की अनुशंसा नहीं की जानी चाहिए; आक्रामक निवेशक अधिक अस्थिरता सँभाल सकता है।

RISK_PROFILES = {
    'conservative':   {'max_beta': 0.8,  'max_vol_pct': 15},
    'moderate':       {'max_beta': 1.2,  'max_vol_pct': 25},
    'aggressive':     {'max_beta': 2.0,  'max_vol_pct': 50},
}

def suitability_check(risk_profile: str, ticker_beta: float,
                       ticker_vol_pct: float) -> dict:
    limits = RISK_PROFILES.get(risk_profile, RISK_PROFILES['moderate'])
    if ticker_beta > limits['max_beta']:
        return {
            'suitable': False,
            'reason': f'Beta {ticker_beta:.2f} exceeds {risk_profile} limit {limits["max_beta"]}'
        }
    if ticker_vol_pct > limits['max_vol_pct']:
        return {
            'suitable': False,
            'reason': f'Volatility {ticker_vol_pct:.1f}% exceeds {risk_profile} limit {limits["max_vol_pct"]}%'
        }
    return {'suitable': True}

if __name__ == '__main__':
    print('Conservative check:', suitability_check('conservative', ticker_beta=1.5, ticker_vol_pct=20))
    print('Aggressive check:  ', suitability_check('aggressive', ticker_beta=1.5, ticker_vol_pct=20))

अनुशंसाओं की दर सीमित करना

बहुत अधिक बार कारोबार अनुशंसाएँ तैयार करने वाला एजेंट अति-कारोबार को बढ़ावा देता है, जिससे लागत और जोखिम बढ़ते हैं। एक ही परिसंपत्ति के लिए अनुशंसाओं के बीच विराम अवधि लागू करें।

import time

last_recommendation: dict[str, float] = {}  # ticker -> timestamp
COOLDOWN_HOURS = 24

def check_recommendation_cooldown(ticker: str) -> dict:
    last = last_recommendation.get(ticker, 0)
    elapsed_hours = (time.time() - last) / 3600

    if elapsed_hours < COOLDOWN_HOURS:
        remaining = COOLDOWN_HOURS - elapsed_hours
        return {
            'allowed': False,
            'reason': f'Recommendation cooldown: {remaining:.1f} hours remaining for {ticker}'
        }
    return {'allowed': True}

def record_recommendation(ticker: str):
    last_recommendation[ticker] = time.time()

if __name__ == '__main__':
    print('Before recommending:', check_recommendation_cooldown('AAPL'))
    record_recommendation('AAPL')
    print('Right after recommending:', check_recommendation_cooldown('AAPL'))

हानि-रोक और मूल्य-पतन सुरक्षा-बाधाएँ

व्यक्तिगत निवेश-स्थिति की सीमाओं के अतिरिक्त, पोर्टफोलियो-स्तरीय सुरक्षा-बाधा लागू करें: यदि एक ही दिन में पूरे पोर्टफोलियो का नुकसान X% से अधिक हो जाए, तो मानव द्वारा स्थिति की समीक्षा किए जाने तक एजेंट नई खरीद अनुशंसाएँ देना रोक दे।

MAX_DAILY_DRAWDOWN_PCT = 0.05   # 5% daily loss limit

def check_daily_drawdown(portfolio_start_of_day: float,
                          portfolio_current: float) -> dict:
    daily_loss = (portfolio_current - portfolio_start_of_day) / portfolio_start_of_day
    if daily_loss < -MAX_DAILY_DRAWDOWN_PCT:
        return {
            'circuit_breaker': True,
            'daily_loss_pct':  round(daily_loss * 100, 2),
            'reason': (
                f'Portfolio down {abs(daily_loss)*100:.1f}% today. '
                f'Agent suspended — human review required.'
            )
        }
    return {'circuit_breaker': False, 'daily_loss_pct': round(daily_loss * 100, 2)}

if __name__ == '__main__':
    print('Small loss day:', check_daily_drawdown(100000, 98000))
    print('Big loss day:  ', check_daily_drawdown(100000, 92000))

दिन-व्यापारी पैटर्न (PDT) नियम किस पर रोक लगाता है?

PDT नियम US के बाजार में काम करने वाले वित्तीय एजेंटों के लिए एक US नियामकीय आवश्यकता है, जिसका उन्हें पालन करना चाहिए। इसे समझने से एजेंट अनजाने में मार्जिन खातों पर प्रतिबंध लगने की स्थिति पैदा नहीं करते।

जोखिम और अनुपालन सुरक्षा-नियंत्रणों की पुनरावृत्ति

वित्तीय एजेंट के सुरक्षा नियंत्रणों में शामिल हैं: पोज़िशन आकार की सीमाएँ, निषिद्ध साधनों की सूची, PDT नियम की जाँच, अस्थिरता के अनुसार आकार निर्धारण, जोखिम प्रोफ़ाइल के अनुरूप उपयुक्तता मिलान, हर सिफारिश का लॉग दर्ज करना, और सभी आउटपुट में अस्वीकरण जोड़ना।

किसी भी व्यापार-सिफारिश को अंतिम रूप देने से पहले हमेशा सभी सुरक्षा नियंत्रण चलाएँ।

शुरुआत निःशुल्क

एआई शिक्षक के साथ AI एजेंट सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
60
पाठ
239

अक्सर पूछे जाने वाले प्रश्न

क्या “जोखिम और अनुपालन सुरक्षा-सीमाएँ” पाठ निःशुल्क है?

हाँ—“जोखिम और अनुपालन सुरक्षा-सीमाएँ” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और AI एजेंट पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। AI एजेंट पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“जोखिम और अनुपालन सुरक्षा-सीमाएँ” में मैं क्या सीखूँगा?

पोज़िशन आकार सीमाएँ, प्रतिबंधित साधनों की जाँच और ऑडिट लॉगिंग। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ AI एजेंट का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या AI एजेंट शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर AI एजेंट शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“जोखिम और अनुपालन सुरक्षा-सीमाएँ” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस AI एजेंट पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर AI एजेंट पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. बाज़ार डेटा API एकीकरण
  2. पोर्टफ़ोलियो विश्लेषण एजेंट टूल
  3. जोखिम और अनुपालन सुरक्षा-सीमाएँ
  4. एजेंट निर्णयों का बैकटेस्टिंग
← AI एजेंट पर वापस जाएँ