Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save kumrzz/95b386423706118a3b02346319bbc8a7 to your computer and use it in GitHub Desktop.

Select an option

Save kumrzz/95b386423706118a3b02346319bbc8a7 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 28,
"id": "ef45c721",
"metadata": {},
"outputs": [],
"source": [
"# %pip install pandas matplotlib numpy\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from datetime import datetime"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "22eaadef",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>timestamp</th>\n",
" <th>open</th>\n",
" <th>high</th>\n",
" <th>low</th>\n",
" <th>close</th>\n",
" <th>Volume</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>01.06.2025 00:00:00.000 GMT+0100</td>\n",
" <td>5906.629</td>\n",
" <td>5906.629</td>\n",
" <td>5906.629</td>\n",
" <td>5906.629</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>01.06.2025 00:01:00.000 GMT+0100</td>\n",
" <td>5906.629</td>\n",
" <td>5906.629</td>\n",
" <td>5906.629</td>\n",
" <td>5906.629</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>01.06.2025 00:02:00.000 GMT+0100</td>\n",
" <td>5906.629</td>\n",
" <td>5906.629</td>\n",
" <td>5906.629</td>\n",
" <td>5906.629</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>01.06.2025 00:03:00.000 GMT+0100</td>\n",
" <td>5906.629</td>\n",
" <td>5906.629</td>\n",
" <td>5906.629</td>\n",
" <td>5906.629</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>01.06.2025 00:04:00.000 GMT+0100</td>\n",
" <td>5906.629</td>\n",
" <td>5906.629</td>\n",
" <td>5906.629</td>\n",
" <td>5906.629</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44635</th>\n",
" <td>30.06.2025 23:55:00.000 GMT+0100</td>\n",
" <td>6194.881</td>\n",
" <td>6195.134</td>\n",
" <td>6194.134</td>\n",
" <td>6195.128</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44636</th>\n",
" <td>30.06.2025 23:56:00.000 GMT+0100</td>\n",
" <td>6194.904</td>\n",
" <td>6194.949</td>\n",
" <td>6194.395</td>\n",
" <td>6194.878</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44637</th>\n",
" <td>30.06.2025 23:57:00.000 GMT+0100</td>\n",
" <td>6194.628</td>\n",
" <td>6194.628</td>\n",
" <td>6194.113</td>\n",
" <td>6194.363</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44638</th>\n",
" <td>30.06.2025 23:58:00.000 GMT+0100</td>\n",
" <td>6194.625</td>\n",
" <td>6194.634</td>\n",
" <td>6193.631</td>\n",
" <td>6193.929</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44639</th>\n",
" <td>30.06.2025 23:59:00.000 GMT+0100</td>\n",
" <td>6194.179</td>\n",
" <td>6194.363</td>\n",
" <td>6193.366</td>\n",
" <td>6194.363</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>44640 rows × 6 columns</p>\n",
"</div>"
],
"text/plain": [
" timestamp open high low \\\n",
"0 01.06.2025 00:00:00.000 GMT+0100 5906.629 5906.629 5906.629 \n",
"1 01.06.2025 00:01:00.000 GMT+0100 5906.629 5906.629 5906.629 \n",
"2 01.06.2025 00:02:00.000 GMT+0100 5906.629 5906.629 5906.629 \n",
"3 01.06.2025 00:03:00.000 GMT+0100 5906.629 5906.629 5906.629 \n",
"4 01.06.2025 00:04:00.000 GMT+0100 5906.629 5906.629 5906.629 \n",
"... ... ... ... ... \n",
"44635 30.06.2025 23:55:00.000 GMT+0100 6194.881 6195.134 6194.134 \n",
"44636 30.06.2025 23:56:00.000 GMT+0100 6194.904 6194.949 6194.395 \n",
"44637 30.06.2025 23:57:00.000 GMT+0100 6194.628 6194.628 6194.113 \n",
"44638 30.06.2025 23:58:00.000 GMT+0100 6194.625 6194.634 6193.631 \n",
"44639 30.06.2025 23:59:00.000 GMT+0100 6194.179 6194.363 6193.366 \n",
"\n",
" close Volume \n",
"0 5906.629 0.0 \n",
"1 5906.629 0.0 \n",
"2 5906.629 0.0 \n",
"3 5906.629 0.0 \n",
"4 5906.629 0.0 \n",
"... ... ... \n",
"44635 6195.128 0.0 \n",
"44636 6194.878 0.0 \n",
"44637 6194.363 0.0 \n",
"44638 6193.929 0.0 \n",
"44639 6194.363 0.0 \n",
"\n",
"[44640 rows x 6 columns]"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 1. LOAD 1-MINUTE DATA (CSV format)\n",
"# Expected columns: \\['timestamp', 'open', 'high', 'low', 'close'\\]\n",
"# Example: \"2025-06-01 00:00:00,5890.1,5890.5,5889.8,5890.0\"\n",
"df = pd.read_csv(\"/Users/kumar.ghosh/kgtest/lemaske/USA500.IDXUSD_Candlestick_1_M_BID_01.06.2025-01.07.2025.csv\", parse_dates=['Local time'])\n",
"df.rename(columns={'Local time':'timestamp','Open':'open','High':'high','Low':'low','Close':'close'}, inplace=True)\n",
"df = df.sort_values('timestamp').reset_index(drop=True)\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "85a6165f",
"metadata": {},
"outputs": [],
"source": [
"# 2. STRATEGY PARAMETERS\n",
"initial_capital = 100_000\n",
"contract_size = 20\n",
"contract_value = 50 # $50 per point\n",
"risk_per_trade = None # Fixed size, not risk-based\n",
"\n",
"ema_fast = 50\n",
"ema_slow = 100\n",
"bb_period = 20\n",
"bb_mult = 2.0\n",
"rsi_period = 14\n",
"rsi_oversold = 35\n",
"atr_period = 14\n",
"atr_mult = 1.5\n",
"cooldown_bars = 10 # 10 minutes"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "11d0b57a",
"metadata": {},
"outputs": [],
"source": [
"# 3. INDICATOR CALCULATIONS\n",
"df['ema_fast'] = df['close'].ewm(span=ema_fast, adjust=False).mean()\n",
"df['ema_slow'] = df['close'].ewm(span=ema_slow, adjust=False).mean()\n",
"df['basis'] = df['close'].rolling(bb_period).mean()\n",
"df['dev'] = df['close'].rolling(bb_period).std()\n",
"df['upper'] = df['basis'] + bb_mult * df['dev']\n",
"df['lower'] = df['basis'] - bb_mult * df['dev']\n",
"\n",
"# RSI\n",
"delta = df['close'].diff()\n",
"gain = delta.where(delta > 0, 0)\n",
"loss = -delta.where(delta < 0, 0)\n",
"avg_gain = gain.rolling(rsi_period).mean()\n",
"avg_loss = loss.rolling(rsi_period).mean()\n",
"rs = avg_gain / avg_loss\n",
"df['rsi'] = 100 - (100 / (1 + rs))\n",
"\n",
"# ATR\n",
"high_low = df['high'] - df['low']\n",
"high_close = np.abs(df['high'] - df['close'].shift())\n",
"low_close = np.abs(df['low'] - df['close'].shift())\n",
"tr = pd.concat([high_low, high_close, low_close], axis=1).max(axis=1)\n",
"df['atr'] = tr.rolling(atr_period).mean()"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "6a98f0cd",
"metadata": {},
"outputs": [],
"source": [
"# Drop NaN\n",
"df = df.dropna().reset_index(drop=True)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "3e5fdc18",
"metadata": {},
"outputs": [],
"source": [
"# 4. BACKTEST ENGINE\n",
"equity = initial_capital\n",
"peak_equity = initial_capital\n",
"trades = []\n",
"in_position = False\n",
"entry_price = 0\n",
"stop_price = 0\n",
"target_price = 0\n",
"cooldown_until = -1 # bar index\n",
"current_bar = 0\n",
"\n",
"for i, row in df.iterrows():\n",
" close = row['close']\n",
" upper = row['upper']\n",
" lower = row['lower']\n",
" rsi = row['rsi']\n",
" atr = row['atr']\n",
" timestamp = row['timestamp']\n",
"\n",
" # Update cooldown\n",
" if cooldown_until >= i:\n",
" can_trade = False\n",
" else:\n",
" can_trade = True\n",
"\n",
" # Exit conditions\n",
" if in_position:\n",
" # Hit stop?\n",
" if row['low'] <= stop_price:\n",
" exit_price = stop_price\n",
" pnl_points = exit_price - entry_price\n",
" pnl_dollar = pnl_points * contract_value * contract_size\n",
" equity += pnl_dollar\n",
" trades.append({\n",
" 'entry_time': entry_time,\n",
" 'exit_time': timestamp,\n",
" 'entry': entry_price,\n",
" 'exit': exit_price,\n",
" 'pnl_points': pnl_points,\n",
" 'pnl_dollar': pnl_dollar,\n",
" 'type': 'STOP'\n",
" })\n",
" in_position = False\n",
" cooldown_until = i + cooldown_bars\n",
" continue\n",
"\n",
" # Hit target (upper band)?\n",
" if row['high'] >= target_price:\n",
" exit_price = target_price\n",
" pnl_points = exit_price - entry_price\n",
" pnl_dollar = pnl_points * contract_value * contract_size\n",
" equity += pnl_dollar\n",
" trades.append({\n",
" 'entry_time': entry_time,\n",
" 'exit_time': timestamp,\n",
" 'entry': entry_price,\n",
" 'exit': exit_price,\n",
" 'pnl_points': pnl_points,\n",
" 'pnl_dollar': pnl_dollar,\n",
" 'type': 'TARGET'\n",
" })\n",
" in_position = False\n",
" cooldown_until = i + cooldown_bars\n",
" continue\n",
"\n",
" # Close at upper band (if touched)\n",
" if close >= upper:\n",
" exit_price = close\n",
" pnl_points = exit_price - entry_price\n",
" pnl_dollar = pnl_points * contract_value * contract_size\n",
" equity += pnl_dollar\n",
" trades.append({\n",
" 'entry_time': entry_time,\n",
" 'exit_time': timestamp,\n",
" 'entry': entry_price,\n",
" 'exit': exit_price,\n",
" 'pnl_points': pnl_points,\n",
" 'pnl_dollar': pnl_dollar,\n",
" 'type': 'BAND_EXIT'\n",
" })\n",
" in_position = False\n",
" cooldown_until = i + cooldown_bars\n",
" continue\n",
"\n",
" # Entry condition (long only)\n",
" if not in_position and can_trade:\n",
" trend_up = row['ema_fast'] > row['ema_slow']\n",
" buy_signal = (close < lower) and (rsi < rsi_oversold) and trend_up\n",
"\n",
" if buy_signal:\n",
" entry_price = close\n",
" stop_price = entry_price - atr_mult * atr\n",
" target_price = upper\n",
" entry_time = timestamp\n",
" in_position = True\n",
"\n",
" # Track equity\n",
" df.at[i, 'equity'] = equity\n",
" if equity > peak_equity:\n",
" peak_equity = equity"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "5d7b9f06",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/var/folders/7g/23kt1h6917l_vg9gy8dq300m0000gp/T/ipykernel_24389/968341931.py:20: FutureWarning: The default fill_method='pad' in Series.pct_change is deprecated and will be removed in a future version. Either fill in any non-leading NA values prior to calling pct_change or specify 'fill_method=None' to not fill NA values.\n",
" df['daily_return'] = df['equity'].pct_change().fillna(0)\n"
]
}
],
"source": [
"# 5. PERFORMANCE METRICS\n",
"trades_df = pd.DataFrame(trades)\n",
"total_trades = len(trades_df)\n",
"win_trades = len(trades_df[trades_df['pnl_dollar'] > 0])\n",
"win_rate = win_trades / total_trades * 100 if total_trades > 0 else 0\n",
"avg_win = trades_df[trades_df['pnl_dollar'] > 0]['pnl_dollar'].mean() if win_trades > 0 else 0\n",
"avg_loss = trades_df[trades_df['pnl_dollar'] < 0]['pnl_dollar'].mean() if (total_trades - win_trades) > 0 else 0\n",
"profit_factor = abs(avg_win * win_trades / (avg_loss * (total_trades - win_trades))) if avg_loss != 0 else float('inf')\n",
"\n",
"final_equity = equity\n",
"net_profit = final_equity - initial_capital\n",
"return_pct = net_profit / initial_capital * 100\n",
"\n",
"# Drawdown\n",
"df['peak'] = df['equity'].cummax()\n",
"df['drawdown'] = df['equity'] - df['peak']\n",
"max_dd = df['drawdown'].min()\n",
"\n",
"# Sharpe (daily returns)\n",
"df['daily_return'] = df['equity'].pct_change().fillna(0)\n",
"daily_vol = df['daily_return'].std()\n",
"sharpe = (df['daily_return'].mean() / daily_vol) * np.sqrt(252 * 390) if daily_vol > 0 else 0 # 390 min/day"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "29ec5ff3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"============================================================\n",
" LONG-ONLY + 10-MIN COOLDOWN BACKTEST\n",
"============================================================\n",
"Initial Capital: $100,000\n",
"Final Equity: $84,723\n",
"Net Profit: $-15,277 (-15.3%)\n",
"Total Trades: 222\n",
"Win Rate: 28.8%\n",
"Avg Win: $4,632\n",
"Avg Loss: $-1,973\n",
"Profit Factor: 0.95\n",
"Max Drawdown: $85,599\n",
"Sharpe Ratio: 0.02\n",
"============================================================\n"
]
}
],
"source": [
"# 6. PRINT SUMMARY\n",
"print(\"=\"*60)\n",
"print(\" LONG-ONLY + 10-MIN COOLDOWN BACKTEST\")\n",
"print(\"=\"*60)\n",
"print(f\"Initial Capital: ${initial_capital:,.0f}\")\n",
"print(f\"Final Equity: ${final_equity:,.0f}\")\n",
"print(f\"Net Profit: ${net_profit:,.0f} ({return_pct:,.1f}%)\")\n",
"print(f\"Total Trades: {total_trades}\")\n",
"print(f\"Win Rate: {win_rate:.1f}%\")\n",
"print(f\"Avg Win: ${avg_win:,.0f}\")\n",
"print(f\"Avg Loss: ${avg_loss:,.0f}\")\n",
"print(f\"Profit Factor: {profit_factor:.2f}\")\n",
"print(f\"Max Drawdown: ${-max_dd:,.0f}\")\n",
"print(f\"Sharpe Ratio: {sharpe:.2f}\")\n",
"print(\"=\"*60)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "39278772",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABWgAAAMWCAYAAABsi2/PAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAmEFJREFUeJzs3Qd0XMX5N+CRLMty772DAZtm0wImpsWml0AgdEIn1MAfCKGXQAgl9BJCCpBQkkDoEDqhmd6bqQZswMa9W7ak/c5cvl1UbcmWtNLqec65SLfsvaPZ1Rr9du47ealUKhUAAAAAAGh0+Y1/SQAAAAAAIgEtAAAAAECWCGgBAAAAALJEQAsAAAAAkCUCWgAAAACALBHQAgAAAABkiYAWAAAAACBLBLQAAAAAAFkioAUAAAAAyBIBLQA0sry8vHDuuefqd7Lm5ptvTl6HX3zxhWdhBcR+i/0X+7GlvS/FY+Kxzc0ll1wShg8fHsrKyrLdFOpo7733Dnvuuad+AyCnCWgBaLHhVE3LSy+91KjtGT9+fBJ6zJ49u0HOf88994Ttt98+9OjRIxQWFoZ+/folf+w+9dRToaU816+99lpojpYuXRquvvrqsNFGG4WOHTuGDh06JN/HbXFfLvr222/DqaeeGrbaaqvkZ47P3//+979l/v6MGTMmtGvXLvTp0yf86le/CvPnz6/VtdJhY35+fpg0aVKV/XPnzg1t27ZNjjn22GNDY2jJv68NJT6PF198cfjNb36TPNfRjBkzwqWXXho233zz0LNnz9ClS5ewySabhH/961/VnqO4uDh5fHw+4mti4403Do8//nid2hFfxz/72c+S12l8bnv16hV23nnncPfdd4eG9PDDD2f9Q8ELL7ww3HvvvSv02Njv//nPf8Lbb79d7+0CgKZCQAtAi/Xb3/42/OMf/6iyDBs2rEGvu2jRonDmmWdWCJjOO++8eg9oU6lUOPjgg5NAYOrUqeHEE08MN9xwQzjmmGPC559/HsaOHZtcm6ZpwYIFYeuttw7HH398EuhcdNFFSaAUA6K4Le6Lx+Sajz76KAnTvv7667DOOuss89i33noreR0vXLgwXH755eGwww4LN954Y/j5z39ep2u2adMm3HHHHVW21xScDR48OPk9PuCAA0J98fvacP72t7+FkpKSsM8++2S2vfjii+GMM84I3bp1S96Pf/e73yUhfxytec4551Q5x0EHHZS8xvbbb79w1VVXhVatWoUddtghPP/887VqQzxn/NDhvffeC7/85S+T9+Jf//rXyYcJu+++e7j99ttDQwa08d+Y5hrQrrfeemHDDTcMl112Wb23CwCajBQAtDA33XRTKv4T+Oqrr6aagksvvTRpz8SJExvkvCeccEKqrKysyv6///3vqZdffnmlrxPPvXDhwlRT1NSe67o44ogjkrZfc801VfZde+21yb4jjzxypfqlvl9z5cXzx+vU1dy5c1MzZsxIvr/zzjuT8zz99NPVHrv99tun+vbtm5ozZ05m25///OfkMY8++uhyr3XOOeckx/7sZz9LjRo1qsr+rbfeOrX77rsnxxxzzDGphtRYv681ideO/VHbPmtO1l133dT+++9fYdvnn3+e+uKLLypsi/3+k5/8JNWmTZvU/PnzM9tjv8efOT5HaYsWLUqtuuqqqdGjRy/3+unX8R577JFasmRJlf2PPPJI6oEHHkg1lPjare1ztnTp0lRxcXG9t6F9+/apAw88cIUf/4c//CE5x7x58+q1XQDQVBhBCwDLEEe1xpFTnTt3Tm6BPfDAA5NRe5XrT2655ZbJUll87JAhQ2qs9Ri/xlFU0dChQzNlFmKNyy222CKMHDmy2natscYaYdttt62x3XF03+9///uk5uIf/vCHamtGxtF/P/rRjzLtqO6Y6mqVxp9np512Co8++mgyqine7vunP/0prL322skIscpizcf+/fuHPfbYo8K2K6+8Mqy11lqhqKgo9O7dOxlVNmvWrJANb775ZnJbeadOnZIyAnFUZuVSF+m+eOGFF5LRyPG26Pbt24fddtstTJs2rcKx8eeLfRpHu8ZRebFfPvjgg6Tv4mtieSZPnhz++te/hp/85CfV3lofR0HHc/7lL39Jjk1L34ofR6rF5yOODI19/MgjjyzzevF1HW+pr65swjbbbJO83hpLLGsQRzXW5rb1eIv5/vvvnzxvab/4xS+S5/Df//53ra+57777Jr/XEyZMyGybMmVKUlYg7qtNDdr4vMbrxpG/u+66a/J9fI2cfPLJobS0dJnXr+vvaxRHwceRwrGv4mss3p7/0EMPVXncd999Fw499NDkdyz+rsX3lFtuuaVW/RJHh8aSGvFxq666avJ7Xp04OvX8889Pjomvufg6P/3005OyAGnx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AAAAskQNWgAAAACALBHQAgAAAABkiRq0jSjOGvvNN9+Ejh07mngDAAAAgGYnlUqFefPmhX79+oX8fGM/64OAthHFcHbgwIGNeUkAAAAAqHeTJk0KAwYM0LP1QEDbiOLI2fQLuFOnTiGXvPzyy2H69OnZbgYAAABAkxHzn8022yzkkrlz5yYDENM5FytPQNuI8vLyMr+cuRbQtm/fPixcuDDbzQAAAABoUnlJrmVAlXMuVp5CEQAAAAAAWSKgBQAAAADIEgEtAAAAAECWqEHbBJWWloalS5eG5lZ3pKDAy6kxXhupVKrBrwMAAABA45CoNSExeJsyZUqYPXt2aG7atm0b+vTpk+1m5LyysrIwb968ZAEAAACg+RPQNiHpcLZXr16hXbt2zWo2vAULFiSjO2nYAH/JkiWZkcpCWgAAAIDmT0DbRMRwMx3Odu/ePTQ3JSUlyULDatOmTaa/58+fr9wBAAAAQDNnkrAmIl1zNo6chWUpLCwM+fn5oVWrVjoKAAAAoJkT0DYxzamsAdnhNQIAAACQOwS0AAAAAABZIqClWbj99tvD4MGDs90MAAAAAKhXAlpWykEHHZTcct+xY8fQtWvXzLLHHnvUa8/utttu4bXXXsusX3TRRWGzzTarl3OnUqlw8803h3HjxoUBAwYkQfBWW20V/vjHP4aFCxfWyzUAAAAAoDoF1W6FOthuu+3CtddeG0pKSjLb2rRpU6992LZt22RpCL/85S/Dgw8+GE466aRwySWXhB49eoT33nsvCWgHDRoUdtxxxxU675IlS5IJvQAAAACgJkbQstJiGNu7d+8KS5cuXTL7P/vss7DDDjuEPn36hE022SQ8/fTTySjbhx56KNn//PPPJ+tz5szJPObdd99Ntn311VdVShzE7y+++OIkRE2P2I3bjj322LDXXntVaNvSpUvDaqutFv7xj39U2/Z77rkn3HnnneEvf/lLEtCuv/76SSgb23v//feHMWPGJMfttNNO4bTTTqvw2P322y8cffTRmfV11103XHrppeHII49MznHCCSeEbbbZJpxzzjkVHjd9+vTQs2fP8MILLyTrxcXF4ayzzgprrrlm6N+/fzKSN/YJAAAAALnPCNomKpUKIVt317drF0JeXv2cq6ysLBxwwAGhV69e4fHHHw9z584Np59++kqXO/jwww/DE088Ee69995kW6dOncKqq66ajHadMmVKEgZHjz76aFi0aFHymOrEcDYGuDGQrSyWbujcuXOd2nbNNdeEU045JfzmN79J1mMbr7766nDuuecm54vuvvvupH2bbrppsh6PnzBhQhIS9+3bNxnNG0tExAA3/kwAAAAA5C4BbRMVw9kOHbJz7fnzQ2jfvvbHx0AxHYim/d///V8yIvV///tf+OSTT8J//vOfJHyM4mjRn//85yvcvljqoH379qGgoCAZrZu28cYbJ2Hrv/71r3D88ccn22677bbw05/+NHSooTM///zzMGzYsFBfNt9882Qkb1oMhmMg/eKLL2YC2bvuuivsvvvuSWA7adKkpI1xxHC6f4477rjw5JNPJtvPPvvsemsbAAAAAE2PgJaVFifU+sMf/hBKS0sz22LZgejjjz9ObttPh4/RRhtt1GC9Hkfr3nLLLUlA+9133yUjWO+7775lThBWn0aNGlVhPdazjf0TR+rGgPbLL78Mr776arjiiiuS/R988EHSb5X7JJY96NatW722DQAAAICmR0DbRMUyA3Eka7auXRdxNGu8Fb/8JGF1kb71v3xYGmvHroi99947nHfeeeGVV15Jlli3Nj1ytTqx3XGE7/Lk5+dXCXOra2Psi8riaOFTTz01mYAsBrWx1uxaa62V7FuwYEFo1apVUpc3fl3euQAAAADILSYJa6JiZhnzuWws9VV/Nlp99dXD119/ndSFTXvttdeqjDKNyh8Tb/lfltatW1cYsZsWR53GOrRx0rC47Lvvvss8T6z1+umnn4aHH364yr4YyKYnLottnDp1amZfvHasg1sbsb5tHBEbR/PGUg/lyzvEicXiuaZNmxZWWWWVCkv58g0AAAAA5CYBLSstho8xvCy/zJgxI9m35ZZbJjVejz766CR0HT9+fLjgggsqPD6GkbEMwsUXXxw+++yzZGKv6667bpnXHDRoUPjqq6+Sc8ZrxTaUL3Nwxx13JOUV9tlnn2WeJ9aIjcthhx0WLrvssvDmm28m533kkUfCrrvuGp5//vnkuM022yw89thjSdvieWN93XR4uzxxJGwMaS+88MLw0UcfJfVn02LfxMD2qKOOCg888EBSAuH1118Pl19+eXItAAAAAHKbgJaVFsPMGDQOHz48s2y//fbfv8Dy88M//vGPsGjRojBu3LikNuyZZ55ZZTTsX/7ylyT4HDNmTLjq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gDdtk002CaNGjUoC2dhF8VwnnXRSOPnkk5P9c+bMCb179w4333xz2HvvvWv1M8awuHPnzslj44jfXBJD7mnTpmW7GQAAAABNRueiorDlttuGXJLL+Va2NOkatGVlZeGAAw4Iv/71r8Naa61VZf+LL76YlDVIh7NRLD2Qn5+fjHJNH7P55ptnwtkojnz96KOPwqxZszLHxMeVF4+J26OJEycmAW/5Y+ILMQbH6WMAAAAAAOqqIDRhF198cSgoKAi/+tWvqt0fQ9NevXpV2BaP79atW7IvfczQoUMrHBNHvqb3de3aNfma3lb+mPLnKP+46o6pTnFxcbKU/4QhWrp0abLkkhimAwAAAPCDeFd2rmVAufbzNAVNNqCN9WKvuuqq8MYbbyTlD5qj3//+9+G8886rsv2xxx4L7dq1y0qbAAAAAGgcc4uLq0xE39wtXLgw203IOU02oH3uuefCd999FwYNGpTZVlpamtSBvfLKK8MXX3wR+vTpkxxTXklJSZg5c2ayL4pfp06dWuGY9Pryjim/P72tb9++FY6JdWprctppp4UTTzyxwgjagQMHJpOW5VqNjlhSYsaMGdluBgDQDJx++o/DvHk/lJ+qzs47fx622ebLRmsTAEBD6NSmTRgzdmxOdW76DnFaQEAba89WVxc2bj/44IOT9dGjR4fZs2cno2032GCDZNtTTz2V3G4f68Omj4mThMXh161bt062Pf7442GNNdZIyhukj3nyySczk4+lj4nbo1giIYa08Zh0IBtfjDGUPOqoo2r8Gdq0aZMslcV2pNuSK2LdXwCA2vjmmw5h9uyiZR4zd+6yA1wAgOYg3hWeaxlQrv08oaUHtPPnzw+ffvppZj1OxvXWW28lNWTjyNnu3btXeQHEoDSGq9GIESPCdtttFw4//PBwww03JCHsscceG/bee+/Qr1+/5Jh99903KTNw6KGHht/85jfhvffeS0onXHHFFZnzHn/88WGLLbYIl112Wdhxxx3DP//5z/Daa6+FG2+8MfPLFMPbCy64IKy22mpJYHvWWWcl19h1110bqbcAAHLDqae+EpYuXfaHu717u3UOAICWIasBbQxBt9pqq8x6uhzAgQceGG6++eZaneO2225LQtmxY8cmozh33333cPXVV2f2d+7cOan5eswxxySjbHv06BHOPvvscMQRR2SO2XTTTcPtt98e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S31Daen3NwYWFpZkuzkAAHUmoAUAAJqtww9/N5SVff99q1apbDcHAKDOBLQAAECztd12X2S7CQAAK8UkYQAAAAAAWSKgBQAAAADIEgEtAAAAAECWqEELAADkvFmz2oSvv+6QWe/atTj07z8/q20CAIgEtAAAQM57441e4Zpr1s+sb731F+GYY97OapsAACIBLQBAM/L88/3C4sXf/y/coEFzw+qrz852k6BZaN++JAwYMK/CCFoAgKZAQAsA0IzccstaYdq0dsn3P/3ppwJaqKVNNvk2WQAAmhoBLQBANebNax0WLfr+f5Xy81OhR4/FTaKf1l13Wpgzp03y/cCBP4wGBAAAmicBLQBANe64Y3h4+OFVku+7d18U/vrXx5pEPx133FvZbgIAAFCPBLQAANX9T1JBWSgsLEm+Lyws1UcAAECDENACAFTjkEPeTxYAAICGJKAFAMhxN9+8Zigu/v5/+zbe+NswatS0bDcJAAD4/wS0AAA57sknB4d58wqT73v1WiigBQCAJkRACwCQ43bb7ZNQXNwq+X748JnZbg4AAFCOgBYAIMf97GefZrsJAABADfJr2gEAAAAAQBMaQfvhhx+Gf/7zn+G5554LX375ZVi4cGHo2bNnWG+99cK2224bdt9999CmTZuGay0AAAAAQEsbQfvGG2+EcePGJUHs888/HzbeeONwwgknhPPPPz/sv//+IZVKhTPOOCP069cvXHzxxaG4uLjhWw4AAAAA0BJG0MaRsb/+9a/DXXfdFbp06VLjcS+++GK46qqrwmWXXRZOP/30+mwnAAAAAEDLDGg//vjj0Lp16+UeN3r06GRZunRpfbQNAAAAACCn1arEQW3C2ZU5HgAAAACgJarTJGHVeeKJJ5JJwzbccMOw884710+rAAAAAABagDoFtEcffXTo3r17MjlY9J///CfstddeYdSoUeHSSy8NF1xwQTjxxBMbqq0AAIQQ7r57WLj11jXr1Bennvpy+NGPpuo/AABojiUO0p5++umw+eabZ9Yvv/zycOGFF4bXXnst3HrrreH6669viDYCAFBJWVlenRYAAKAZj6A977zzkq9fffVVuO+++8KLL74YUqlUePXVV8PIkSPDb3/727B48eJkf/w+Ovvssxu25TRZqVTN+/L8fQgAK2377SeGrbaaVKfHtG9vElcAAGi2Ae1BBx2UfL3h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TgodOjTsB03z5xeGRx6p2K5DD40BbWgRvvyyY/LhfNqGG36X1fZArlmwoHV47bU+mfUBA+ZltT3Q1AhoAWpQVFSSzPhZWatWPomFpqB///nJpA/L07at0bNA01FWlh/+8pd16/SYDTb4rsED2i5disM++3xYYVtLui04htPp4Dz+3HfffX+2mwQ5pXfvBeG4497MrA8aNDer7YGmRkALUIMLLhivb6AJix+WmJEXaG7y8lJhzJjJdf7QuKHFgHavvT6ucf/HH3cJ//rXGlW2r7nmzLD77p+E5q5nz4Vh2LBZyffqlkP969JlSRg7tuFKGlTn1Vd7h9LSqiXr0lZbbVbo3n1xo7YJaiKgBQAAaCQFBalw8smvN7v+nju3TXj99R9uT04rKioNueBnP/s0WYDmYc6cwvDii/2qbB82bHayRFdcsUFYuLB1jec45ZRXwqabftug7YTaEtACAACwTIMHzwnHHfdGle29ei3Uc0CjizWjb7hhZJXtsVRLOqBdY42ZYfHimmOvjh2XNGgboS4EtNDA7r131VBcXHF2hcGD54ZNNpmi7wEAaBZ69lwcxo6dlO1mACTat18aNtnkm2rnKEg755yX9BbNhoAWGtg996wW5sxpU2UmXgEtAAAA1F3fvgvDqae+quvIGQJaaGBbbfVVWLSo4q/a6qt/f8sFAAAAsHKmTm0bpk9vm1kfMWJmyK95fjBocgS00MAOOugDfUyjevDBVcJLL1WdxKNbt8XhxBOr1o4DAABozp54YnC48841Mut33XV/yM9PZbVNUBcCWoAc88037cN77/Wssr137wUh28aP7xv++MdRmfVjj30zbLyxeswAAMCKixN+9e8/TxfSbAloAXLM2LFfhTXXnFFle1FRaY2h6bPPDki+/9nPPqlzCY74+D/8YaMq2w8++L2w886fV9i2dGl+mDevMLNeUuK+IwCgaSgpyQt77LHLco+77baHQvv2JY3SJqB2dtnl82SB5kpAC5BjVl11TrLU1tdfdwwvvdQv+X6rrVZsduaysrwq21LV3FG04YZTw7XXPlmh7AIAUL1PPukSlixZuQ8z1WEEqOj55/uFr7/uUGHb9tt/ETp1WqKryBoBLUALt/76U5NbgqIhQ+bW+fExdL3ppkeqbG/bturIkjjapH37+SvYUgBoWf7whw3D1KntV+ocd975QMjPL6u3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ZERACwAAAACQkRYf0L755pvxpS99KXr27BmdOnWKYcOGxapVq+rP19bWxm233RZ9+vRJz1922WWxcePGBnNs3749Jk6cGCUlJdGtW7eYPHlyVFZWNhjzwgsvxOjRo6Njx44xYMCAuPvuuxvV8uCDD8bQoUPTMUkdixcvPoafHAAAAADIdy06oN2xY0eMGjUq2rdvH48++misXbs2Zs2aFd27d68fkwSpc+bMiblz58YzzzwTXbp0iU996lNRXV1dPyYJZ9esWRNLly6NRYsWxRNPPBHXXntt/fmKior45Cc/GQMHDozVq1fHj3/845gxY0bMmzevfszKlSvj6quvTsPd559/PsaNG5duL730UjPeEQAAAAAgnxTUJktQW6hbbrklVqxYEU8++WST55PS+/btGzfddFNMmzYtPVZeXh69evWK+fPnx4QJE2LdunVx+umnx3PPPRfnn39+OmbJkiXx6U9/Ot544430/T//+c/ju9/9brzzzjtRXFxcf+2FCxfG+vXr0/3x48dHVVVVGvDWufDCC2P48OFpOHwokiC4tLQ0rTFZzZtPkgC7rKws6zIAAAAAWowkBxozZkzkk3zOt7JSFC3YI488kq6Gveqqq2L58uXRr1+/uO666+JrX/taev7VV19NQ9WkrUGd5A9kxIgR8dRTT6UBbfKatDWoC2cTyfjCwsJ0xe3nP//5dMzHPvax+nA2kVz3rrvuSlfxJit2kzHf/va3G9SXjElC3A/y3nvvpduBf8CJvXv3pls+qampyboEAAAAgBYlWVyYbxlQvn2elqBFB7SbNm1KV7cmwej06dPTVbDf+ta30iD1mmuuScPZRLJi9kDJft255PXEE09scL6oqCh69OjRYMzJJ5/caI66c0lAm7x+2HWacscdd8QPfvCDRscfe+yx6Ny582HeDQAAAABak2SxXr49w2j37t1Zl5B3ilr6qsxk5evMmTPT/XPOOSft+Zq0FEgC2pbuO9/5ToNVt8k/yuQBZEm/23xbAp6sRv7Xv/6VdRkAAAAALUaS/1x88cWRT+q+IU4bCWj79OmT9o890GmnnRZ//OMf05979+6dvm7ZsiUdWyfZT3rD1o3ZunVrgzn27dsX27dvr39/8pq850B1+wcbU3e+KR06dEi3f5c89CzZ8knSMgIAAACA/1dQUJB3GVC+fZ6WoEWnaqNGjYoNGzY0OPbyyy/HwIED05+TtgRJQLps2bIGKX6ymvOiiy5K95PXnTt3xurVq+vHPP744+nq3KRXbd2YJ554okEPjaVLl8aQIUPS9gZ1Yw68Tt2YuusAAAAAAORVQHvjjTfG008/nbY4eOWVV+KBBx6IefPmxZQpU+r/F2Lq1Knxox/9KH2g2IsvvhiTJk2Kvn37xrhx4+pX3I4dOzZ9sNizzz4bK1asiOuvvz59gFgyLvHFL34x7Ws7efLkWLNmTfz+97+Pn/zkJw3aE9xwww2xZMmSmDVrVqxfvz5mzJgRq1atSucCAAAAAMi7FgcXXHBB/PnPf057uf7whz9MV8zOnj07Jk6cWD/m5ptvjqqqqrj22mvTlbJJX48kSO3YsWP9mAULFqRB6qWXXpp+Ff/KK6+MOXPm1J8vLS1NH9yVBL/nnXdeHH/88XHbbbelc9YZOXJkGhDfeuut6QPLPvKRj8TChQvjzDPPbMY7AgAAAADkk4La2trarItoK5L2C0kYXF5enncPCVu5cmWUlZVlXQYAAABAi5HkQGPGjIl8ks/5VlZadIsDAAAAAIB8JqAFAAAAAMhIi+5BCwAAAOTe+vXdY9u2To2Od+iwPy64YItbDtCMBLQAAADQxjzyyCmxcmW/RsePP353XHDB0kxqAmirBLQAAADQxpx00q6oqGj8oOfS0j2Z1APQlgloAQAAoI2ZMGFD1iUA8H88JAwAAAAAICMCWgAAAACAjAhoAQAAAAAyIqAFAAAAAMiIgBYAAAAAICMCWgAAAACAjAhoAQAAAAAyIqAFAAAAAMiIgBYAAAAAICMCWgAAAACAjAhoAQAAAAAyIqAFAAAAAMiIgBYAAAAAICMCWgAAAACAjAhoAQAAAAAyIqAFAAAAAMiIgBYAAAAAICMCWgAAAACAjAhoAQAAAAAyIqAFAAAAAMiIgBYAAAAAICMCWgAAAACAjAhoAQAAAAAyIqAFAAAAAMiIgBYAAAAAICMCWgAAAACAjAhoAQAAAAAyIqAFAAAAAMiIgBYAAAAAICNFWV24LaqtrU1fKyoqIt9UVVXF7t27sy4DAAAAoMUoKirKuxyo7vPU5VwcPQFtM9q1a1f6OmDAgOa8LAAAAADkPOcqLS11V3OgoFbc3WxqamrirbfeiuOOOy4KCgoin0ycODEWLVqUdRkAAAAALcaoUaNi8eLFkU+SKDEJZ/v27RuFhbqn5oIVtM0o+aPt379/5KP27dtnXQIAAABAi2txUFJSEvnGytncEnMDAAAAAGREQAsAAAAAkBEBLTkxevRodxIAAADgAB//+MfdDw7KQ8IAAAAAADJiBS0AAAAAQEYEtAAAAAAAGRHQAgAAAABkpCjXExYUFOR6SgAAAACAVqG2tja7FbTCWQAAAACgLSs4zAWsWhwAAAAAAGQkZwHtT3/601xNBQAAAADQat15552HPLag9nCbInyA3r17x5YtW3IxFQAAAABAq9W/f/94/fXXD2msFgcAAAAAABnJWUB766235moqAAAAAIBWa8qUKc3f4uBInlAGAAAAAJBvDidy1eIAAAAAACAjOQ1oc7gYFwAAAACg1TncjLQo6wIAAAAAANoqLQ4AAAAAADIioAUAAAAAyIiAFgAAAAAgIwJaAAAAAICMCGgBAAAAADIioAUAAAAAyIiAFgAAAAAgIwJaAAAAAICMCGgBAAAAADIioAUAoMX58pe/HAUFBenWvn376NWrV1x++eXxi1/8Impqag55nvnz50e3bt2Oaa0AAHA0BLQAALRIY8eOjbfffjtee+21ePTRR+OSSy6JG264IT772c/Gvn37si4PAAByQkALAECL1KFDh+jdu3f069cvzj333Jg+fXo8/PDDaVibrIxN3HPPPTFs2LDo0qVLDBgwIK677rqorKxMz/3tb3+Lr3zlK1FeXl6/GnfGjBnpuffeey+mTZuWzp28d8SIEel4AABobgJaAABajU984hNx9tlnx5/+9Kd0v7CwMObMmRNr1qyJX/3qV/H444/HzTffnJ4bOXJkzJ49O0pKStKVuMmWhLKJ66+/Pp566qn43e9+Fy+88EJcddVV6YrdjRs3Zvr5AABoewpqa2trsy4CAAD+vQftzp07Y+HChY1uzIQJE9JQde3atY3OPfTQQ/H1r389tm3blu4nK22nTp2azlVn8+bNMXjw4PS1b9++9ccvu+yy+OhHPxozZ870ywAAoNkUNd+lAADg6CXrC5J2BYm//OUvcccdd8T69eujoqIi7U1bXV0du3fvjs6dOzf5/hdffDH2798fp556aoPjSduDnj17+hUBANCsBLQAALQq69ati5NPPjl9eFjywLBvfOMbcfvtt0ePHj3i73//e0yePDn27NnzgQFt0qO2Xbt2sXr16vT1QF27dm2mTwEAAO8T0AIA0GokPWaTFbA33nhjGrDW1NTErFmz0l60iT/84Q8NxhcXF6erZQ90zjnnpMe2bt0ao0ePbtb6AQDg3wloAQBokZKWA++8804apm7ZsiWWLFmStjNIVs1OmjQpXnrppdi7d2/cd999ccUVV8SKFSti7ty5DeYYNGhQumJ22bJl6cPFklW1SWuDiRMnpnMk4W4S2JaVlaVjzjrrrPjMZz6T2WcGAKDteX+pAQAAtDBJINunT580ZB07dmz89a9/jTlz5sTDDz+ctiZIAtd77rkn7rrrrjjzzDNjwYIFaYB7oJEjR6YPDRs/fnyccMIJcffdd6fHf/nLX6YB7U033RRDhgyJcePGxXPPPRcnnXRSRp8WAIC2qqA2ecoCAAAAAADNzgpaAAAAAICMCGgBAAAAADIioAUAAAAAyIiAFgAAAAAgIwJaAAAAAICMCGgBAAAAADIioAUAAAAAyIiAFgAAAAAgIwJaAAAAAICMCGgBAAAAADIioAUAAAAAyIiAFgAAAAAgsvG/s+09UD8M6lMAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 1400x800 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# 8. PLOT EQUITY CURVE\n",
"plt.figure(figsize=(14, 8))\n",
"plt.plot(df['timestamp'], df['equity'], label='Equity Curve', color='blue')\n",
"plt.fill_between(df['timestamp'], df['equity'], df['peak'], where=df['drawdown'] < 0, color='red', alpha=0.3, label='Drawdown')\n",
"plt.title('Equity Curve - Long-Only + 10-Min Cooldown (20 Contracts)')\n",
"plt.ylabel('Equity ($)')\n",
"plt.xlabel('Date')\n",
"plt.legend()\n",
"plt.grid(True)\n",
"plt.tight_layout()\n",
"# plt.savefig('/Users/kumar.ghosh/kgtest/lemaske/backtest_es_long_only_cooldown_equity_curve05nov2025.png', dpi=150)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "db4d7527",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.14.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment