रणनीति ऑप्टिमाइज़ेशन और बेंचमार्किंग

Python में फाइनेंशियल ट्रेडिंग

Chelsea Yang

Data Science Instructor

इनपुट पैरामीटर के मान कैसे तय करें?

  • प्रश्न:

    • सिग्नल "Price > SMA" में कौन-सा SMA लुकबैक पीरियड बेहतर है?
  • समाधान: रणनीति ऑप्टिमाइज़ेशन

    • बैकटेस्टिंग में इनपुट पैरामीटर के कई मान आज़माएँ और परिणामों की तुलना करें
Python में फाइनेंशियल ट्रेडिंग

रणनीति ऑप्टिमाइज़ेशन उदाहरण

def signal_strategy(ticker, period, name, start='2018-4-1', end='2020-11-1'):

# Get the data and calculate SMA price_data = bt.get(ticker, start=start, end=end) sma = price_data.rolling(period).mean()
# Define the signal-based strategy bt_strategy = bt.Strategy(name, [bt.algos.SelectWhere(price_data>sma), bt.algos.WeighEqually(), bt.algos.Rebalance()])
# Return the backtest return bt.Backtest(bt_strategy, price_data)
1 www.datacamp.com/courses/writing-functions-in-python
Python में फाइनेंशियल ट्रेडिंग

रणनीति ऑप्टिमाइज़ेशन उदाहरण

ticker = 'aapl'
sma20 = signal_strategy(ticker, 
                        period=20, name='SMA20')
sma50 = signal_strategy(ticker, 
                        period=50, name='SMA50')
sma100 = signal_strategy(ticker, 
                        period=100, name='SMA100')

# Run backtests and compare results bt_results = bt.run(sma20, sma50, sma100) bt_results.plot(title='Strategy optimization')

ऑप्टिमाइज़ेशन परिणाम का प्लॉट

Python में फाइनेंशियल ट्रेडिंग

बेंचमार्क क्या है?

एक मानक या संदर्भ बिंदु जिसके मुकाबले किसी रणनीति की तुलना या मूल्यांकन किया जा सके.

  • उदाहरण:
    • जो रणनीति सिग्नल से सक्रिय रूप से स्टॉक्स ट्रेड करती है, वह पैसिव buy and hold रणनीति को बेंचमार्क बना सकती है.
    • S&P 500 इंडेक्स अक्सर इक्विटीज़ के लिए बेंचमार्क होता है.
    • U.S. Treasuries बॉन्ड के जोखिम और रिटर्न मापने के लिए उपयोग होते हैं.
Python में फाइनेंशियल ट्रेडिंग

बेंचमार्किंग उदाहरण

def buy_and_hold(ticker, name, start='2018-11-1', end='2020-12-1'):

# Get the data price_data = bt.get(ticker, start=start_date, end=end_date)
# Define the benchmark strategy bt_strategy = bt.Strategy(name, [bt.algos.RunOnce(), bt.algos.SelectAll(), bt.algos.WeighEqually(), bt.algos.Rebalance()])
# Return the backtest return bt.Backtest(bt_strategy, price_data)
Python में फाइनेंशियल ट्रेडिंग

बेंचमार्किंग उदाहरण

benchmark = buy_and_hold(ticker, name='benchmark')

# Run all backtests and plot the resutls bt_results = bt.run(sma20, sma50, sma100, benchmark) bt_results.plot(title='Strategy benchmarking')

बेंचमार्किंग परिणाम

Python में फाइनेंशियल ट्रेडिंग

अभ्यास करते हैं!

Python में फाइनेंशियल ट्रेडिंग

Preparing Video For Download...