Add training workflow, datasets, and runbook

This commit is contained in:
2025-12-23 21:17:22 -08:00
commit 619e87aacc
2140 changed files with 2513895 additions and 0 deletions

16
.gitignore vendored Normal file
View File

@@ -0,0 +1,16 @@
.venv/
eBooks/
_llama_cpp/
__pycache__/
**/__pycache__/
*.pyc
.pytest_cache/
.mypy_cache/
.ruff_cache/
.idea/
.vscode/
*.log
*.tmp
*.bak
Thumbs.db
.DS_Store

618
AGENTS.md Normal file
View File

@@ -0,0 +1,618 @@
# AGENTS.md - ingest-ebook-options Runbook (Deep Context + Retrain Guide)
This file captures the full context, decisions, failures, fixes, commands, and
paths used to fine-tune gpt-oss-20b and deploy it into Ollama as
`trained-options-model`. It is meant to be a literal step-by-step recipe for
retraining with new data. Read this end-to-end before touching anything.
------------------------------------------------------------------------------
## 0) Hard Requirements (User Directives)
- Use local documents in this repo only.
- Dedupe repeated docs across formats; do not ingest duplicates.
- Manually remove non-relevant ebook content (preface, index, author/publisher
pages, etc). Options-trading content only.
- Use GPU heavily (not CPU).
- If local AMD 7900XTX is not available, use the remote NVIDIA box.
- All long-running tasks must show progress and **post progress at least every
2 minutes** (print progress or size updates, not silent).
- Retraining must complete locally (no cloud).
- Final Ollama model name must be **trained-options-model**.
- Final Ollama model **must support tool/function calls**.
- Any destructive commands must require explicit approval (do not run them
silently).
------------------------------------------------------------------------------
## 1) Machines, OS, Access, and Credentials
### Local Windows
- Repo path: `C:\Users\Rushabh\projects\ingest-ebook-options`
- Local AMD GPU: 7900XTX (not used here; remote NVIDIA box was used instead).
- Local Ollama install exists but was not used for training.
### Remote TrueNAS SCALE (Used for Training + Ollama)
- Host: `192.168.1.2`
- SSH port: `55555`
- User: `rushabh`
- Password: none required (key-based / no password).
- SSH example:
- `ssh -p 55555 rushabh@192.168.1.2`
- Ollama HTTP endpoint (remote): `http://192.168.1.2:30068`
### TrueNAS UI / middlewared
- User explicitly required: create and manage containers as TrueNAS Apps
(middlewared/TrueNAS UI), not ad-hoc docker only.
- If an app does not show in UI, check middlewared and re-create via UI.
------------------------------------------------------------------------------
## 2) Storage Layout and Mounts (Critical)
### Remote TrueNAS storage root
- `/mnt/fast.storage.rushg.me/datasets/apps`
### Remote training workspace (folder, not ZFS dataset)
- `/mnt/fast.storage.rushg.me/datasets/apps/pytorch`
- IMPORTANT: user requested a folder, not a ZFS dataset.
### Repo copy on remote
- `/mnt/fast.storage.rushg.me/datasets/apps/pytorch/ingest-ebook-options`
### Ollama model storage mount (remote)
- Host path: `/mnt/fast.storage.rushg.me/datasets/apps/ollama.models`
- Container path: `/root/.ollama`
- Actual model store:
- `/mnt/fast.storage.rushg.me/datasets/apps/ollama.models/models`
- `/mnt/fast.storage.rushg.me/datasets/apps/ollama.models/models/blobs`
- `/mnt/fast.storage.rushg.me/datasets/apps/ollama.models/models/manifests`
### Ollama imports folder (created by us)
- `/mnt/fast.storage.rushg.me/datasets/apps/ollama.models/imports`
### Hugging Face cache (remote)
- `/mnt/fast.storage.rushg.me/datasets/apps/pytorch/ingest-ebook-options/hf_cache`
- When retraining, set `HF_HOME` or `HF_HUB_CACHE` to this path to keep downloads
on fast storage and avoid redownloading.
------------------------------------------------------------------------------
## 3) TrueNAS App Setup (GPU Training + Ollama)
### Ollama App
- Container name: `ix-ollama-ollama-1`
- Exposes: `0.0.0.0:30068`
- GPU: NVIDIA RTX 5060 Ti (16 GB VRAM)
- Observed Ollama version: 0.13.5
- Uses `/root/.ollama` mapped to `/mnt/fast.storage.rushg.me/datasets/apps/ollama.models`
### Training App (Created in TrueNAS UI)
- App name: `options-train`
- GPU: NVIDIA RTX 5060 Ti
- Reason: user demanded TrueNAS UI app creation; also to ensure GPU access.
- We explicitly stopped the `llamacpp` app to free GPU before training.
### Docker permission note
- Non-root user lacks docker socket permission.
- Use `sudo -n docker ...` for all docker commands on the host.
### Shell note (remote)
- Default shell is `zsh`.
- Use `bash -lc '...'` to avoid quote parsing issues and missing tools.
- `rg` is not installed on remote; use `grep`/`find`.
------------------------------------------------------------------------------
## 4) Data Prep Pipeline (Dedup + Manual Relevance)
### Source docs
- Local docs in `eBooks/` (PDF/EPUB/etc).
- Must **manually** select relevant pages (options trading content only).
- Skip: prefaces, index, author/publisher info, boilerplate, etc.
### Step A - Extract full text and doc-level dedupe
Script: `tools/extract_corpus.py`
- Supports .pdf/.epub/.txt/.md
- Dedup by SHA256 of normalized text across different formats.
- Outputs:
- `training_data/manifest.json`
- `training_data/corpus.txt`
- `training_data/text/*.txt`
- `training_data/rejected.json`
Example:
```
python tools/extract_corpus.py --input eBooks --out training_data --min-chars 2000
```
Dependencies:
- `pypdf`, `ebooklib`, `beautifulsoup4`, `lxml`, `chardet`
### Step B - Page/section relevance filtering (Options-focused)
Script: `tools/select_relevant.py`
- Scores segments for options-trading keywords.
- Drops TOC/index/front matter.
- Dedupe by SHA256 of normalized segment.
- Includes neighboring pages by `--neighbors`.
Outputs in `training_data/relevant`:
- `text/*.txt`
- `manifest.json`
- `report.csv`
- `corpus.txt`
Example:
```
python tools/select_relevant.py --input eBooks --out training_data/relevant \
--min-score 10 --min-chars 800 --neighbors 1
```
### Step C - Chunk to JSONL dataset
Script: `tools/build_dataset.py`
- Splits into overlapping chunks.
- Optional junk filter and keyword score.
Outputs:
- `training_data/relevant/dataset.jsonl`
- `training_data/relevant/dataset.stats.json`
Example:
```
python tools/build_dataset.py \
--manifest training_data/relevant/manifest.json \
--text-dir training_data/relevant/text \
--out training_data/curated/dataset.jsonl \
--chunk-chars 6000 --overlap-chars 400 --min-chars 1200 --drop-junk
```
### Manual curation requirement
- The scripts are helper filters only. You must still **manually review** for
relevance, especially to remove prefaces, indexes, disclaimers, etc.
- Use `training_data/relevant/corpus.txt` to scan human-readable content.
### Dataset used in this run
- Remote dataset path:
`/mnt/fast.storage.rushg.me/datasets/apps/pytorch/ingest-ebook-options/training_data/curated/dataset.jsonl`
- Count: 1778 chunks.
------------------------------------------------------------------------------
## 5) Training Pipeline (LoRA fine-tune on NVIDIA box)
### Why local AMD GPU was not used
- User explicitly requested the remote NVIDIA box.
- Local AMD 7900XTX was not used in this run.
### Training script (repo)
- `tools/finetune_lora.py`
- Modified to fix gradient checkpointing + LoRA:
- `model.enable_input_require_grads()` is required.
- Without it, MXFP4 path fails with:
`RuntimeError: element 0 of tensors does not require grad...`
### Key training args used
- `--model openai/gpt-oss-20b`
- `--data training_data/curated/dataset.jsonl`
- `--out training_data/lora_adapter`
- `--max-length 256`
- `--epochs 1` (adjust as needed)
- `--lora-r 8 --lora-alpha 16 --lora-dropout 0.05`
- `--grad-accum 4`
- `--quant auto` (MXFP4 on GPU)
- `--log-seconds 120` (must show progress every 2 minutes)
- `--log-steps 10` (extra progress)
### Progress requirement (must follow)
- Use `--log-seconds 120` so training prints logs every ~2 minutes.
- For long copies or merges, print `date` + file size in a loop every 120 sec.
### GPU requirements
- NVIDIA GPU required for quantized loading; MXFP4 needs GPU.
- GPU observed: RTX 5060 Ti, 16 GB VRAM, CUDA 12.8.
### What failed and how we fixed it
1) **MXFP4 grad error**
- Error: `RuntimeError: element 0 of tensors does not require grad`
- Fix: In `tools/finetune_lora.py`, after
`model.gradient_checkpointing_enable()` add:
`model.enable_input_require_grads()`
2) **Bitsandbytes 4-bit OOM**
- With `--quant 4bit` the model OOMed even with max memory limits.
- CPU offload not supported with this setup; still OOM.
- Fix: use `--quant auto` (MXFP4) instead.
3) **Triton/compile issues**
- Triton kernels required a compiler in the container.
- Fix: Use a PyTorch **CUDA devel** image (not runtime) or install
`build-essential` inside the container.
### Output artifacts (LoRA)
`training_data/lora_adapter/` contains:
- `adapter_model.safetensors`
- `adapter_config.json`
- `tokenizer.json`, `tokenizer_config.json`, `special_tokens_map.json`
- `training_summary.json` (includes steps and loss EMA)
------------------------------------------------------------------------------
## 6) GGUF Conversion and Merge (Required; Ollama LoRA not supported)
### Why merge is required
- Ollama error when using ADAPTER:
`Error: 500 Internal Server Error: failed to initialize model: loras are not yet implemented`
- Therefore, must merge LoRA into base GGUF.
### llama.cpp setup (remote)
- Clone location: `/mnt/fast.storage.rushg.me/datasets/apps/pytorch/llama.cpp`
- Build:
```
cd /mnt/fast.storage.rushg.me/datasets/apps/pytorch/llama.cpp
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DLLAMA_CURL=OFF
cmake --build build -j $(nproc)
```
- Note: `-DLLAMA_CURL=OFF` used due to missing libcurl.
- Binaries:
- `build/bin/llama-export-lora`
- `build/bin/llama-gguf`
- When running, set:
- `LD_LIBRARY_PATH=/mnt/.../llama.cpp/build/bin`
### Convert LoRA to GGUF
Use `convert_lora_to_gguf.py`:
```
python convert_lora_to_gguf.py \
--lora /path/to/training_data/lora_adapter \
--outfile /path/to/training_data/lora_adapter/options-lora.gguf
```
### Architecture mismatch pitfall (critical)
- Base GGUF from Ollama uses `general.architecture = gptoss`
- LoRA GGUF from converter uses `general.architecture = gpt-oss`
- `llama-export-lora` throws:
`model arch and LoRA arch mismatch`
### Fix: rewrite LoRA GGUF metadata to `gptoss`
We used `gguf-py` to rewrite metadata. Example (run inside a Python container):
```
from gguf import GGUFReader, GGUFWriter, GGUFValueType
import numpy as np
inp = "options-lora.gguf"
out = "options-lora-gptoss.gguf"
r = GGUFReader(inp)
w = GGUFWriter(out, "gptoss", endianess=r.endianess)
# Copy KV fields except general.architecture
for key, field in r.fields.items():
if key.startswith("GGUF.") or key in ("general.architecture", "general.alignment"):
continue
vtype = field.types[0]
if vtype == GGUFValueType.ARRAY:
w.add_key_value(key, field.contents(), vtype, field.types[-1])
else:
w.add_key_value(key, field.contents(), vtype)
# Copy tensors
for t in r.tensors:
data = t.data
if not data.flags["C_CONTIGUOUS"]:
data = np.ascontiguousarray(data)
w.add_tensor(t.name, data, raw_shape=list(map(int, t.shape)),
raw_dtype=t.tensor_type, tensor_endianess=r.endianess)
```
### Tensor orientation mismatch (critical)
- After arch fix, merge failed with:
`GGML_ASSERT(ggml_can_mul_mat(a, b)) failed`
- Root cause: LoRA A/B tensors had orientation incompatible with base GGUF.
- Fix: transpose LoRA A and B **data** when re-serializing GGUF.
**Important GGUF detail:**
- GGUF stores tensor dims reversed internally.
- You must transpose the data while keeping the *original raw_shape*.
- Working approach:
```
if name.endswith(".lora_a") or name.endswith(".lora_b"):
data = np.ascontiguousarray(data.T)
w.add_tensor(name, data, raw_shape=shape, raw_dtype=..., ...)
```
### Working LoRA GGUF for merge
- `options-lora-gptoss-transposed2.gguf`
### Merge LoRA into base GGUF
Base GGUF path (from Ollama blob):
`/mnt/fast.storage.rushg.me/datasets/apps/ollama.models/models/blobs/sha256-e7b273f9636059a689e3ddcab3716e4f65abe0143ac978e46673ad0e52d09efb`
Merge command:
```
export LD_LIBRARY_PATH=/mnt/.../llama.cpp/build/bin
/mnt/.../llama.cpp/build/bin/llama-export-lora \
-m /mnt/.../ollama.models/models/blobs/sha256-e7b273f9636059a689e3ddcab3716e4f65abe0143ac978e46673ad0e52d09efb \
--lora /mnt/.../training_data/lora_adapter/options-lora-gptoss-transposed2.gguf \
-o /mnt/.../training_data/lora_adapter/gpt-oss-20b-options-merged-f16-v3.gguf
```
### Merged output (final)
- `/mnt/fast.storage.rushg.me/datasets/apps/pytorch/ingest-ebook-options/training_data/lora_adapter/gpt-oss-20b-options-merged-f16-v3.gguf`
- Size: ~13 GB
- File type: F16
### Intermediate artifacts kept (not deleted)
- `options-lora-gptoss.gguf`
- `options-lora-gptoss-transposed.gguf`
- `options-lora-gptoss-transposed-debug.gguf`
- `options-lora-gptoss-transposed2.gguf`
- `gpt-oss-20b-options-merged-f16-v2.gguf` (14 MB, failed)
- `gpt-oss-20b-options-merged-f16.gguf` (0 bytes, failed)
------------------------------------------------------------------------------
## 7) Ollama Integration (Final Model)
### Why ADAPTER does not work
Modelfile with ADAPTER fails:
```
Error: 500 Internal Server Error: failed to initialize model: loras are not yet implemented
```
Therefore, merged GGUF is mandatory.
### Copy merged GGUF into Ollama imports
```
mkdir -p /mnt/fast.storage.rushg.me/datasets/apps/ollama.models/imports
cp /mnt/.../gpt-oss-20b-options-merged-f16-v3.gguf \
/mnt/fast.storage.rushg.me/datasets/apps/ollama.models/imports/
```
### Modelfile (with tool support)
**Important:** tools only work if the TEMPLATE block matches the base model
template. Without TEMPLATE, Ollama shows `{{ .Prompt }}` and tools are disabled.
We extracted template from base:
```
sudo -n docker exec -i ix-ollama-ollama-1 ollama show gpt-oss:20b --template \
> /mnt/fast.storage.rushg.me/datasets/apps/ollama.models/imports/gptoss.template
```
Then built Modelfile:
`/mnt/fast.storage.rushg.me/datasets/apps/ollama.models/imports/Modelfile.trained-options-model`
```
FROM /root/.ollama/imports/gpt-oss-20b-options-merged-f16-v3.gguf
TEMPLATE """
<paste full gpt-oss:20b template here>
"""
SYSTEM """You are a knowledgeable options trading assistant.
Explain concepts clearly, use correct terminology (Greeks, volatility, spreads, assignment), and be explicit about assumptions.
If information is uncertain, say so rather than guessing."""
```
### Create the model
```
sudo -n docker exec -i ix-ollama-ollama-1 \
ollama create trained-options-model -f /root/.ollama/imports/Modelfile.trained-options-model
```
### Verify in Ollama
```
sudo -n docker exec -i ix-ollama-ollama-1 ollama list
sudo -n docker exec -i ix-ollama-ollama-1 ollama show trained-options-model
```
Expected capabilities include: `completion`, `tools`, `thinking`.
### Runtime note
- `ollama run` can take a long time to load and may time out.
- Use HTTP API for reliable results:
```
curl http://192.168.1.2:30068/api/generate -d '{
"model":"trained-options-model:latest",
"prompt":"Explain delta and gamma briefly.",
"stream":false
}'
```
------------------------------------------------------------------------------
## 8) Tool/Function Call Requirement (Mandatory)
### How to verify tool support
1) `ollama show trained-options-model` should list `tools` in Capabilities.
2) `ollama show trained-options-model --template` should show the full template
(not `{{ .Prompt }}`).
### Tool-call test (HTTP)
```
curl http://192.168.1.2:30068/api/chat -d '{
"model":"trained-options-model:latest",
"stream":false,
"messages":[
{"role":"system","content":"Use tools when available."},
{"role":"user","content":"Compute total for quantity=3 price=4. Use tool."}
],
"tools":[
{"type":"function","function":{
"name":"calc_total",
"description":"Compute total cost for a trade",
"parameters":{
"type":"object",
"properties":{"quantity":{"type":"number"},"price":{"type":"number"}},
"required":["quantity","price"]
}
}}
]
}'
```
Expected: `tool_calls` in response.
------------------------------------------------------------------------------
## 9) Known Failures + Fixes (Summary)
- **Ollama ADAPTER fails** -> Merge LoRA into GGUF.
- **Arch mismatch** (`gpt-oss` vs `gptoss`) -> Rewrite LoRA metadata.
- **ggml_can_mul_mat assertion** -> Transpose LoRA A/B data.
- **MXFP4 gradient error** -> `model.enable_input_require_grads()`.
- **Bitsandbytes 4-bit OOM** -> Use MXFP4 auto on GPU.
- **Triton compile error** -> Use PyTorch CUDA *devel* image or install gcc.
- **WSL convert_lora_to_gguf.py missing transformers** -> Use docker or install
transformers in WSL.
- **`ollama run` hangs** -> Use `/api/generate` or `/api/chat` via curl.
------------------------------------------------------------------------------
## 10) Retrain Checklist (Minimal Friction)
1) **Prepare data locally**
- Put docs in `eBooks/`.
- Run:
- `python tools/select_relevant.py ...`
- `python tools/build_dataset.py ...`
- Manually inspect `training_data/relevant/corpus.txt`.
2) **Sync to remote**
- Example (PowerShell):
- `scp -P 55555 -r .\ingest-ebook-options rushabh@192.168.1.2:/mnt/fast.storage.rushg.me/datasets/apps/pytorch/`
3) **Stop GPU-conflicting apps**
- Stop `llamacpp` app in TrueNAS UI.
4) **Train LoRA in TrueNAS app**
- Ensure GPU attached.
- Use `tools/finetune_lora.py` with `--log-seconds 120`.
- Confirm adapter saved in `training_data/lora_adapter`.
5) **Convert LoRA to GGUF**
- `convert_lora_to_gguf.py` -> `options-lora.gguf`
6) **Fix arch + transpose**
- Rewrite to `gptoss`
- Transpose LoRA A/B data
- Output `options-lora-gptoss-transposed2.gguf`
7) **Merge into base GGUF**
- Use `llama-export-lora`
- Output `gpt-oss-20b-options-merged-f16-v3.gguf`
8) **Ollama import**
- Copy GGUF to `/mnt/.../ollama.models/imports`
- Build Modelfile with TEMPLATE
- `ollama create trained-options-model -f ...`
9) **Verify tool support**
- `ollama show trained-options-model`
- `/api/chat` tool-call test
------------------------------------------------------------------------------
## 11) Commands Used in This Run (Examples)
### Remote file listing (progress + verify)
```
ssh -p 55555 rushabh@192.168.1.2 "ls -la /mnt/fast.storage.rushg.me/datasets/apps/pytorch/ingest-ebook-options/training_data/lora_adapter"
```
### GGUF metadata check
```
python - <<'PY'
from gguf import GGUFReader
r = GGUFReader("options-lora.gguf")
print(r.get_field("general.architecture").contents())
PY
```
### Merge with progress updates every 2 minutes
```
BASE=/mnt/.../ollama.models/models/blobs/<base-blob>
LORA=/mnt/.../options-lora-gptoss-transposed2.gguf
OUT=/mnt/.../gpt-oss-20b-options-merged-f16-v3.gguf
export LD_LIBRARY_PATH=/mnt/.../llama.cpp/build/bin
/mnt/.../llama-export-lora -m "$BASE" --lora "$LORA" -o "$OUT" &
pid=$!
while kill -0 $pid 2>/dev/null; do date; ls -lh "$OUT" || true; sleep 120; done
wait $pid
```
------------------------------------------------------------------------------
## 12) Notes About Local Files in This Repo
- `Modelfile.trained-options-model` (local) still references ADAPTER and is
**not** valid for current Ollama (ADAPTER unsupported).
- Use the remote Modelfile in `/mnt/.../ollama.models/imports/`.
- `_tmp_*` scripts exist for prior automation attempts (TrueNAS app creation,
GPU checks, etc). Use only if you know what they do.
------------------------------------------------------------------------------
## 13) Progress Reporting Policy (Non-Negotiable)
During any long run (training, merge, large copy):
- Print a progress line every 120 seconds.
- Example: `date` + file size, or a training loss line.
- Do not allow silent runs.
------------------------------------------------------------------------------
## 14) Quick Sanity Checks (After Retrain)
1) `ollama list` shows `trained-options-model:latest`
2) `ollama show trained-options-model` lists `tools`
3) `/api/generate` returns a coherent answer
4) `/api/chat` returns a tool call when tools are provided
------------------------------------------------------------------------------
## 15) Do NOT Forget These Pitfalls
- Arch mismatch (`gpt-oss` vs `gptoss`) **will break merge**.
- LoRA tensor orientation mismatch **will break merge**.
- ADAPTER in Modelfile **does not work** in current Ollama.
- Tool calls **only** work if TEMPLATE is included.
- Remote shell is zsh; use `bash -lc` for complex quoting.
- Docker requires `sudo -n`.
- Use the remote GPU as requested; do not train on CPU.
------------------------------------------------------------------------------
## 16) Current "Final" Artifacts (Reference)
### LoRA adapter
`/mnt/fast.storage.rushg.me/datasets/apps/pytorch/ingest-ebook-options/training_data/lora_adapter/`
### Merged GGUF (final)
`/mnt/fast.storage.rushg.me/datasets/apps/pytorch/ingest-ebook-options/training_data/lora_adapter/gpt-oss-20b-options-merged-f16-v3.gguf`
### Ollama Modelfile
`/mnt/fast.storage.rushg.me/datasets/apps/ollama.models/imports/Modelfile.trained-options-model`
### Ollama Model Name
`trained-options-model:latest`
------------------------------------------------------------------------------
## 17) If You Need to Rebuild Tools Support
1) Extract base template:
```
sudo -n docker exec -i ix-ollama-ollama-1 \
ollama show gpt-oss:20b --template > /mnt/.../gptoss.template
```
2) Create Modelfile with TEMPLATE block.
3) Re-run `ollama create`.
4) Verify `ollama show trained-options-model` lists `tools`.
------------------------------------------------------------------------------
## 18) Git Repo + Source Inventory (This Repo)
### Remote git repo
- URL (HTTP): `https://git.rushg.me/rushabh/ollama-model-training-5060ti`
- URL (git): `https://git.rushg.me/rushabh/ollama-model-training-5060ti.git`
- Auth: user will authenticate on push when prompted (username/password).
### What is committed (and why)
- `AGENTS.md` (this runbook; full end-to-end context).
- `README.md` (quick overview + links to AGENTS).
- `tools/` scripts for extraction, filtering, dataset build, and training.
- `training_data/` curated dataset, manifests, reports, and LoRA outputs used
for the run (kept for reproducibility).
- `remote/ollama/Modelfile.trained-options-model.remote` (exact remote Modelfile
used to enable tools).
- `remote/ollama/gptoss.template` (base template pulled from gpt-oss:20b).
- `Modelfile.trained-options-model` (local reference; see remote Modelfile for
tool-enabled version).
### What is excluded (and why)
- `eBooks/` raw source data (large; keep local and private).
- `_llama_cpp/` (upstream repo; clone on demand).
- `.venv/` and Python caches.
- Any base model weights or Ollama blobs (too large; download via Ollama/HF).
### How to recreate missing external assets
- Base model:
- `ollama pull gpt-oss:20b` on the Ollama host
- or `huggingface-cli download openai/gpt-oss-20b` into HF cache
- llama.cpp:
- `git clone https://github.com/ggml-org/llama.cpp.git`
- build with `-DLLAMA_CURL=OFF` if libcurl is missing.
------------------------------------------------------------------------------
End of AGENTS.md

View File

@@ -0,0 +1,7 @@
FROM gpt-oss:20b
ADAPTER ./training_data/lora_adapter/options-lora.gguf
SYSTEM """You are a knowledgeable options trading assistant.
Explain concepts clearly, use correct terminology (Greeks, volatility, spreads, assignment), and be explicit about assumptions.
If information is uncertain, say so rather than guessing."""

30
README.md Normal file
View File

@@ -0,0 +1,30 @@
# Ollama gpt-oss-20b Options Training (RTX 5060 Ti)
This repo contains the full workflow, scripts, and runbook to fine-tune
`openai/gpt-oss-20b` on options-trading ebooks and deploy the merged model into
Ollama as `trained-options-model` on a TrueNAS SCALE box with an NVIDIA GPU.
Start here: `AGENTS.md` (detailed step-by-step, failures, fixes, commands, and
paths).
## Contents
- `tools/` scripts for extraction, relevance filtering, dataset building, and
LoRA fine-tuning.
- `training_data/` curated dataset + LoRA outputs used for training.
- `remote/ollama/` copies of the remote Modelfile and template used to enable
tool calls in Ollama.
- `Modelfile.trained-options-model` (local reference; see AGENTS for the exact
remote Modelfile used).
## What is NOT included
- Raw ebooks (`eBooks/`) are intentionally excluded.
- Base model weights are not committed; download via Ollama or Hugging Face as
described in `AGENTS.md`.
## Quick pointers
- Training runs on TrueNAS SCALE (GPU via TrueNAS Apps/middlewared).
- Ollama runs in a TrueNAS App and stores models under
`/mnt/fast.storage.rushg.me/datasets/apps/ollama.models`.
- Tool-call support requires the correct TEMPLATE block (see `remote/ollama`).
For full instructions and exact commands, see `AGENTS.md`.

View File

@@ -0,0 +1,179 @@
FROM /root/.ollama/imports/gpt-oss-20b-options-merged-f16-v3.gguf
TEMPLATE """
<|start|>system<|message|>You are ChatGPT, a large language model trained by OpenAI.
Knowledge cutoff: 2024-06
Current date: {{ currentDate }}
{{- if and .IsThinkSet .Think (ne .ThinkLevel "") }}
Reasoning: {{ .ThinkLevel }}
{{- else if or (not .IsThinkSet) (and .IsThinkSet .Think) }}
Reasoning: medium
{{- end }}
{{- $hasNonBuiltinTools := false }}
{{- if .Tools -}}
{{- $hasBrowserSearch := false }}
{{- $hasBrowserOpen := false }}
{{- $hasBrowserFind := false }}
{{- $hasPython := false }}
{{- range .Tools }}
{{- if eq .Function.Name "browser.search" -}}{{- $hasBrowserSearch = true -}}
{{- else if eq .Function.Name "browser.open" -}}{{- $hasBrowserOpen = true -}}
{{- else if eq .Function.Name "browser.find" -}}{{- $hasBrowserFind = true -}}
{{- else if eq .Function.Name "python" -}}{{- $hasPython = true -}}
{{- else }}{{ $hasNonBuiltinTools = true -}}
{{- end }}
{{- end }}
{{- if or $hasBrowserSearch $hasBrowserOpen $hasBrowserFind $hasPython }}
# Tools
{{- if or $hasBrowserSearch $hasBrowserOpen $hasBrowserFind }}
## browser
// Tool for browsing.
// The `cursor` appears in brackets before each browsing display: `[{cursor}]`.
// Cite information from the tool using the following format:
// `【{cursor}†L{line_start}(-L{line_end})?】`, for example: `【6†L9-L11】` or `【8†L3】`.
// Do not quote more than 10 words directly from the tool output.
// sources=web (default: web)
namespace browser {
{{- if $hasBrowserSearch }}
// Searches for information related to `query` and displays `topn` results.
type search = (_: {
query: string,
topn?: number, // default: 10
source?: string,
}) => any;
{{- end }}
{{- if $hasBrowserOpen }}
// Opens the link `id` from the page indicated by `cursor` starting at line number `loc`, showing `num_lines` lines.
// Valid link ids are displayed with the formatting: `【{id}†.*】`.
// If `cursor` is not provided, the most recent page is implied.
// If `id` is a string, it is treated as a fully qualified URL associated with `source`.
// If `loc` is not provided, the viewport will be positioned at the beginning of the document or centered on the most relevant passage, if available.
// Use this function without `id` to scroll to a new location of an opened page.
type open = (_: {
id?: number | string, // default: -1
cursor?: number, // default: -1
loc?: number, // default: -1
num_lines?: number, // default: -1
view_source?: boolean, // default: false
source?: string,
}) => any;
{{- end }}
{{- if $hasBrowserFind }}
// Finds exact matches of `pattern` in the current page, or the page given by `cursor`.
type find = (_: {
pattern: string,
cursor?: number, // default: -1
}) => any;
{{- end }}
} // namespace browser
{{- end }}{{/* end if has browser tools */}}
{{- if $hasPython }}
## python
Use this tool to execute Python code in your chain of thought. The code will not be shown to the user. This tool should be used for internal reasoning, but not for code that is intended to be visible to the user (e.g. when creating plots, tables, or files).
When you send a message containing Python code to python, it will be executed in a stateful Jupyter notebook environment. python will respond with the output of the execution or time out after 120.0 seconds. The drive at '/mnt/data' can be used to save and persist user files. Internet access for this session is UNKNOWN. Depends on the cluster.
{{- end }}{{/* end if hasPython */}}
{{- end }}{{/* end if has any built-in tools */}}
{{- end }}{{/* end if .Tools */}}
# Valid channels: analysis, commentary, final. Channel must be included for every message.{{ if $hasNonBuiltinTools }}
Calls to these tools must go to the commentary channel: 'functions'.
{{- end -}}<|end|>{{/* end of system */ -}}
{{- if or $hasNonBuiltinTools .System -}}
<|start|>developer<|message|>{{- if $hasNonBuiltinTools }}# Tools
## functions
namespace functions {
{{- range .Tools }}
{{- if not (or (eq .Function.Name "browser.search") (eq .Function.Name "browser.open") (eq .Function.Name "browser.find") (eq .Function.Name "python")) }}
{{if .Function.Description }}
// {{ .Function.Description }}
{{- end }}
{{- if and .Function.Parameters.Properties (gt (len .Function.Parameters.Properties) 0) }}
type {{ .Function.Name }} = (_: {
{{- range $name, $prop := .Function.Parameters.Properties }}
{{- if $prop.Description }}
// {{ $prop.Description }}
{{- end }}
{{ $name }}: {{ $prop | toTypeScriptType }},
{{- end }}
}) => any;
{{- else }}
type {{ .Function.Name }} = () => any;
{{- end }}
{{- end }}{{/* end if not browser tool */}}
{{- end }}{{/* end of range .Tools */}}
} // namespace functions
{{- end }}{{/* end if hasNonBuiltinTools */}}
{{- if .System}}
# Instructions
{{ .System }}
{{- end -}}
<|end|>
{{- end -}}
{{- /* Find the index of the last user message */ -}}
{{- $lastUserIdx := -1 }}
{{- $prefillingContent := false }}
{{- $prefillingThinkingOnly := false }}
{{- range $i, $msg := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1 -}}
{{- if eq $msg.Role "user" }}
{{- $lastUserIdx = $i }}
{{- end -}}
{{- if and $last (eq $msg.Role "assistant") (gt (len $msg.Content) 0) }}
{{- $prefillingContent = true }}
{{- else if and $last (eq $msg.Role "assistant") (gt (len $msg.Thinking) 0) }}
{{- $prefillingThinkingOnly = true }}
{{- end }}
{{- end -}}
{{- /* Now render messages */ -}}
{{- range $i, $msg := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1 -}}
{{- if (ne $msg.Role "system") -}}
{{- if eq $msg.Role "tool" -}}
{{- if or (eq $msg.ToolName "python") (eq $msg.ToolName "browser.search") (eq $msg.ToolName "browser.open") (eq $msg.ToolName "browser.find") -}}
<|start|>{{ $msg.ToolName }} to=assistant<|message|>{{ $msg.Content }}<|end|>
{{- else -}}
<|start|>functions.{{ $msg.ToolName }} to=assistant<|message|>{{ $msg.Content }}<|end|>
{{- end -}}
{{- else if eq $msg.Role "assistant" -}}
{{- if and $msg.Thinking (gt $i $lastUserIdx) -}}{{- /* Show thinking only after last user message */ -}}
<|start|>assistant<|channel|>analysis<|message|>{{ $msg.Thinking }}{{- if not $prefillingThinkingOnly -}}<|end|>{{- end -}}
{{- end -}}
{{- if gt (len $msg.Content) 0 -}}
<|start|>assistant<|channel|>final<|message|>{{ $msg.Content }}{{- if not $prefillingContent -}}<|end|>{{- end -}}
{{- end -}}
{{- if gt (len $msg.ToolCalls) 0 -}}
{{- range $j, $toolCall := $msg.ToolCalls -}}
{{- $isBuiltin := or (eq $toolCall.Function.Name "python") (eq $toolCall.Function.Name "browser.search") (eq $toolCall.Function.Name "browser.open") (eq $toolCall.Function.Name "browser.find") -}}
<|start|>assistant<|channel|>{{ if $isBuiltin }}analysis{{ else }}commentary{{ end }} to={{ if not $isBuiltin}}functions.{{end}}{{ $toolCall.Function.Name }} <|constrain|>json<|message|>{{ $toolCall.Function.Arguments }}<|call|>
{{- end -}}
{{- end -}}
{{- else if eq $msg.Role "user" -}}
<|start|>{{ $msg.Role }}<|message|>{{ $msg.Content }}<|end|>
{{- end }}
{{- else }}
{{- end }}
{{- end -}}
{{- if not (or $prefillingContent $prefillingThinkingOnly) -}}
<|start|>assistant
{{- end -}}"""
SYSTEM """You are a knowledgeable options trading assistant.
Explain concepts clearly, use correct terminology (Greeks, volatility, spreads, assignment), and be explicit about assumptions.
If information is uncertain, say so rather than guessing."""

View File

@@ -0,0 +1,173 @@
<|start|>system<|message|>You are ChatGPT, a large language model trained by OpenAI.
Knowledge cutoff: 2024-06
Current date: {{ currentDate }}
{{- if and .IsThinkSet .Think (ne .ThinkLevel "") }}
Reasoning: {{ .ThinkLevel }}
{{- else if or (not .IsThinkSet) (and .IsThinkSet .Think) }}
Reasoning: medium
{{- end }}
{{- $hasNonBuiltinTools := false }}
{{- if .Tools -}}
{{- $hasBrowserSearch := false }}
{{- $hasBrowserOpen := false }}
{{- $hasBrowserFind := false }}
{{- $hasPython := false }}
{{- range .Tools }}
{{- if eq .Function.Name "browser.search" -}}{{- $hasBrowserSearch = true -}}
{{- else if eq .Function.Name "browser.open" -}}{{- $hasBrowserOpen = true -}}
{{- else if eq .Function.Name "browser.find" -}}{{- $hasBrowserFind = true -}}
{{- else if eq .Function.Name "python" -}}{{- $hasPython = true -}}
{{- else }}{{ $hasNonBuiltinTools = true -}}
{{- end }}
{{- end }}
{{- if or $hasBrowserSearch $hasBrowserOpen $hasBrowserFind $hasPython }}
# Tools
{{- if or $hasBrowserSearch $hasBrowserOpen $hasBrowserFind }}
## browser
// Tool for browsing.
// The `cursor` appears in brackets before each browsing display: `[{cursor}]`.
// Cite information from the tool using the following format:
// `【{cursor}†L{line_start}(-L{line_end})?】`, for example: `【6†L9-L11】` or `【8†L3】`.
// Do not quote more than 10 words directly from the tool output.
// sources=web (default: web)
namespace browser {
{{- if $hasBrowserSearch }}
// Searches for information related to `query` and displays `topn` results.
type search = (_: {
query: string,
topn?: number, // default: 10
source?: string,
}) => any;
{{- end }}
{{- if $hasBrowserOpen }}
// Opens the link `id` from the page indicated by `cursor` starting at line number `loc`, showing `num_lines` lines.
// Valid link ids are displayed with the formatting: `【{id}†.*】`.
// If `cursor` is not provided, the most recent page is implied.
// If `id` is a string, it is treated as a fully qualified URL associated with `source`.
// If `loc` is not provided, the viewport will be positioned at the beginning of the document or centered on the most relevant passage, if available.
// Use this function without `id` to scroll to a new location of an opened page.
type open = (_: {
id?: number | string, // default: -1
cursor?: number, // default: -1
loc?: number, // default: -1
num_lines?: number, // default: -1
view_source?: boolean, // default: false
source?: string,
}) => any;
{{- end }}
{{- if $hasBrowserFind }}
// Finds exact matches of `pattern` in the current page, or the page given by `cursor`.
type find = (_: {
pattern: string,
cursor?: number, // default: -1
}) => any;
{{- end }}
} // namespace browser
{{- end }}{{/* end if has browser tools */}}
{{- if $hasPython }}
## python
Use this tool to execute Python code in your chain of thought. The code will not be shown to the user. This tool should be used for internal reasoning, but not for code that is intended to be visible to the user (e.g. when creating plots, tables, or files).
When you send a message containing Python code to python, it will be executed in a stateful Jupyter notebook environment. python will respond with the output of the execution or time out after 120.0 seconds. The drive at '/mnt/data' can be used to save and persist user files. Internet access for this session is UNKNOWN. Depends on the cluster.
{{- end }}{{/* end if hasPython */}}
{{- end }}{{/* end if has any built-in tools */}}
{{- end }}{{/* end if .Tools */}}
# Valid channels: analysis, commentary, final. Channel must be included for every message.{{ if $hasNonBuiltinTools }}
Calls to these tools must go to the commentary channel: 'functions'.
{{- end -}}<|end|>{{/* end of system */ -}}
{{- if or $hasNonBuiltinTools .System -}}
<|start|>developer<|message|>{{- if $hasNonBuiltinTools }}# Tools
## functions
namespace functions {
{{- range .Tools }}
{{- if not (or (eq .Function.Name "browser.search") (eq .Function.Name "browser.open") (eq .Function.Name "browser.find") (eq .Function.Name "python")) }}
{{if .Function.Description }}
// {{ .Function.Description }}
{{- end }}
{{- if and .Function.Parameters.Properties (gt (len .Function.Parameters.Properties) 0) }}
type {{ .Function.Name }} = (_: {
{{- range $name, $prop := .Function.Parameters.Properties }}
{{- if $prop.Description }}
// {{ $prop.Description }}
{{- end }}
{{ $name }}: {{ $prop | toTypeScriptType }},
{{- end }}
}) => any;
{{- else }}
type {{ .Function.Name }} = () => any;
{{- end }}
{{- end }}{{/* end if not browser tool */}}
{{- end }}{{/* end of range .Tools */}}
} // namespace functions
{{- end }}{{/* end if hasNonBuiltinTools */}}
{{- if .System}}
# Instructions
{{ .System }}
{{- end -}}
<|end|>
{{- end -}}
{{- /* Find the index of the last user message */ -}}
{{- $lastUserIdx := -1 }}
{{- $prefillingContent := false }}
{{- $prefillingThinkingOnly := false }}
{{- range $i, $msg := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1 -}}
{{- if eq $msg.Role "user" }}
{{- $lastUserIdx = $i }}
{{- end -}}
{{- if and $last (eq $msg.Role "assistant") (gt (len $msg.Content) 0) }}
{{- $prefillingContent = true }}
{{- else if and $last (eq $msg.Role "assistant") (gt (len $msg.Thinking) 0) }}
{{- $prefillingThinkingOnly = true }}
{{- end }}
{{- end -}}
{{- /* Now render messages */ -}}
{{- range $i, $msg := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1 -}}
{{- if (ne $msg.Role "system") -}}
{{- if eq $msg.Role "tool" -}}
{{- if or (eq $msg.ToolName "python") (eq $msg.ToolName "browser.search") (eq $msg.ToolName "browser.open") (eq $msg.ToolName "browser.find") -}}
<|start|>{{ $msg.ToolName }} to=assistant<|message|>{{ $msg.Content }}<|end|>
{{- else -}}
<|start|>functions.{{ $msg.ToolName }} to=assistant<|message|>{{ $msg.Content }}<|end|>
{{- end -}}
{{- else if eq $msg.Role "assistant" -}}
{{- if and $msg.Thinking (gt $i $lastUserIdx) -}}{{- /* Show thinking only after last user message */ -}}
<|start|>assistant<|channel|>analysis<|message|>{{ $msg.Thinking }}{{- if not $prefillingThinkingOnly -}}<|end|>{{- end -}}
{{- end -}}
{{- if gt (len $msg.Content) 0 -}}
<|start|>assistant<|channel|>final<|message|>{{ $msg.Content }}{{- if not $prefillingContent -}}<|end|>{{- end -}}
{{- end -}}
{{- if gt (len $msg.ToolCalls) 0 -}}
{{- range $j, $toolCall := $msg.ToolCalls -}}
{{- $isBuiltin := or (eq $toolCall.Function.Name "python") (eq $toolCall.Function.Name "browser.search") (eq $toolCall.Function.Name "browser.open") (eq $toolCall.Function.Name "browser.find") -}}
<|start|>assistant<|channel|>{{ if $isBuiltin }}analysis{{ else }}commentary{{ end }} to={{ if not $isBuiltin}}functions.{{end}}{{ $toolCall.Function.Name }} <|constrain|>json<|message|>{{ $toolCall.Function.Arguments }}<|call|>
{{- end -}}
{{- end -}}
{{- else if eq $msg.Role "user" -}}
<|start|>{{ $msg.Role }}<|message|>{{ $msg.Content }}<|end|>
{{- end }}
{{- else }}
{{- end }}
{{- end -}}
{{- if not (or $prefillingContent $prefillingThinkingOnly) -}}
<|start|>assistant
{{- end -}}

226
tools/build_dataset.py Normal file
View File

@@ -0,0 +1,226 @@
from __future__ import annotations
import argparse
import json
import re
from pathlib import Path
_OPTIONS_KEYWORDS: dict[str, float] = {
"option": 2.0,
"options": 2.0,
"call": 1.0,
"put": 1.0,
"strike": 2.0,
"expiration": 2.0,
"expiry": 2.0,
"premium": 2.0,
"contract": 1.0,
"underlying": 2.0,
"open interest": 3.0,
"bid-ask": 3.0,
"bid ask": 3.0,
"assignment": 3.0,
"exercise": 2.0,
"early exercise": 4.0,
"delta": 3.0,
"gamma": 3.0,
"theta": 3.0,
"vega": 3.0,
"rho": 2.0,
"implied volatility": 4.0,
"historical volatility": 3.0,
"volatility smile": 3.0,
"skew": 2.0,
"iv": 1.5,
"spread": 2.0,
"vertical spread": 4.0,
"calendar spread": 4.0,
"diagonal spread": 4.0,
"credit spread": 4.0,
"debit spread": 4.0,
"iron condor": 5.0,
"butterfly": 3.0,
"straddle": 4.0,
"strangle": 4.0,
"covered call": 5.0,
"protective put": 5.0,
"cash-secured put": 5.0,
"ratio spread": 4.0,
"intrinsic value": 4.0,
"time value": 4.0,
"extrinsic value": 4.0,
"breakeven": 3.0,
"probability of profit": 4.0,
"expected value": 3.0,
"black-scholes": 5.0,
"black scholes": 5.0,
"binomial": 3.0,
"greeks": 4.0,
"margin": 2.0,
"reg t": 2.0,
"portfolio margin": 4.0,
}
_JUNK_PHRASES = [
"all rights reserved",
"no part of this publication",
"printed in",
"publisher",
"isbn",
"library of congress",
"copyright",
"acknowledg",
"about the author",
"disclaimer",
"warranty",
]
def _fix_drop_caps(text: str) -> str:
# Join single-letter drop caps like "O ptions" -> "Options".
for _ in range(6):
fixed = re.sub(r"\b([A-Za-z])\s+(?=[a-z])", r"\1", text)
if fixed == text:
break
text = fixed
return text
def _clean_text(text: str) -> str:
text = text.replace("\u00ad", "") # soft hyphen
text = text.replace("\u200b", "") # zero-width space
text = _fix_drop_caps(text)
text = text.replace("\r\n", "\n").replace("\r", "\n")
text = re.sub(r"[ \t]+", " ", text)
text = re.sub(r"\n{3,}", "\n\n", text)
return text.strip()
def _normalize_for_score(text: str) -> str:
text = _fix_drop_caps(text)
text = text.lower()
text = re.sub(r"[ \t]+", " ", text)
text = re.sub(r"\n{3,}", "\n\n", text)
return text.strip()
def _keyword_score(text: str) -> float:
t = " " + _normalize_for_score(text) + " "
score = 0.0
for kw, weight in _OPTIONS_KEYWORDS.items():
if " " in kw:
n = t.count(" " + kw + " ")
else:
n = len(re.findall(rf"\b{re.escape(kw)}\b", t))
if n:
score += weight * n
return score
def _looks_like_junk(text: str) -> bool:
head = _normalize_for_score(text)[:800]
if "table of contents" in head or re.search(r"\bcontents\b", head):
return True
if re.search(r"^\s*index\b", head):
return True
if any(p in head for p in _JUNK_PHRASES):
return True
return False
def _chunk_text(text: str, *, chunk_chars: int, overlap_chars: int) -> list[str]:
if chunk_chars <= 0:
raise ValueError("chunk_chars must be > 0")
if overlap_chars < 0:
raise ValueError("overlap_chars must be >= 0")
if overlap_chars >= chunk_chars:
raise ValueError("overlap_chars must be < chunk_chars")
chunks: list[str] = []
start = 0
while start < len(text):
end = min(start + chunk_chars, len(text))
chunk = text[start:end].strip()
if chunk:
chunks.append(chunk)
if end == len(text):
break
start = end - overlap_chars
return chunks
def main() -> int:
parser = argparse.ArgumentParser(description="Build a JSONL dataset from extracted docs.")
parser.add_argument("--manifest", type=Path, default=Path("training_data/manifest.json"))
parser.add_argument("--text-dir", type=Path, default=Path("training_data/text"))
parser.add_argument("--out", type=Path, default=Path("training_data/dataset.jsonl"))
parser.add_argument("--chunk-chars", type=int, default=6000)
parser.add_argument("--overlap-chars", type=int, default=400)
parser.add_argument("--min-chars", type=int, default=1200)
parser.add_argument("--min-score", type=float, default=0.0)
parser.add_argument("--drop-junk", action="store_true")
args = parser.parse_args()
manifest = json.loads(args.manifest.read_text(encoding="utf-8"))
docs = manifest.get("docs", [])
if not docs:
raise SystemExit(f"No docs in manifest: {args.manifest}")
args.out.parent.mkdir(parents=True, exist_ok=True)
n_docs = 0
n_chunks = 0
with args.out.open("w", encoding="utf-8") as f:
for doc in docs:
doc_id = doc["id"]
primary = doc["primary"]
txt_path = args.text_dir / f"{doc_id}.txt"
if not txt_path.exists():
continue
raw = txt_path.read_text(encoding="utf-8", errors="ignore")
cleaned = _clean_text(raw)
if len(cleaned) < args.min_chars:
continue
n_docs += 1
chunks = _chunk_text(cleaned, chunk_chars=args.chunk_chars, overlap_chars=args.overlap_chars)
for i, chunk in enumerate(chunks):
if len(chunk) < args.min_chars:
continue
if args.drop_junk and _looks_like_junk(chunk):
continue
if args.min_score > 0 and _keyword_score(chunk) < args.min_score:
continue
rec = {
"text": chunk,
"source": primary,
"doc_id": doc_id,
"chunk_index": i,
}
f.write(json.dumps(rec, ensure_ascii=False) + "\n")
n_chunks += 1
stats_path = args.out.with_suffix(".stats.json")
stats_path.write_text(
json.dumps(
{
"docs_used": n_docs,
"chunks_written": n_chunks,
"chunk_chars": args.chunk_chars,
"overlap_chars": args.overlap_chars,
"min_chars": args.min_chars,
"min_score": args.min_score,
"drop_junk": args.drop_junk,
},
indent=2,
),
encoding="utf-8",
)
print(f"Wrote {n_chunks} chunks from {n_docs} docs to {args.out}")
print(f"Stats: {stats_path}")
return 0
if __name__ == "__main__":
raise SystemExit(main())

173
tools/extract_corpus.py Normal file
View File

@@ -0,0 +1,173 @@
from __future__ import annotations
import argparse
import hashlib
import json
import re
from dataclasses import dataclass
from pathlib import Path
from typing import Iterable
@dataclass(frozen=True)
class ExtractedDoc:
source_path: str
text: str
def _normalize_for_hash(text: str) -> str:
text = text.replace("\u00ad", "") # soft hyphen
text = text.replace("\u200b", "") # zero-width space
text = text.lower()
text = re.sub(r"[ \t]+", " ", text)
text = re.sub(r"\n{3,}", "\n\n", text)
return text.strip()
def _sha256_text(text: str) -> str:
return hashlib.sha256(text.encode("utf-8", errors="ignore")).hexdigest()
def _extract_pdf(path: Path) -> str:
from pypdf import PdfReader
reader = PdfReader(str(path))
parts: list[str] = []
for page in reader.pages:
try:
parts.append(page.extract_text() or "")
except Exception:
parts.append("")
return "\n".join(parts)
def _extract_epub(path: Path) -> str:
from bs4 import BeautifulSoup
from ebooklib import ITEM_DOCUMENT, epub
book = epub.read_epub(str(path))
parts: list[str] = []
for item in book.get_items():
if item.get_type() != ITEM_DOCUMENT:
continue
soup = BeautifulSoup(item.get_body_content(), "lxml")
parts.append(soup.get_text("\n", strip=True))
return "\n".join(parts)
def _read_text_file(path: Path) -> str:
import chardet
raw = path.read_bytes()
guess = chardet.detect(raw)
encoding = guess.get("encoding") or "utf-8"
try:
return raw.decode(encoding, errors="replace")
except LookupError:
return raw.decode("utf-8", errors="replace")
def extract_text(path: Path) -> ExtractedDoc | None:
suffix = path.suffix.lower()
try:
if suffix == ".pdf":
return ExtractedDoc(str(path), _extract_pdf(path))
if suffix == ".epub":
return ExtractedDoc(str(path), _extract_epub(path))
if suffix in {".txt", ".md"}:
return ExtractedDoc(str(path), _read_text_file(path))
except Exception:
return None
return None
def iter_candidate_files(root: Path) -> Iterable[Path]:
exts = {".pdf", ".epub", ".txt", ".md"}
for path in root.rglob("*"):
if not path.is_file():
continue
if path.suffix.lower() not in exts:
continue
yield path
def main() -> int:
parser = argparse.ArgumentParser(description="Extract and dedupe local documents into a plain-text corpus.")
parser.add_argument("--input", type=Path, default=Path("eBooks"), help="Input directory to scan (default: eBooks).")
parser.add_argument(
"--out",
type=Path,
default=Path("training_data"),
help="Output directory (default: training_data).",
)
parser.add_argument(
"--min-chars",
type=int,
default=2000,
help="Skip extracted docs shorter than this (default: 2000).",
)
args = parser.parse_args()
in_dir: Path = args.input
out_dir: Path = args.out
out_text_dir = out_dir / "text"
out_text_dir.mkdir(parents=True, exist_ok=True)
manifest_path = out_dir / "manifest.json"
corpus_path = out_dir / "corpus.txt"
rejected_path = out_dir / "rejected.json"
docs: dict[str, dict] = {}
rejected: list[dict] = []
seen_hashes: set[str] = set()
candidates = sorted(iter_candidate_files(in_dir))
for file_path in candidates:
extracted = extract_text(file_path)
if extracted is None:
rejected.append({"path": str(file_path), "reason": "extract_failed"})
continue
normalized = _normalize_for_hash(extracted.text)
if len(normalized) < args.min_chars:
rejected.append({"path": str(file_path), "reason": "too_short"})
continue
doc_hash = _sha256_text(normalized)
if doc_hash in seen_hashes:
docs[doc_hash]["duplicates"].append(str(file_path))
continue
seen_hashes.add(doc_hash)
out_txt = out_text_dir / f"{doc_hash}.txt"
out_txt.write_text(extracted.text, encoding="utf-8", errors="ignore")
docs[doc_hash] = {
"id": doc_hash,
"primary": str(file_path),
"duplicates": [],
"chars": len(extracted.text),
}
manifest_path.write_text(json.dumps({"docs": list(docs.values())}, indent=2), encoding="utf-8")
rejected_path.write_text(json.dumps(rejected, indent=2), encoding="utf-8")
# Build concatenated corpus
with corpus_path.open("w", encoding="utf-8", errors="ignore") as f:
for doc in docs.values():
f.write("\n\n" + "=" * 80 + "\n")
f.write(f"SOURCE: {doc['primary']}\n")
f.write("=" * 80 + "\n\n")
f.write((out_text_dir / f"{doc['id']}.txt").read_text(encoding="utf-8", errors="ignore"))
f.write("\n")
print(f"Extracted unique docs: {len(docs)}")
print(f"Wrote corpus: {corpus_path}")
print(f"Manifest: {manifest_path}")
if rejected:
print(f"Rejected: {len(rejected)} (see {rejected_path})")
return 0
if __name__ == "__main__":
raise SystemExit(main())

230
tools/finetune_lora.py Normal file
View File

@@ -0,0 +1,230 @@
from __future__ import annotations
import argparse
import json
import os
import random
import time
from pathlib import Path
import torch
from peft import LoraConfig, get_peft_model, prepare_model_for_kbit_training
from transformers import AutoConfig, AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
def main() -> int:
parser = argparse.ArgumentParser(description="LoRA fine-tune gpt-oss-20b on a local JSONL text corpus.")
parser.add_argument("--model", default="openai/gpt-oss-20b")
parser.add_argument("--data", type=Path, default=Path("training_data/relevant/dataset.jsonl"))
parser.add_argument("--out", type=Path, default=Path("training_data/lora_adapter"))
parser.add_argument("--max-length", type=int, default=256)
parser.add_argument("--epochs", type=int, default=1)
parser.add_argument("--max-steps", type=int, default=0, help="If >0, stop after this many optimizer steps.")
parser.add_argument("--lr", type=float, default=2e-4)
parser.add_argument("--seed", type=int, default=42)
parser.add_argument("--lora-r", type=int, default=8)
parser.add_argument("--lora-alpha", type=int, default=16)
parser.add_argument("--lora-dropout", type=float, default=0.05)
parser.add_argument("--grad-accum", type=int, default=4)
parser.add_argument("--device", default="auto")
parser.add_argument("--device-map", choices=["auto", "cuda"], default="auto")
parser.add_argument("--cpu-offload", action="store_true")
parser.add_argument("--max-gpu-mem", default=None, help="Max GPU memory for device_map=auto, e.g. 10GiB")
parser.add_argument("--max-cpu-mem", default=None, help="Max CPU memory for device_map=auto, e.g. 64GiB")
parser.add_argument("--quant", choices=["auto", "none", "4bit"], default="auto")
parser.add_argument("--log-steps", type=int, default=10)
parser.add_argument("--log-seconds", type=int, default=120)
parser.add_argument("--local-files-only", action="store_true")
args = parser.parse_args()
random.seed(args.seed)
torch.manual_seed(args.seed)
if torch.cuda.is_available():
torch.cuda.manual_seed_all(args.seed)
# Reduce noisy parallelism; avoid oversubscribing if user has many cores.
if "OMP_NUM_THREADS" not in os.environ:
os.environ["OMP_NUM_THREADS"] = str(max(1, (os.cpu_count() or 8) // 2))
args.out.mkdir(parents=True, exist_ok=True)
lines = args.data.read_text(encoding="utf-8", errors="ignore").splitlines()
records = [json.loads(ln) for ln in lines if ln.strip()]
texts = [r.get("text", "") for r in records if isinstance(r, dict) and r.get("text")]
if not texts:
raise SystemExit(f"No text records found in {args.data}")
print(f"Loaded {len(texts)} training samples from {args.data}")
if args.device == "auto":
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
else:
device = torch.device(args.device)
if device.type == "cuda":
torch.backends.cuda.matmul.allow_tf32 = True
if args.quant in {"auto", "4bit"} and device.type != "cuda":
raise SystemExit("Quantized loading requires CUDA. Use --quant none for CPU.")
print("Loading tokenizer...")
tok = AutoTokenizer.from_pretrained(args.model, local_files_only=args.local_files_only)
if tok.pad_token is None:
tok.pad_token = tok.eos_token
print("Loading model...")
config = AutoConfig.from_pretrained(args.model, local_files_only=args.local_files_only)
has_quant_attr = hasattr(config, "quantization_config")
if args.quant == "auto":
model = AutoModelForCausalLM.from_pretrained(
args.model,
local_files_only=args.local_files_only,
device_map="auto",
)
elif args.quant == "4bit":
compute_dtype = torch.bfloat16 if torch.cuda.is_bf16_supported() else torch.float16
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_use_double_quant=True,
bnb_4bit_compute_dtype=compute_dtype,
llm_int8_enable_fp32_cpu_offload=args.cpu_offload,
)
if has_quant_attr:
delattr(config, "quantization_config")
device_map = {"": 0} if args.device_map == "cuda" else "auto"
load_kwargs = dict(
local_files_only=args.local_files_only,
config=config,
device_map=device_map,
torch_dtype=compute_dtype,
)
if device_map == "auto" and (args.max_gpu_mem or args.max_cpu_mem):
max_memory = {}
if args.max_gpu_mem:
max_memory[0] = args.max_gpu_mem
if args.max_cpu_mem:
max_memory["cpu"] = args.max_cpu_mem
load_kwargs["max_memory"] = max_memory
load_kwargs["quantization_config"] = bnb_config
model = AutoModelForCausalLM.from_pretrained(args.model, **load_kwargs)
model = prepare_model_for_kbit_training(model)
else:
model = AutoModelForCausalLM.from_pretrained(
args.model,
local_files_only=args.local_files_only,
torch_dtype=torch.bfloat16,
device_map={"": "cpu" if device.type == "cpu" else 0},
low_cpu_mem_usage=True,
)
model.to(device)
lora_cfg = LoraConfig(
r=args.lora_r,
lora_alpha=args.lora_alpha,
lora_dropout=args.lora_dropout,
bias="none",
task_type="CAUSAL_LM",
target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
)
model = get_peft_model(model, lora_cfg)
model.print_trainable_parameters()
model.config.use_cache = False
if device.type == "cuda":
model.gradient_checkpointing_enable()
# Needed for PEFT + gradient checkpointing to ensure grads flow to LoRA params.
model.enable_input_require_grads()
trainable = [p for p in model.parameters() if p.requires_grad]
opt = torch.optim.AdamW(trainable, lr=args.lr)
# Training loop
model.train()
total_opt_steps = 0
total_batches = 0
loss_ema: float | None = None
last_log = time.time()
accum_steps = 0
for epoch in range(1, args.epochs + 1):
order = list(range(len(texts)))
random.shuffle(order)
for i in order:
text = texts[i]
batch = tok(text, return_tensors="pt", truncation=True, max_length=args.max_length)
if batch["input_ids"].numel() < 32:
continue
batch["labels"] = batch["input_ids"].clone()
batch = {k: v.to(device) for k, v in batch.items()}
t0 = time.time()
out = model(**batch)
loss = out.loss / max(1, args.grad_accum)
loss.backward()
accum_steps += 1
if accum_steps >= max(1, args.grad_accum):
torch.nn.utils.clip_grad_norm_(trainable, 1.0)
opt.step()
opt.zero_grad(set_to_none=True)
total_opt_steps += 1
accum_steps = 0
dt = time.time() - t0
total_batches += 1
lv = float(loss.detach().cpu().item()) * max(1, args.grad_accum)
loss_ema = lv if loss_ema is None else (0.95 * loss_ema + 0.05 * lv)
if (args.log_steps and total_opt_steps % args.log_steps == 0) or (
args.log_seconds and time.time() - last_log >= args.log_seconds
):
tok_count = int(batch["input_ids"].numel())
print(
f"epoch {epoch}/{args.epochs} step {total_opt_steps} "
f"loss {lv:.4f} ema {loss_ema:.4f} "
f"{dt:.2f}s {tok_count} tokens"
)
last_log = time.time()
if args.max_steps and total_opt_steps >= args.max_steps:
break
if accum_steps:
torch.nn.utils.clip_grad_norm_(trainable, 1.0)
opt.step()
opt.zero_grad(set_to_none=True)
total_opt_steps += 1
accum_steps = 0
if args.max_steps and total_opt_steps >= args.max_steps:
break
if args.max_steps and total_opt_steps >= args.max_steps:
break
print(f"Saving adapter to {args.out} ...")
model.save_pretrained(args.out)
tok.save_pretrained(args.out)
summary = {
"model": args.model,
"data": str(args.data),
"out": str(args.out),
"max_length": args.max_length,
"epochs": args.epochs,
"max_steps": args.max_steps,
"lr": args.lr,
"lora_r": args.lora_r,
"lora_alpha": args.lora_alpha,
"lora_dropout": args.lora_dropout,
"optimizer_steps": total_opt_steps,
"loss_ema": loss_ema,
}
(args.out / "training_summary.json").write_text(json.dumps(summary, indent=2), encoding="utf-8")
print("Done.")
return 0
if __name__ == "__main__":
raise SystemExit(main())

387
tools/select_relevant.py Normal file
View File

@@ -0,0 +1,387 @@
from __future__ import annotations
import argparse
import csv
import hashlib
import json
import math
import re
from dataclasses import dataclass
from pathlib import Path
from typing import Iterable
_OPTIONS_KEYWORDS: dict[str, float] = {
# core
"option": 2.0,
"options": 2.0,
"call": 1.0,
"put": 1.0,
"strike": 2.0,
"expiration": 2.0,
"expiry": 2.0,
"premium": 2.0,
"contract": 1.0,
"underlying": 2.0,
"open interest": 3.0,
"bid-ask": 3.0,
"bid ask": 3.0,
"assignment": 3.0,
"exercise": 2.0,
"early exercise": 4.0,
# greeks / vol
"delta": 3.0,
"gamma": 3.0,
"theta": 3.0,
"vega": 3.0,
"rho": 2.0,
"implied volatility": 4.0,
"historical volatility": 3.0,
"volatility smile": 3.0,
"skew": 2.0,
"iv": 1.5,
# strategies
"spread": 2.0,
"vertical spread": 4.0,
"calendar spread": 4.0,
"diagonal spread": 4.0,
"credit spread": 4.0,
"debit spread": 4.0,
"iron condor": 5.0,
"butterfly": 3.0,
"straddle": 4.0,
"strangle": 4.0,
"covered call": 5.0,
"protective put": 5.0,
"cash-secured put": 5.0,
"ratio spread": 4.0,
# risk / pricing
"intrinsic value": 4.0,
"time value": 4.0,
"extrinsic value": 4.0,
"breakeven": 3.0,
"probability of profit": 4.0,
"expected value": 3.0,
"black-scholes": 5.0,
"black scholes": 5.0,
"binomial": 3.0,
"greeks": 4.0,
"margin": 2.0,
"reg t": 2.0,
"portfolio margin": 4.0,
}
_JUNK_PHRASES = [
"all rights reserved",
"no part of this publication",
"printed in",
"publisher",
"isbn",
"library of congress",
"copyright",
"acknowledg",
"about the author",
"disclaimer",
"warranty",
]
@dataclass(frozen=True)
class Segment:
source_path: str
locator: str # "page:123" or "section:foo"
text: str
score: float
def _fix_drop_caps(text: str) -> str:
# Join single-letter drop caps like "O ptions" -> "Options".
for _ in range(6):
fixed = re.sub(r"\b([A-Za-z])\s+(?=[a-z])", r"\1", text)
if fixed == text:
break
text = fixed
return text
def _normalize(text: str) -> str:
text = text.replace("\u00ad", "") # soft hyphen
text = text.replace("\u200b", "") # zero-width space
text = _fix_drop_caps(text)
text = text.lower()
text = re.sub(r"[ \t]+", " ", text)
text = re.sub(r"\n{3,}", "\n\n", text)
return text.strip()
def _sha256(text: str) -> str:
return hashlib.sha256(text.encode("utf-8", errors="ignore")).hexdigest()
def _tokenish(text: str) -> list[str]:
return re.findall(r"[a-z]{2,}", text.lower())
def _keyword_score(text: str) -> tuple[float, dict[str, int]]:
t = " " + _normalize(text) + " "
hits: dict[str, int] = {}
score = 0.0
for kw, weight in _OPTIONS_KEYWORDS.items():
if " " in kw:
n = t.count(" " + kw + " ")
else:
n = len(re.findall(rf"\b{re.escape(kw)}\b", t))
if n:
hits[kw] = n
score += weight * n
return score, hits
def _looks_like_toc(text: str) -> bool:
t = _normalize(text)
head = t[:400]
if "table of contents" in head or re.search(r"\bcontents\b", head):
return True
lines = [ln.strip() for ln in t.splitlines() if ln.strip()]
if len(lines) < 10:
return False
# Many lines ending with digits and/or dotted leaders
end_num = sum(1 for ln in lines if re.search(r"(\\.{2,}|\\s)\\d{1,4}$", ln))
dotted = sum(1 for ln in lines if "..." in ln or re.search(r"\\.{4,}", ln))
shortish = sum(1 for ln in lines if len(ln) <= 60)
if end_num / len(lines) >= 0.35 and (dotted + end_num) / len(lines) >= 0.35 and shortish / len(lines) >= 0.5:
return True
return False
def _looks_like_index(text: str) -> bool:
t = _normalize(text)
head = t[:400]
if re.search(r"^\\s*index\\b", head):
return True
lines = [ln.strip() for ln in t.splitlines() if ln.strip()]
if len(lines) < 15:
return False
indexish = 0
for ln in lines[:200]:
if re.search(r"\\b\\d{1,4}(?:,\\s*\\d{1,4}){2,}\\b", ln):
indexish += 1
continue
if re.search(r"^[a-z].{1,60}\\s+\\d{1,4}(?:,\\s*\\d{1,4})+\\b", ln):
indexish += 1
continue
return indexish >= max(10, math.ceil(0.25 * min(len(lines), 200)))
def _looks_like_front_matter(text: str) -> bool:
t = _normalize(text)
head = t[:800]
if any(p in head for p in _JUNK_PHRASES):
return True
# Too little prose
toks = _tokenish(head)
if len(toks) < 80 and (("isbn" in head) or ("copyright" in head)):
return True
return False
def _is_junk(text: str) -> str | None:
if _looks_like_toc(text):
return "toc"
if _looks_like_index(text):
return "index"
if _looks_like_front_matter(text):
return "front_matter"
return None
def _iter_files(root: Path, include: list[str], exclude: list[str]) -> Iterable[Path]:
exts = {".pdf", ".epub"}
for p in root.rglob("*"):
if p.is_file() and p.suffix.lower() in exts:
path_lower = str(p).lower()
if include and not any(token in path_lower for token in include):
continue
if exclude and any(token in path_lower for token in exclude):
continue
yield p
def _extract_pdf_segments(path: Path) -> list[tuple[str, str]]:
from pypdf import PdfReader
reader = PdfReader(str(path))
out: list[tuple[str, str]] = []
for i, page in enumerate(reader.pages, start=1):
try:
txt = page.extract_text() or ""
except Exception:
txt = ""
out.append((f"page:{i}", txt))
return out
def _extract_epub_segments(path: Path) -> list[tuple[str, str]]:
from bs4 import BeautifulSoup
from ebooklib import ITEM_DOCUMENT, epub
book = epub.read_epub(str(path))
out: list[tuple[str, str]] = []
idx = 0
for item in book.get_items():
if item.get_type() != ITEM_DOCUMENT:
continue
idx += 1
soup = BeautifulSoup(item.get_body_content(), "lxml")
txt = soup.get_text("\n", strip=True)
name = getattr(item, "file_name", None) or f"doc:{idx}"
out.append((f"section:{name}", txt))
return out
def main() -> int:
parser = argparse.ArgumentParser(description="Select option-trading-relevant pages/sections from PDFs/EPUBs.")
parser.add_argument("--input", type=Path, default=Path("eBooks"))
parser.add_argument("--out", type=Path, default=Path("training_data/relevant"))
parser.add_argument("--min-score", type=float, default=10.0)
parser.add_argument("--front-matter-score", type=float, default=None)
parser.add_argument("--min-chars", type=int, default=800)
parser.add_argument("--neighbors", type=int, default=1, help="Include +/- N neighbor pages/sections around hits.")
parser.add_argument(
"--include",
action="append",
default=[],
help="Only include files whose path contains this substring (case-insensitive).",
)
parser.add_argument(
"--exclude",
action="append",
default=[],
help="Skip files whose path contains this substring (case-insensitive).",
)
args = parser.parse_args()
out_dir: Path = args.out
text_dir = out_dir / "text"
out_dir.mkdir(parents=True, exist_ok=True)
text_dir.mkdir(parents=True, exist_ok=True)
front_matter_min_score = args.front_matter_score if args.front_matter_score is not None else args.min_score
include = [token.lower() for token in args.include]
exclude = [token.lower() for token in args.exclude]
seen_hashes: set[str] = set()
selected: list[dict] = []
report_rows: list[dict] = []
for file_path in sorted(_iter_files(args.input, include, exclude)):
suffix = file_path.suffix.lower()
if suffix == ".pdf":
segs = _extract_pdf_segments(file_path)
elif suffix == ".epub":
segs = _extract_epub_segments(file_path)
else:
continue
scored: list[tuple[int, str, str, float, dict[str, int], str | None]] = []
for idx, (loc, txt) in enumerate(segs):
if not txt or len(txt) < args.min_chars:
scored.append((idx, loc, txt, 0.0, {}, "too_short"))
continue
score, hits = _keyword_score(txt)
junk = _is_junk(txt)
scored.append((idx, loc, txt, score, hits, junk))
keep_indices: set[int] = set()
for idx, loc, txt, score, hits, junk in scored:
if junk in {"toc", "index"}:
continue
if junk == "front_matter" and score < front_matter_min_score:
continue
if score < args.min_score:
continue
keep_indices.add(idx)
for d in range(1, args.neighbors + 1):
keep_indices.add(idx - d)
keep_indices.add(idx + d)
keep_indices = {i for i in keep_indices if 0 <= i < len(scored)}
for idx, loc, txt, score, hits, junk in scored:
if idx not in keep_indices:
continue
if not txt or len(txt) < args.min_chars:
continue
if junk in {"toc", "index"}:
continue
# For neighbor pages, allow some front matter, but only if score isn't near-zero
if junk == "front_matter" and score < front_matter_min_score:
continue
norm = _normalize(txt)
seg_hash = _sha256(norm)
if seg_hash in seen_hashes:
continue
seen_hashes.add(seg_hash)
(text_dir / f"{seg_hash}.txt").write_text(txt, encoding="utf-8", errors="ignore")
src = str(file_path)
primary = f"{src}#{loc}"
selected.append(
{
"id": seg_hash,
"primary": primary,
"duplicates": [],
"chars": len(txt),
"score": score,
"hits": hits,
}
)
report_rows.append(
{
"id": seg_hash,
"source": src,
"locator": loc,
"score": f"{score:.2f}",
"chars": str(len(txt)),
"junk": junk or "",
"top_hits": ";".join(sorted(hits.keys())[:12]),
}
)
manifest_path = out_dir / "manifest.json"
manifest_path.write_text(json.dumps({"docs": selected}, indent=2), encoding="utf-8")
report_path = out_dir / "report.csv"
with report_path.open("w", encoding="utf-8", newline="") as f:
writer = csv.DictWriter(
f,
fieldnames=["id", "source", "locator", "score", "chars", "junk", "top_hits"],
)
writer.writeheader()
writer.writerows(report_rows)
corpus_path = out_dir / "corpus.txt"
with corpus_path.open("w", encoding="utf-8", errors="ignore") as f:
for doc in selected:
f.write("\n\n" + "=" * 80 + "\n")
f.write(f"SOURCE: {doc['primary']}\n")
f.write(f"SCORE: {doc.get('score', 0):.2f}\n")
f.write("=" * 80 + "\n\n")
f.write((text_dir / f"{doc['id']}.txt").read_text(encoding="utf-8", errors="ignore"))
f.write("\n")
print(f"Selected segments: {len(selected)}")
print(f"Manifest: {manifest_path}")
print(f"Report: {report_path}")
print(f"Corpus: {corpus_path}")
return 0
if __name__ == "__main__":
raise SystemExit(main())

View File

View File

@@ -0,0 +1,3 @@
{
"docs": []
}

View File

@@ -0,0 +1 @@
id,source,locator,score,chars,junk,top_hits
1 id source locator score chars junk top_hits

142426
training_data/corpus.txt Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,9 @@
{
"docs_used": 1618,
"chunks_written": 1778,
"chunk_chars": 5000,
"overlap_chars": 300,
"min_chars": 900,
"min_score": 6.0,
"drop_junk": true
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,36 @@
298 Part Ill: Put Option Strategies
Example: XYZ is 48 and the XYZ January 50 put is selling for 5 points. The profit
that could be made if the stock were unchanged at expiration would be only 3 points,
less commissions, since the put would have to be repurchased for 2 points with XYZ
at 48 at expiration. Commissions for the buy-back should be included as well, to
make the computation as accurate as possible.
As was the case with covered call writing, one can create several rankings of
naked put writes. One list might be the highest potential returns. Another list could
be the put writes that provide the rrwst downside protection; that is, the ones that
have the least chance of losing money. Both lists need some screening applied to
them, however. When considering the maximum potential returns, one should take
care to ensure at least some room for downside movement.
Example: If XYZ were at 50, the XYZ January 100 put would be selling at 50 also and
would most assuredly have a tremendously large maximum potential return.
However, there is no room for downside movement at all, and one would surely not
write such a put. One simple way of allowing for such cases would be to reject any
put that did not offer at least 5% downside protection. Alternatively, one could also
reject situations in which the return if unchanged is below 5%.
The other list, involving maximum downside protection, also must have some
screens applied to it.
Example: With XYZ at 70, the XYZ January 50 put would be selling for½ at most.
Thus, it is extremely unlikely that one would lose money in this situation; the stock
would have to fall 20 points for a loss to occur. However, there is practically nothing
to be made from this position, and one would most likely not ever write such a deeply
out-of-the-money put.
A minimum acceptable level of return must accompany the items on this list of
put writes. For example, one might decide that the return would have to be at least
12% on an annualized basis in order for the put write to be on the list of positions
offering the most downside protection. Such a requirement would preclude an
extreme situation like that shown above. Once these screens have been applied, the
lists can then be ranked in a normal manner. The put writes offering the highest
returns would be at the top of the more aggressive list, and those offering the high­
est percentage of downside protection would be at the top of the more conservative
list. In the strictest sense, a more advanced technique to incorporate the volatility of
the underlying stock should rightfully be employed. As mentioned previously, that
technique is presented in Chapter 28 on mathematical applications.

View File

@@ -0,0 +1,36 @@
156 Part II: Call Option Strategies
that if XYZ is anywhere between 60 and 70 at expiration, the stock will be called away
at 60 against the sale of the October 60 call, and the October 70 call will expire worth­
less. It makes no difference whether the stock is at 61 or at 69; the same result will
occur. Table 6-5 and Figure 6-3 depict the results from this variable hedge at expira­
tion. In the table, it is assumed that the option is bought back at parity to close the
position, but if the stock were called away, the results would be the same.
Note that the shape of Figure 6-3 is something like a trapezoid. This is the
source of the name "trapezoidal hedge," although the strategy is more commonly
known as a variable hedge or variable ratio write. The reader should observe that the
maximum profit is indeed obtained if the stock is anywhere between the two strikes
at eiqJiration. The maximum profit potential in this position, $600, is smaller than the
maximum profit potential available from writing only the October 60's or only the
October 70's. However, there is a vastly greater probability of realizing the maximum
profit in a variable ratio write than there is of realizing the maximum profit in a nor­
mal ratio write.
The break-even points for a variable ratio write can be computed most quickly
by first computing the maximum profit potential, which is equal to the time value
that the writer takes in. The break-even points are then computed directly by sub­
tracting the points of maximum profit from the lower striking price to get the down­
side break-even point and adding the points of maximum profit to the upper striking
price to arrive at the upside break-even point. This is a similar procedure to that fol­
lowed for a normal ratio write:
TABLE 6-5.
Results at expiration of variable hedge.
XYZ Price at XYZ October 60 October 70 Total
Expiration Profit Profit Profit Profit
45 -$2,000 +$ 800 +$ 300 -$900
50 - 1,500 + 800 + 300 - 400
54 - 1,100 + 800 + 300 0
60 500 + 800 + 300 + 600
65 0 + 300 + 300 + 600
70 + 500 - 200 + 300 + 600
76 + 1,100 - 800 300 0
80 + 1,500 -$1,200 700 - 400
85 + 2,000 -1,700 - 1,200 - 900

View File

@@ -0,0 +1,22 @@
410 Part Ill: Put Option Strategies
increase in price. As usual, volatility has a major effect on the price of an option, and
LEAPS are no exception. Even small changes in the volatility of the underlying com­
mon stock can cause large price differences in a two-year option. The rate of decay
due to time is much smaller for LEAPS, since they are long-term options. Finally, the
deltas of LEAPS calls are larger than those of short-term calls; conversely, the deltas
of LEAPS puts are smaller.
Several common strategies lend themselves well to the usage of LEAPS. A
LEAPS may be used as a stock substitute if the cash not invested in the stock is
instead deposited in a CD or T-bill. LEAPS puts can be bought as protection for
common stock. Speculative option buyers will appreciate the low rate of time decay
of LEAPS. LEAPS calls can be written against common stock, thereby creating a
covered write, although the sale of naked LEAPS puts is probably a better strategy
in most cases. Spread strategies with LEAPS may be viable as well, but the spreader
should carefully consider the ramifications of buying a long-term option and selling
a shorter-term one against it. If the underlying stock moves a great distance quickly,
the spread strategy may not perform as expected.
Overall, LEAPS are not very different from the shorter-term options to which
traders and investors have become accustomed. Once these investors become famil­
iar with the way these long-term options are affected by the various factors that
determine the price of an option, they will consider the use of LEAPS as an integral
part of a strategic arsenal.

View File

@@ -0,0 +1,39 @@
Chapter 2: Covered Call Writing
PROJECTED RETURNS
59
The return that one strives for is somewhat a matter of personal preference. In gen­
eral, the annualized return if unchanged should be used as the comparative measure
between various covered writes. In using this return as the measuring criterion, one
does not make any assumptions about the stock moving up in price in order to attain
the potential return. A general rule used in deciding what is a minimally acceptable
return is to consider a covered writing position only when the return if unchanged is
at least 1 % per month. That is, a 3-month write would have to offer a return of at
least 3% and a 6-month write would have to have a return if unchanged of at least
6%. During periods of expanded option premiums, there may be so many writes that
satisfy this criterion that one would want to raise his sights somewhat, say to 1 ½% or
2% per month. Also, one must feel personally comfortable that his minimum return
criterion - whether it be 1 % per month or 2% per month - is large enough to com­
pensate for the risks he is taking. That is, the downside risk of owning stock, should
it fall far enough to outdistance the premium received, should be adequately com­
pensated for by the potential return. It should be pointed out that 1 % per month is
not a return to be taken lightly, especially if there is a reasonable assurance that it can
be attained. However, if less risky investments, such as bonds, were yielding 12%
annually, the covered writer must set his sights higher.
Normally, the returns from various covered writing situations are compared by
annualizing the returns. One should not, however, be deluded into believing that he
can always attain the projected annual return. A 6-month write that offers a 6%
return annualizes to 12%. But if one establishes such a position, all that he can
achieve is 6% in 6 months. One does not really know for sure that 6 months from now
there will be another position available that will provide 6% over the next 6 months.
The deeper that the written option is in-the-money, the higher the probability
that the return if unchanged will actually be attained. In an in-the-money situation,
recall that the return if unchanged is the same as the return if exercised. Both would
be attained unless the stock fell below the striking price by expiration. Thus, for an in­
the-money write, the projected return is attained if the stock rises, remains unchanged,
or even falls slightly by the time the option expires. Higher potential returns are avail­
able for out-of-the-money writes if the stock rises. However, should the stock remain
the same or decline in price, the out-of-the-money write will generally underperform
the in-the-money write. This is why the return if unchanged is a good comparison.
DOWNSIDE PROTECTION
Downside protection is more difficult to quantify than projected returns are. As men­
tioned earlier, the percentage of downside protection is often used as a measure. This

View File

@@ -0,0 +1,170 @@
CHAPTER 5
An Introduction to Volatility-Selling Strategies
Along with death and taxes, there is one other fact of life we can all count on: the time value of all options ultimately going to zero. What an alluring concept! In a business where expected profits can be thwarted by an unexpected turn of events, this is one certainty traders can count on. Like all certainties in the financial world, there is a way to profit from this fact, but its not as easy as it sounds. Alas, the potential for profit only exists when there is risk of loss.
In order to profit from eroding option premiums, traders must implement option-selling strategies, also known as volatility-selling strategies. These strategies have their own set of inherent risks. Selling volatility means having negative vega—the risk of implied volatility rising. It also means having negative gamma—the risk of the underlying being too volatile. This is the nature of selling volatility. The option-selling trader does not want the underlying stock to move—that is, the trader wants the stock to be less volatile. That is the risk.
Profit Potential
Profit for the volatility seller is realized in a roundabout sort of way. The reward for low volatility is achieved through time decay. These strategies have positive theta. Just as the volatility-buying strategies covered in Chapter 4 had time working against them, volatility-selling strategies have time working in their favor. The trader is effectively paid to assume the risk of movement.
Gamma-Theta Relationship
There exists a trade-off between gamma and theta. Long options have positive gamma and negative theta. Short options have negative gamma and positive theta. Positions with greater gamma, whether positive or negative, tend to have greater theta values, negative or positive. Likewise, lower absolute values for gamma tend to go hand in hand with lower absolute values for theta. The gamma-theta relationship is the most important consideration with many types of strategies. Gamma-theta is often the measurement with the greatest influence on the bottom line.
Greeks and Income Generation
With volatility-selling strategies (sometimes called income-generating strategies), greeks are often overlooked. Traders simply dismiss greeks as unimportant to this kind of trade. There is some logic behind this reasoning. Time decay provides the profit opportunity. In order to let all of time premium erode, the position must be held until expiration. Interim changes in implied volatility are irrelevant if the position is held to term. The gamma-theta loses some significance if the position is held until expiration, too. The position has either passed the break-even point on the at-expiration diagram, or it has not. Incremental daily time decayrelated gains are not the ultimate goal. The trader is looking for all the time premium, not portions of it.
So why do greeks matter to volatility sellers? Greeks allow traders to be flexible. Consider short-term-momentum stock traders. The traders buy a stock because they believe it will rise over the next month. After one week, if unexpected bearish news is announced causing the stock to break through its support lines, the traders have a decision to make. Short-term speculative traders very often choose to cut their losses and exit the position early rather than risk a larger loss hoping for a recovery.
Volatility-selling option traders are often faced with the same dilemma. If the underlying stays in line with the traders forecast, there is little to worry about. But if the environment changes, the traders have to react. Knowing the greeks for a position can help traders make better decisions if they plan to close the position before expiration.
Naked Call
A naked call is when a trader shorts a call without having stock or other options to cover or protect it. Since the call is uncovered, it is one of the riskier trades a trader can make. Recall the at-expiration diagram for the naked call from Chapter 1,
Exhibit 1.3
: Naked TGT Call. Theoretically, there is limited reward and unlimited risk. Yet there are times when experienced traders will justify making such a trade. When a stock has been trading in a range and is expected to continue doing so, traders may wait until it is near the top of the channel, where there is resistance, and then short a call.
For example, a trader, Brendan, has been studying a chart of Johnson & Johnson (JNJ). Brendan notices that for a few months the stock has trading been in a channel between $60 and $65. As he observes Johnson & Johnson beginning to approach the resistance level of $65 again, he considers selling a call to speculate on the stock not rising above $65. Before selling the call, Brendan consults other technical analysis tools, like ADX/DMI, to confirm that there is no trend present. ADX/DMI is used by some traders as a filter to determine the strength of a trend and whether the stock is overbought or oversold. In this case, the indicator shows no strong trend present. Brendan then performs due diligence. He studies the news. He looks for anything specific that could cause the stock to rally. Is the stock a takeover target? Brendan finds nothing. He then does earnings research to find out when they will be announced, which is not for almost two more months.
Next, Brendan pulls up an option chain on his computer. He finds that with the stock trading around $64 per share, the market for the November 65 call (expiring in four weeks) is 0.66 bid at 0.68 offer. Brendan considers when Johnson & Johnsons earnings report falls. Although recent earnings have seldom been a major concern for Johnson & Johnson, he certainly wants to sell an option expiring before the next earnings report. The November fits the mold. Brendan sells ten of the November 65 calls at the bid price of 0.66.
Brendan has a rather straightforward goal. He hopes to see Johnson & Johnson shares remain below $65 between now and expiration. If he is right, he stands to make $660. If he is wrong?
Exhibit 5.1
shows how Brendans calls hold up if they are held until expiration.
EXHIBIT 5.1
Naked Johnson & Johnson call at expiration.
Considering the risk/reward of this trade, Brendan is rightfully concerned about a big upward move. If the stock begins to rally, he must be prepared to act fast. Brendan must have an idea in advance of what his pain threshold is. In other words, at what price will he buy back his calls and take a loss if Johnson & Johnson moves adversely?
He decides he will buy all 10 of his calls back at 1.10 per contract if the trade goes against him. (1.10 is an arbitrary price used for illustrative purposes. The actual price will vary, based on the situation and the risk tolerance of the trader. More on when to take profits and losses is discussed in future chapters.) He may choose to enter a good-till-canceled (GTC) stop-loss order to buy back his calls. Or he may choose to monitor the stock and enter the order when he sees the calls offered at 1.10—a mental stop order. What Brendan needs to know is: How far can the stock price advance before the calls are at 1.10?
Brendan needs to examine the greeks of this trade to help answer this question.
Exhibit 5.2
shows the hypothetical greeks for the position in this example.
EXHIBIT 5.2
Greeks for short Johnson & Johnson 65 call (per contract).
Delta
0.34
Gamma
0.15
Theta
0.02
Vega
0.07
The short call has a negative delta. It also has negative gamma and vega, but it has positive time decay (theta). As Johnson & Johnson ticks higher, the delta increases the nominal value of the call. Although this is not a directional trade per se, delta is a crucial element. It will have a big impact on Brendans expectations as to how high the stock can rise before he must take his loss.
First, Brendan considers how much the option price can move before he covers. The market now is 0.66 bid at 0.68 offer. To buy back his calls at 1.10, they must be offered at 1.10. The difference between the offer now and the offer price at which Brendan will cover is 0.42 (thats 1.10 0.68). Brendan can use delta to convert the change in the ask prices into a stock price change. To do so, Brendan divides the change in the option price by the delta.
The 0.34 delta indicates that if JNJ rises $1.24, the calls should be offered at 1.10.
Brendan takes note that the bid-ask spreads are typically 0.01 to 0.03 wide in near-term Johnson & Johnson options trading under 1.00. This is not necessarily the case in other option classes. Less liquid names have wider spreads. If the spreads were wider, Brendan would have more slippage. Slippage is the difference between the assumed trade price and the actual price of the fill as a product of the bid-ask spread. Its the difference between theory and reality. If the bid-ask spread had a typical width of, say, 0.70, the market would be something more like 0.40 bid at 1.10 offer. In this case, if the stock moved even a few cents higher, Brendan could not buy his calls back at his targeted exit price of 1.10. The tighter markets provide lower transaction costs in the form of lower slippage. Therefore, there is more leeway if the stock moves adversely when there are tighter bid-ask option spreads.
But just looking at delta only tells a part of the story. In reality, the delta does not remain constant during the price rise in Johnson & Johnson but instead becomes more negative. Initially, the delta is 0.34 and the gamma is 0.15. After a rise in the stock price, the delta will be more negative by the amount of the gamma. To account for the entire effect of direction, Brendan needs to take both delta and gamma into account. He needs to estimate the average delta based on gamma during the stock price move. The formula for the change in stock price is
Taking into account the effect of gamma as well as delta, Johnson & Johnson needs to rise only $1.01, in order for Brendans calls to be offered at his stop-loss price of 1.10.
While having a predefined price point to cover in the event the underlying rises is important, sometimes traders need to think on their feet. If material news is announced that changes the fundamental outlook for the stock, Brendan will have to adjust his plan. If the news leads Brendan to become bullish on the stock, he should exit the trade at once, taking a small loss now instead of the bigger loss he would expect later. If the trader is uncertain as to whether to hold or close the position, the Would I Do It Now? rule is a useful rule of thumb.
Would I Do It Now? Rule
To follow this rule, ask yourself, “If I did not already have this position, would I do it now? Would I establish the position at the current market prices, given the current market scenario?” If the answer is no, then the solution is simple: Exit the trade.
For example, if after one week material news is released and Johnson & Johnson is trading higher, at $64.50 per share, and the November 65 call is trading at 0.75, Brendan must ask himself, based on the price of the stock and all known information, “If I were not already short the calls, would I short them now at the current price of 0.75, with the stock trading at $64.50?”
Brendans opinion of the stock is paramount in this decision. If, for example, based on the news that was announced he is now bullish, he would likely not want to sell the calls at 0.75—he only gets $0.09 more in option premium and the stock is 0.50 closer to the strike. If, however, he is not bullish, there is more to consider.
Theta can be of great use in decision making in this situation. As the number of days until expiration decreases and the stock approaches $65 (making the option more at-the-money), Brendans theta grows more positive.
Exhibit 5.3
shows the theta of this trade as the underlying rises over time.
EXHIBIT 5.3
Theta of Johnson & Johnson.
When the position is first established, positive theta comforts Brendan by showing that with each passing day he gets a little closer to his goal—to have the 65 calls expire out-of-the-money (OTM) and reap a profit of the entire 66-cent premium. Theta becomes truly useful if the position begins to move against him. As Johnson & Johnson rises, the trade gets more precarious. His negative delta increases. His negative gamma increases. His goal becomes more out of reach. In conjunction with delta and gamma, theta helps Brendan decide whether the risk is worth the reward.
In the new scenario, with the stock at $64.50, Brendan would collect $18 a day (1.80 × 10 contracts). Is the risk of loss in the short run worth earning $18 a day? With Johnson & Johnson at $64.50, would Brendan now short 10 calls at 0.75 to collect $18 a day, knowing that each day may bring a continued move higher in the stock? The answer to this question depends on Brendans assessment of the risk of the underlying continuing its ascent. As time passes, if the stock remains closer to the strike, the daily theta rises, providing more reward. Brendan must consider that as theta—the reward—rises, so does gamma: a risk factor.
A small but noteworthy risk is that implied volatility could rise. The negative vega of this position would, then, adversely affect the profitability of this trade. It will make Brendans 1.10 cover-point approach faster because it makes the option more expensive. Vega is likely to be of less consequence because it would ultimately take the stocks rising though the strike price for the trade to be a loser at expiration.
Short Naked Puts
Another trader, Stacie, has also been studying Johnson & Johnson. Stacie believes Johnson & Johnson is on its way to test the $65 resistance level yet again. She believes it may even break through $65 this time, based on strong fundamentals. Stacie decides to sell naked puts. A naked put is a short put that is not sold in conjunction with stock or another option.
With the stock around $64, the market for the November 65 put is 1.75 bid at 1.80. Stacie likes the fact that the 65 puts are slightly in-the-money (ITM) and thus have a higher delta. If her price rise comes sooner than expected, the high delta may allow her to take a profit early. Stacie sells 10 puts at 1.75.
In the best-case scenario, Stacie retains the entire 1.75. For that to happen, she will need to hold this position until expiration and the stock will have to rise to be trading above the 65 strike. Logically, Stacie will want to do an at-expiration analysis.
Exhibit 5.4
shows Stacies naked put trade if she holds it until expiration.
EXHIBIT 5.4
Naked Johnson & Johnson put at expiration.
While harvesting the entire premium as a profit sounds attractive, if Stacie can take the bulk of her profit early, shell be happy to close the position and eliminate her risk—nobody ever went broke taking a profit. Furthermore, she realizes that her outlook may be wrong: Johnson & Johnson may decline. She may have to close the position early—maybe for a profit, maybe for a loss. Stacie also needs to study her greeks.
Exhibit 5.5
shows the greeks for this trade.
EXHIBIT 5.5
Greeks for short Johnson & Johnson 65 put (per contract).
Delta
0.65
Gamma
0.15
Theta
0.02
Vega
0.07
The first item to note is the delta. This position has a directional bias. This bias can work for or against her. With a positive 0.65 delta per contract, this position has a directional sensitivity equivalent to being long around 650 shares of the stock. Thats the delta × 100 shares × 10 contracts.
Stacies trade is not just a bullish version of Brendans. Partly because of the size of the delta, its different—specific directional bias aside. First, she will handle her trade differently if it is profitable.
For example, if over the next week or so Johnson & Johnson rises $1, positive delta and negative gamma will have a net favorable effect on Stacies profitability. Theta is small in comparison and wont have too much of an effect. Delta/gamma will account for a decrease in the puts theoretical value of about $0.73. Thats the estimated average delta times the stock move, or [0.65 + (0.15/2)] × 1.00.
Stacies actual profit would likely be less than 0.73 because of the bid-ask spread. Stacie must account for the fact that the bid-ask is 0.05 wide (1.751.80). Because Stacie would buy to close this position, she should consider the 0.73 price change relative to the 1.80 offer, not the 1.75 trade price—that is, she factors in a nickel of slippage. Thus, she calculates, that the puts will be offered at 1.07 (thats 1.80 0.73) when the stock is at $65. That is a gain of $0.68.
In this scenario, Stacie should consider the Would I Do It Now? rule to guide her decision as to whether to take her profit early or hold the position until expiration. Is she happy being short ten 65 puts at 1.07 with Johnson & Johnson at $65? The premium is lower now. The anticipated move has already occurred, and she still has 28 days left in the option that could allow for the move to reverse itself. If she didnt have the trade on now, would she sell ten 65 puts at 1.07 with Johnson & Johnson at $65? Based on her original intention, unless she believes strongly now that a breakout through $65 with follow-through momentum is about to take place, she will likely take the money and run.
Stacie also must handle this trade differently from Brendan in the event that the trade is a loser. Her trade has a higher delta. An adverse move in the underlying would affect Stacies trade more than it would Brendans. If Johnson & Johnson declines, she must be conscious in advance of where she will cover.
Stacie considers both how much she is willing to lose and what potential stock-price action will cause her to change her forecast. She consults a stock chart of Johnson & Johnson. In this example, well assume there is some resistance developing around $64 in the short term. If this resistance level holds, the trade becomes less attractive. The at-expiration breakeven is $63.25, so the trade can still be a winner if Johnson & Johnson retreats. But Stacie is looking for the stock to approach $65. She will no longer like the risk/reward of this trade if it looks like that price rise wont occur. She makes the decision that if Johnson & Johnson bounces off the $64 level over the next couple weeks, she will exit the position for fear that her outlook is wrong. If Johnson & Johnson drifts above $64, however, she will ride the trade out.
In this example, Stacie is willing to lose 1.00 per contract. Without taking into account theta or vega, that 1.00 loss in the option should occur at a stock price of about $63.28. Theta is somewhat relevant here. It helps Stacies potential for profit as time passes. As time passes and as the stock rises, so will theta, helping her even more. If the stock moves lower (against her) theta helps ease the pain somewhat, but the further in-the-money the put, the lower the theta.
Vega can be important here for two reasons: first, because of how implied volatility tends to change with market direction, and second, because it can be read as an indication of the markets expectations.
The Double Whammy
With the stock around $64, there is a negative vega of about seven cents. As the stock moves lower, away from the strike, the vega gets a bit smaller. However, the market conditions that would lead to a decline in the price of Johnson & Johnson would likely cause implied volatility (IV) to rise. If the stock drops, Stacie would have two things working against her—delta and vega—a double whammy. Stacie needs to watch her vega.
Exhibit 5.6
shows the vega of Stacies put as it changes with time and direction.
EXHIBIT 5.6
Johnson & Johnson 65 put vega.
If after one week passes Johnson & Johnson gaps lower to, say, $63.00 a share, the vega will be 0.043 per contract. If IV subsequently rises 5 points as a result of the stock falling, vega will make Stacies puts theoretically worth 21.5 cents more per contract. She will lose $215 on vega (thats 0.043 vega × 5 volatility points × 10 contracts) plus the adverse delta/gamma move.
A gap opening will cause her to miss the opportunity to stop herself out at her target price entirely. Even if the stock drifts lower, her targeted stop-loss price will likely come sooner than expected, as the option price will likely increase both by delta/gamma and vega resulting from rising volatility. This can cause her to have to cover sooner, which leaves less room for error. With this trade, increases in IV due to market direction can make it feel as if the delta is greater than it actually is as the market declines. Conversely, IV softening makes it feel as if the delta is smaller than it is as the market rises.
The second reason IV has importance for this trade (as for most other strategies) is that it can give some indication of how much the market thinks the stock can move. If IV is higher than normal, the market perceives there to be more risk than usual of future volatility. The question remains: Is the higher premium worth the risk?
The answer to this question is subjective. Part of the answer is based on Stacies assessment of future volatility. Is the market right? The other part is based on Stacies risk tolerance. Is she willing to endure the greater price swings associated with the potentially higher volatility? This can mean getting whipsawed, which is exiting a position after reaching a stop-loss point only to see the market reverse itself. The would-be profitable trade is closed for a loss. Higher volatility can also mean a higher likelihood of getting assigned and acquiring an unwanted long stock position.
Cash-Secured Puts
There are some situations where higher implied volatility may be a beneficial trade-off. What if Stacies motivation for shorting puts was different? What if she would like to own the stock, just not at the current market price? Stacie can sell ten 65 puts at 1.75 and deposit $63,250 in her trading account to secure the purchase of 1,000 shares of Johnson & Johnson if she gets assigned. The $63,250 is the $65 per share she will pay for the stock if she gets assigned, minus the 1.75 premium she received for the put × $100 × 10 contracts. Because the cash required to potentially purchase the stock is secured by cash sitting ready in the account, this is called a cash-secured put.
Her effective purchase price if assigned is $63.25—the same as her breakeven at expiration. The idea with this trade is that if Johnson & Johnson is anywhere under $65 per share at expiration, she will buy the stock effectively at $63.25. If assigned, the time premium of the put allows her to buy the stock at a discount compared with where it is priced when the trade is established, $64. The higher the time premium—or the higher the implied volatility—the bigger the discount.
This discount, however, is contingent on the stock not moving too much. If it is above $65 at expiration she wont get assigned and therefore can only profit a maximum of 1.75 per contract. If the stock is below $63.25 at expiration, the time premium no longer represents a discount, in fact, the trade becomes a loser. In a way, Stacie is still selling volatility.
Covered Call
The problem with selling a naked call is that it has unlimited exposure to upside risk. Because of this, many traders simply avoid trading naked calls. A more common, and some would argue safer, method of selling calls is to sell them covered.
A covered call is when calls are sold and stock is purchased on a share-for-share basis to cover the unlimited upside risk of the call. For each call that is sold, 100 shares of the underlying security are bought. Because of the addition of stock to this strategy, covered calls are traded with a different motivation than naked calls.
There are clearly many similarities between these two strategies. The main goal for both is to harvest the premium of the call. The theta for the call is the same with or without the stock component. The gamma and vega for the two strategies are the same as well. The only difference is the stock. When stock is added to an option position, the net delta of the position is the only thing affected. Stock has a delta of one, and all its other greeks are zero.
The pivotal point for both positions is the strike price. Thats the point the trader wants the stock to be above or below at expiration. With the naked call, the maximum payout is reaped if the stock is below the strike at expiration, and there is unlimited risk above the strike. With the covered call, the maximum payout is reaped if the stock is above the strike at expiration. If the stock is below the strike at expiration, the risk is substantial—the stock can potentially go to zero.
Putting It on
There are a few important considerations with the covered call, both when putting on, or entering, the position and when taking off, or exiting, the trade. The risk/reward implications of implied volatility are important in the trade-planning process. Do I want to get paid more to assume more potential risk? More speculative traders like the higher premiums. More conservative (investment-oriented) covered-call sellers like the low implied risk of low-IV calls. Ultimately, a main focus of a covered call is the option premium. How fast can it go to zero without the movement hurting me? To determine this, the trader must study both theta and delta.
The first step in the process is determining which month and strike call to sell. In this example, Harley-Davidson Motor Company (HOG) is trading at about $69 per share. A trader, Bill, is neutral to slightly bullish on Harley-Davidson over the next three months.
Exhibit 5.7
shows a selection of available call options for Harley-Davidson with corresponding deltas and thetas.
EXHIBIT 5.7
Harley-Davidson calls.
In this example, the May 70 calls have 85 days until expiration and are 2.80 bid. If Harley-Davidson remained at $69 until May expiration, the 2.80 premium would represent a 4 percent profit over this 85-day period (2.80 ÷ 69). Thats an annualized return of about 17 percent ([0.04 / 85)] × 365).
Bill considers his alternatives. He can sell the April (57-day) 70 calls at 2.20 or the March (22-day) 70 calls at 0.85. Since there is a different number of days until expiration, Bill needs to compare the trades on an apples-to-apples basis. For this, he will look at theta and implied volatility.
Presumably, the March call has a theta advantage over the longer-term choices. The March 70 has a theta of 0.032, while the April 70s theta is 0.026 and the May 70s is 0.022. Based on his assessment of theta, Bill would have the inclination to sell the March. If he wants exposure for 90 days, when the March 70 call expires, he can roll into the April 70 call and then the May 70 call (more on this in subsequent chapters). This way Bill can continue to capitalize on the nonlinear rate of decay through May.
Next, Bill studies the IV term structure for the Harley-Davidson ATMs and finds the March has about a 19.2 percent IV, the April has a 23.3 percent IV, and the May has a 23 percent IV. March is the cheapest option by IV standards. This is not necessarily a favorable quality for a short candidate. Bill must weigh his assessment of all relevant information and then decide which trade is best. With this type of a strategy, the benefits of the higher theta can outweigh the disadvantages of selling the lower IV. In this case, Bill may actually like selling the lower IV. He may infer that the market believes Harley-Davidson will be less volatile during this period.
So far, Bill has been focusing his efforts on the 70 strike calls. If he trades the March 70 covered call, he will have a net delta of 0.588 per contract. Thats the negative 0.412 delta from shorting the call plus the 1.00 delta of the stock. His indifference point if the trade is held until expiration is $70.85. The indifference point is the point at which Bill would be indifferent as to whether he held only the stock or the covered call. This is figured by adding the strike price of $70 to the 0.85 premium. This is the effective sale price of the stock if the call is assigned. If Bill wants more potential for upside profit, he could sell a higher strike. He would have to sell the April or May 75, since the March 75s are a zero bid. This would give him a higher indifference point, and the upside profits would materialize quickly if HOG moved higher, since the covered-call deltas would be higher with the 75 calls. The April 75 covered-call net delta is 0.796 per contract (the stock delta of 1.00 minus the 0.204 delta of the call). The May 75 covered-call delta is 0.751.
But Bill is neutral to only slightly bullish. In this case, hed rather have the higher premium—high theta is more desirable than high delta in this situation. Bill buys 1,000 shares of Harley-Davidson at $69 and sells 10 Harley-Davidson March 70 calls at 0.85.
Bill also needs to plan his exit. To exit, he must study two things: an at-expiration diagram and his greeks.
Exhibit 5.8
shows the P&(L) at expiration of the Harley-Davidson March 70 covered call.
Exhibit 5.9
shows the greeks.
EXHIBIT 5.8
Harley-Davidson covered call.
EXHIBIT 5.9
Greeks for Harley-Davidson covered call (per contract).
Delta
0.591
Gamma
0.121
Theta
0.032
Vega
0.066
Taking It Off
If the trade works out perfectly for Bill, 22 days from now Harley-Davidson will be trading right at $70. Hed profit on both delta and theta. If the trade isnt exactly perfect, but still good, Harley-Davidson will be anywhere above $68.15 in 22 days. Its the prospect that the trade may not be so good at March expiration that occupies Bills thoughts, but a trader has to hope for the best and plan for the worst.
If it starts to trend, Bill needs to react. The consequences to the stocks trending to the upside are not quite so dire, although he might be somewhat frustrated with any lost opportunity above the indifference point. Its the downside risk that Bill will more vehemently guard against.
First, the same IV/vega considerations exist as they did in the previous examples. In the event the trade is closed early, IV/vega may help or hinder profitability. A rise in implied volatility will likely accompany a decline in the stock price. This can bring Bill to his stop-loss sooner. Delta versus theta however, is the major consideration. He will plan his exit price in advance and cover when the planned exit price is reached.
There are more moving parts with the covered call than a naked option. If Bill wants to close the position early, he can leg out, meaning close only one leg of the trade (the call or the stock) at a time. If he legs out of the trade, hes likely to close the call first. The motivation for exiting a trade early is to reduce risk. A naked call is hardly less risky than a covered call.
Another tactic Bill can use, and in this case will plan to use, is rolling the call. When the March 70s expire, if Harley-Davidson is still in the same range and his outlook is still the same, he will sell April calls to continue the position. After the April options expire, hell plan to sell the Mays.
With this in mind, Bill may consider rolling into the Aprils before March expiration. If it is close to expiration and Harley-Davidson is trading lower, theta and delta will both have devalued the calls. At the point when options are close to expiration and far enough OTM to be offered close to zero, say 0.05, the greeks and the pricing model become irrelevant. Bill must consider in absolute terms if it is worth waiting until expiration to make 0.05. If there is a lot of time until expiration, the answer is likely to be no. This is when Bill will be apt to roll into the Aprils. Hell buy the March 70s for a nickel, a dime, or maybe 0.15 and at the same time sell the Aprils at the bid. This assumes he wants to continue to carry the position. If the roll is entered as a single order, it is called a calendar spread or a time spread.
Covered Put
The last position in the family of basic volatility-selling strategies is the covered put, sometimes referred to as selling puts and stock. In a covered put, a trader sells both puts and stock on a one-to-one basis. The term
covered put
is a bit of a misnomer, as the strategy changes from limited risk to unlimited risk when short stock is added to the short put. A naked put can produce only losses until the stock goes to zero—still a substantial loss. Adding short stock means that above the strike gains on the put are limited, while losses on the stock are unlimited. The covered put functions very much like a naked call. In fact, they are synthetically equal. This concept will be addressed further in the next chapter.
Lets looks at another trader, Libby. Libby is an active trader who trades several positions at once. Libby believes the overall market is in a range and will continue as such over the next few weeks. She currently holds a short stock position of 1,000 shares in Harley-Davidson. She is becoming more neutral on the stock and would consider buying in her short if the market dipped. She may consider entering into a covered-put position. There is one caveat: Libby is leaving for a cruise in two weeks and does not want to carry any positions while she is away. She decides she will sell the covered put and actively manage the trade until her vacation. Libby will sell 10 Harley-Davidson March (22-day) 70 puts at 1.85 against her short 1,000 shares of Harley-Davidson, which is trading at $69 per share.
She knows that her maximum profit if the stock declines and assignment occurs will be $850. Thats 0.85 × $100 × 10 contracts. Win or lose, she will close the position in two weeks when there are only eight days until expiration. To trade this covered put she needs to watch her greeks.
Exhibit 5.10
shows the greeks for the Harley-Davidson 70-strike covered put.
EXHIBIT 5.10
Greeks for Harley-Davidson covered put (per contract).
Delta
0.419
Gamma
0.106
Theta
0.031
Vega
0.066
Libby is really focusing on theta. It is currently about $0.03 per day but will increase if the put stays close-to-the-money. In two weeks, the time premium will have decayed significantly. A move downward will help, too, as the 0.419 delta indicates.
Exhibit 5.11
displays an array of theoretical values of the put at eight days until expiration as the stock price changes.
EXHIBIT 5.11
HOG 70 put values at 8 days to expiry.
As long as Harley-Davidson stays below the strike price, Libby can look at her put from a premium-over-parity standpoint. Below the strike, the intrinsic value of the put doesnt matter too much, because losses on intrinsic value are offset by gains on the stock. For Libby, all that really matters is the time value. She sold the puts at 0.85 over parity. If Harley-Davidson is trading at $68 with eight days to go, she can buy her puts back for 0.12 over parity. Thats a 73-cent profit, or $730 on her 10 contracts. This doesnt account for any changes in the time value that may occur as a result of vega, but vega will be small with Harley-Davidson at $68 and eight days to go. At this point, she would likely close down the whole position—buying the puts and buying the stock—to take a profit on a position that worked out just about exactly as planned.
Her risk, though, is to the upside. A big rally in the stock can cause big losses. From a theoretical standpoint, losses are potentially unlimited with this type of trade. If the stock is above the strike, she needs to have a mental stop order in mind and execute the closing order with discipline.
Curious Similarities
These basic volatility-selling strategies are fairly simple in nature. If the trader believes a stock will not rise above a certain price, the most straightforward way to trade the forecast is to sell a call. Likewise, if the trader believes the stock will not go below a certain price he can sell a put. The covered call and covered put are also ways to generate income on long or short stock positions that have these same price thresholds. In fact, the covered call and covered put have some curious similarities to the naked put and naked call. The similarities between the two pairs of positions are no coincidence. The following chapter sheds light on these similarities.

View File

@@ -0,0 +1,37 @@
90 Part II: Call Option Strategies
The writer should also be aware of whether or not the convertible is catlable
and, if so, what the exact terms are. Once the convertible has been called by the com­
pany, it will no longer trade in relation to the underlying stock, but will instead trade
at the call price. Thus, if the stock should climb sharply, the writer could be incur­
ring losses on his written option without any corresponding benefit from his con­
vertible security. Consequently, if the convertible is called, the entire position should
normally be closed immediately by selling the convertible and buying the option
back.
Other aspects of covered writing, such as rolling down or forward, do not
change even if the option is written against a convertible security. One would take
action based on the relationship of the option price and the common stock price, as
usual.
WRITING AGAINST WARRANTS
It is also possible to write covered call options against warrants. Again, one must own
enough warrants to convert into 100 shares of the underlying stock; generally, this
would be 100 warrants. The transaction must be a cash transaction, the warrants
must be paid for in full, and they have no loan value. Technically, listed warrants may
be marginable, but many brokerage houses still require payment in full. There may
be an additional investment requirement. Warrants also have an exercise price. If the
exercise price of the warrant is higher than the striking price of the call, the covered
writer must also deposit the difference between the two as part of his investment.
The advantage of using warrants is that, if they are deeply in-the-money, they
may provide the cash covered writer with a higher return, since less of an investment
is involved.
Example: XYZ is at 50 and there are XYZ warrants to buy the common at 25. Since
the warrant is so deeply in-the-money, it will be selling for approximately $25 per
warrant. XYZ pays no dividend. Thus, if the writer were considering a covered write
of the XYZ July 50, he might choose to use the warrant instead of the common, since
his investment, per 100 shares of common, would only be $2,500 instead of the
$5,000 required to buy 100 XYZ. The potential profit would be the same in either
case because no dividend is involved.
Even if the stock does pay a dividend (warrants themselves have no dividend),
the writer may still be able to earn a higher return by writing against the warrant than
against the common because of the smaller investment involved. This would depend,
of course, on the exact size of the dividend and on how deeply the warrant is in-the­
money.

View File

@@ -0,0 +1,22 @@
Looking at the right side of the chart, in late July, with IV at around 50
percent and realized vol at around 35 percent, and without the benefit of
knowing what the future will bring, its harder to make a call on how to
trade the volatility. The IV signals that the market is pricing a higher future
level of stock volatility into the options. If the market is right, gamma will
be good to have. But is the price right? If realized volatility does indeed
catch up to implied volatility—that is, if the lines converge at 50 or realized
volatility rises above IV—a trader will have a good shot at covering theta.
If it doesnt, gamma will be very expensive in terms of theta, meaning it
will be hard to cover the daily theta by scalping gamma intraday.
The question is: why is IV so much higher than realized? If important
news is expected to be released in the near future, it may be perfectly
reasonable for the IV to be higher, even significantly higher, than the
stocks realized volatility. One big move in the stock can produce a nice
profit, as long as theta doesnt have time to work its mischief. But if there is
no news in the pipeline, there may be some irrational exuberance—in the
words of ex-Fed chairman Alan Greenspan—of option buyers rushing to
acquire gamma that is overvalued in terms of theta.
In fact, a lack of expectation of news could indicate a potential bearish
volatility play: sell volatility with the intent of profiting from daily theta
and a decline in IV. This type of play, however, is not for the fainthearted.
No one can predict the future. But one thing you can be sure of with this

View File

@@ -0,0 +1,38 @@
858 Part VI: Measuring and Trading Volatility
FIGURE 40-5.
Gamma comparison, with XYZ = 50, t = three months.
8
7
0 6
0
~ 5
<ti
E 4 E
~ 3
2
TABLE 40-5.
40 45
Low Volatility
Very High Volatility
50 55 60
Strike Price
65
Gamma comparison for varying volatilities (XYZ = 50, t = 3
months).
Gamma Very
Strike Low Volatility High Volatility High Volatility
40 .003 .013 .017
45 .039 .039 .022
50 .086 .057 .024
55 .057 .049 .025
60 .015 .028 .023
65 .002 .012 .020
As before, the position still has a delta long of almost 700 shares. In addition,
one can now see that it has a positive gamma of over 300 shares. This means that the
delta can be expected to change by 328 shares for each point that XYZ moves: If it
moves up 1 point, the delta will increase to +1,014 (the current delta, 686, plus the
gamma of 328). However, ifXYZ moves down by 1 point, then the delta will decrease
to +358 (the current delta, 686, less the gamma of 328).
Note that, in the above example, if XYZ continues higher, the gamma will
remain positive (although it will eventually shrink some), and the delta will continue
to increase. This means the position is getting longer and longer - a fact that makes

View File

@@ -0,0 +1,25 @@
Disclaimer
This book is intended to be educational in nature, both theoretically and
practically. It is meant to generally explore the factors that influence option
prices so that the reader may gain an understanding of how options work in
the real world. This book does not prescribe a specific trading system or
method. This book makes no guarantees.
Any strategies discussed, including examples using actual securities and
price data, are strictly for illustrative and educational purposes only and are
not to be construed as an endorsement, recommendation, or solicitation to
buy or sell securities. Examples may or may not be based on factual or
historical data.
In order to simplify the computations, examples may not include
commissions, fees, margin, interest, taxes, or other transaction costs.
Commissions and other costs will impact the outcome of all stock and
options transactions and must be considered prior to entering into any
transactions. Investors should consult their tax adviser about potential tax
consequences. Past performance is not a guarantee of future results.
Options involve risks and are not suitable for everyone. While much of
this book focuses on the risks involved in option trading, there are market
situations and scenarios that involve unique risks that are not discussed.
Prior to buying or selling an option, a person should read Characteristics
and Risks of Standardized Options (ODD) . Copies of the ODD are
available from your broker, by calling 1-888-OPTIONS, or from The
Options Clearing Corporation, One North Wacker Drive, Chicago, Illinois
60606.

View File

@@ -0,0 +1,41 @@
Chapter 2: Covered Call Writing 77
the writer would buy back only 5 of the January 20's and sell 5 January 15 calls. He
would then have this position:
long 1,000 XYZ at 20;
short 5 XYZ January 20's at 2;
short 5 XYZ January 15's at 2½; and
realized gain, $750 from 5 January 20's.
This strategy is generally referred to a partial roll-down, in which only a portion of
the original calls is rolled, as opposed to the more conventional complete roll-down.
Analyzing the partially rolled position makes it clear that the writer no longer locks
in a loss.
IfXYZ rallies back above 20, the writer would, at expiration, sell 500 XYZ at 20
(breaking even) and 500 at 15 (losing $2,500 on this portion). He would make $1,000
from the five January 20's held until expiration, plus $1,250 from the five January 15's,
plus the $750 of realized gain from the January 20's that were rolled down. This
amounts to $3,000 worth of option profits and $2,500 worth of stock losses, or an
overall net gain of $500, less commissions. Thus, the partial roll-down offers the
writer a chance to make some profit if the stock rebounds. Obviously, the partial roll­
down will not provide as much downside protection as the complete roll-down does,
but it does give more protection than not rolling down at all. To see this, compare the
results given in Table 2-23 if XYZ is at 15 at expiration.
TABLE 2-23.
Stock at 15 at expiration.
Strategy
Original position
Partial roll-down
Complete roll-down
Stock Loss
-$5,000
- 5,000
- 5,000
Option
Profit Total Loss
+$2,000 -$3,000
+ 3,000 - 2,000
+ 4,000 - 1,000
In summary, the covered writer who would like to roll down, but who does not
want to lock in a loss or who feels the stock may rebound somewhat before expira­
tion, should consider rolling down only part of his position. If the stock should con­
tinue to drop, making it evident that there is little hope of a strong rebound back to
the original strike, the rest of the position can then be rolled down as well.

View File

@@ -0,0 +1,39 @@
204
XYZ common, 70;
XYZ July 50, 20;
XYZ July 60, 12; and
XYZ July 70, 5.
Part II: Call Option Strategies
The butterfly spread would require a debit of only $100 plus commissions to estab­
lish, because the cost of the calls at the higher and lower strike is 25 points, and a 24-
point credit would be obtained by selling two calls at the middle strike. This is indeed
a low-cost butterfly spread, but the stock will have to move down in price for much
of a profit to be realized. The maximum profit of $900 less commissions would be
realized at 60 at expiration. The strategist would have to be bearish on XYZ to want
to establish such a spread.
Without the aid of an example, the reader should be able to determine that if
XYZ were originally at 50, a low-cost butterfly spread could be established by buying
the 50, selling two 60's, and buying a 70. In this case, however, the investor would
have to be bullish on the stock, because he would want it to move up to 60 by expi­
ration in order for the maximum profit to be realized.
In general, then, if the butterfly spread is to be established at an extremely low
debit, the spreader will have to make a decision as to whether he wants to be bullish
or bearish on the underlying stock. Many strategists prefer to remain as neutral as
possible on the underlying stock at all times in any strategy. This philosophy would
lead to slightly higher debits, such as the $300 debit in the example at the beginning
of this chapter, but would theoretically have a better chance of making money
because there would be a profit if the stock remained relatively unchanged, the most
probable occurrence.
In either philosophy, there are other considerations for the butterfly spread.
The best butterfly spreads are generally found on the more expensive and/or more
volatile stocks that have striking prices spaced 10 or 20 points apart. In these situa­
tions, the maximum profit is large enough to overcome the weight of the commission
costs involved in the butterfly spread. When one establishes butterfly spreads on
lower-priced stocks whose striking prices are only 5 points apart, he is normally put­
ting himself at a disadvantage unless the debit is extremely small. One exception to
this rule is that attractive situations are often found on higher-priced stocks with
striking prices 5 points apart (50, 55, and 60, for example). They do exist from time
to time.
In analyzing butterfly spreads, one commonly works with closing prices. It was
mentioned earlier that using closing prices for analysis can prove somewhat mislead­
ing, since the actual execution will have to be done at bid and asked prices, and these

View File

@@ -0,0 +1,24 @@
Because volatility has peaks and troughs, this can be a smart time to sell a
calendar. The focus here is in seeing the “cheap” front month rise back up
to normal levels, not so much in seeing the “expensive” back month fall.
This trade is certainly not without risk. If the market doesnt move, the
negative theta of the short calendar leads to a slow, painful death for
calendar sellers.
Another scenario in which the back-month volatility can trade higher than
the front is when the market expects higher movement after the expiration
of the short-term option but before the expiration of the long-term option.
Situations such as the expectation of the resolution of a lawsuit, a product
announcement, or some other one-time event down the road are
opportunities for the market to expect such movement. This strategy
focuses on the back-month vol coming back down to normal levels, not on
the front-month vol rising. This can be a more speculative situation for a
volatility trade, and more can go wrong.
The biggest volatility risk in selling a time spread is that what goes up can
continue to go up. The volatility disparity here is created by hedgers and
speculators favoring long-term options, hence pushing up the volatility, in
anticipation of a big future stock move. As the likely date of the anticipated
event draws near, more buyers can be attracted to the market, driving up IV
even further. Realized volatility can remain low as investors and traders lie
in wait. This scenario is doubly dangerous when volatility rises and the
stock doesnt move. A trader can lose on negative theta and lose on negative
vega.

View File

@@ -0,0 +1,37 @@
Chapter 34: Futures and Futures Options 655
However, the point is that the businessman is able to substantially reduce the cur­
rency risk, since in six months there could be a large change in the relationship
between the U.S. dollar and the Swiss franc. While his hedge might not eliminate
every bit of the risk, it will certainly get rid of a very large portion of it.
SPECULATING
While the hedgers provide the economic function of futures, speculators provide the
liquidity. The attraction for speculators is leverage. One is able to trade futures with
very little margin. Thus, large percentages of profits and losses are possible.
Example: A futures contract on cotton is for 50,000 pounds of cotton. Assume the
March cotton future is trading at 60 (that is, 60 cents per pound). Thus, one is con­
trolling $30,000 worth of cotton by owning this contract ($0.60 per pound x 50,000
pounds). However, assume the exchange minimum margin is $1,500. That is, one has
to initially have only $1,500 to trade this contract. This means that one can trade cot­
ton on 5% margin ($1,500/$30,000 = 5%).
What is the profit or risk potential here? A one-cent move in cotton, from 60 to
61, would generate a profit of $500. One can always determine what a one-cent move
is worth as long as he knows the contract size. For cotton, the size is 50,000 pounds,
so a one-cent move is 0.01 x 50,000 = $500.
Consequently, if cotton were to fall three cents, from 60 to 57, this speculator
would lose 3 x $500, or $1,500 - his entire initial investment. Alternatively, a 3-cent
move to the upside would generate a profit of $1,500, a 100% profit.
This example clearly demonstrates the large risks and rewards facing a specula­
tor in futures contracts. Certain brokerage firms may require the speculator to place
more initial margin than the exchange minimum. Usually, the most active customers
who have a sufficient net worth are allowed to trade at the exchange minimum mar­
gins; other customers may have to put up two or three times as much initial margin
in order to trade. This still allows for a lot of leverage, but not as much as the specu­
lator has who is trading with exchange minimum margins. Initial margin require­
ments can be in the form of cash or Treasury bills. Obviously, if one uses Treasury
bills to satisfy his initial margin requirements, he can be earning interest on that
money while it serves as collateral for his initial margin requirements. If he uses cash
for the initial requirement, he will not earn interest. (Note: Some large customers do
earn credit on the cash used for margin requirements in their futures accounts, but
most customers do not.)
A speculator will also be required to keep his account current daily through the
use of maintenance mar~is account is marked to market daily, so unrealized

View File

@@ -0,0 +1,37 @@
Understanding and Managing Leverage 175
also fall to $2.50. If, instead, the value of the underlying security increases
by $2.50, the value of that allocation will rise to $7.50.
In a levered portfolio, each $5 allocation uses some proportion of
capital that is not yours—borrowed in the case of a margin loan and con-
tingently borrowed in the case of an option. This means that for every
$1 increase or decrease in the value of the underlying security, the lev-
ered allocation increases or decreases by more than $1. Leverage, in this
context, represents the rate at which the value of the allocation increases
or decreases for every one-unit change in the value of the underlying
security.
When thinking about the risk of leverage, we must treat different types
of losses differently. A realized loss represents a permanent loss of capital—a
sunk cost for which future returns can offset but never undo. An unrealized
loss may affect your psychology but not your wealth (unless you need to
realize the loss to generate cash flow for something else—I talk about this
in Chapter 11 when I address hedging). For this reason, when we measure
how much leverage we have when the underlying security declines, we will
measure it on the basis of how close we are to suffering a realized loss rather
than on the basis of the unrealized value of the loss. Leverage on the profit
side will be handled the same way: we will treat our fair value estimate as the
price at which we will realize a gain. Because the current market price of a
security may not sit exactly between our fair value estimate and the point at
which we suffer a realized loss, our upside and downside leverage may be
different.
Lets see how this comes together with an actual example. For this ex-
ample, I looked at the price of Intels (INTC) shares and options when the
former were trading at $22.99. Lets say that we want to commit 5 percent
of our portfolio value to an investment in Intel, which we believe is worth
$30 per share. For every $100,000 in our portfolio, this would mean buying
217 shares. This purchase would cost us $4,988.83 (neglecting taxes and
fees, of course) and would leave us with $11.17 of cash in reserve. After we
made the buy, the stock price would fluctuate, and depending on what its
price was at the end of 540 days [Im using as an investment horizon the
days to expiration of the longest-tenor long-term equity anticipation secu-
rities (LEAPS)], the allocations profit and loss profile would be represented
graphically like this:

View File

@@ -0,0 +1,37 @@
178 Part II: Call Option Strategies
must be pointed out that the bull spread has fewer dollars at risk and, if the under­
lying stock should drop rather than rise, the bull spread will often have a smaller loss
than the outright call purchase would.
The longer it takes for the underlying stock to advance, the more the advantage
swings to the spread. Suppose XYZ does not get to 35 until expiration. In this case,
the October 30 call would be worth 5 points and the October 35 call would be worth­
less. The outright purchase of the October 30 call would make a 2-point profit less
one commission, but the spread would now have a 3-point profit, less two commis­
sions. Even with the increased commissions, the spreader will make more of a prof­
it, both dollarwise and percentagewise.
Many traders are disappointed with the low profits available from a bull spread
when the stock rises almost immediately after the position is established. One way to
partially off set the problem with the spread not widening out right away is to use a
greater distance between the two strikes. When the distance is great, the spread has
room to widen out, even though it won't reach its maximum profit potential right
away. Still, since the strikes are "far apart," there is more room for the spread to
widen even if the underlying stock rises immediately.
The conclusion that can be drawn from these examples is that, in general, the
outright purchase is a better strategy if one is looking for a quick rise by the under­
lying stock. Overall, the bull spread is a less aggressive strategy than the outright pur­
chase of a call. The spread will not produce as much of a profit on a short-term move,
or on a sustained, large upward move. It will, however, outperform the outright pur­
chase of a call if the stock advances slowly and moderately by expiration. Also, the
spread always involves fewer actual dollars of risk, because it requires a smaller debit
to establish initially. Table 7-2 summarizes which strategy has the upper hand for var­
ious stock movements over differing time periods.
TABLE 7-2.
Bull spread and outright purchase compared.
If the underlying stock ...
Remains
Relatively Advonces Advances
Declines Unchanged Moderately Substantially
in ...
1 week Bull spread Bull spread Outright purchase Outright purchase
1 month Bull spread Bull spread Outright purchase Outright purchase
At expiration Bull spread Bull spread Bull spread Outright purchase

View File

@@ -0,0 +1,25 @@
Good and Bad Dates with Models
Using an incorrect date for the ex-date in option pricing can lead to
unfavorable results. If the ex-dividend date is not known because it has yet
to be declared, it must be estimated and adjusted as need be after it is
formally announced. Traders note past dividend history and estimate the
expected dividend stream accordingly. Once the dividend is declared, the
ex-date is known and can be entered properly into the pricing model. Not
executing due diligence to find correct known ex-dates can lead to trouble.
Using a bad date in the model can yield dubious theoretical values that can
be misleading or worse—especially around the expiration.
Say a call is trading at 2.30 the day before the ex-date of a $0.25
dividend, which happens to be thirty days before expiration. The next day,
of course, the stock may have moved higher or lower. Assume for
illustrative purposes, to compare apples to apples as it were, that the stock is
trading at the same price—in this case, $76.
If the trader is using the correct date in the model, the option value will
adjust to take into account the effect of the dividend expiring, or reaching
its ex-date, when the number of days to expiration left changes from 30 to
29. The call trading postdividend will be worth more relative to the same
stock price. If the dividend date the trader is using in the model is wrong,
say one day later than it should be, the dividend will still be an input of the
theoretical value. The calculated value will be too low. It will be wrong.
Exhibit 8.1 compares the values of a 30-day call on the ex-date given the
right and the wrong dividend.
EXHIBIT 8.1 Comparison of 30-day call values

View File

@@ -0,0 +1,7 @@
Disclaimer
This book is intended to be educational in nature, both theoretically and practically. It is meant to generally explore the factors that influence option prices so that the reader may gain an understanding of how options work in the real world. This book does not prescribe a specific trading system or method. This book makes no guarantees.
Any strategies discussed, including examples using actual securities and price data, are strictly for illustrative and educational purposes only and are not to be construed as an endorsement, recommendation, or solicitation to buy or sell securities. Examples may or may not be based on factual or historical data.
In order to simplify the computations, examples may not include commissions, fees, margin, interest, taxes, or other transaction costs. Commissions and other costs will impact the outcome of all stock and options transactions and must be considered prior to entering into any transactions. Investors should consult their tax adviser about potential tax consequences. Past performance is not a guarantee of future results.
Options involve risks and are not suitable for everyone. While much of this book focuses on the risks involved in option trading, there are market situations and scenarios that involve unique risks that are not discussed. Prior to buying or selling an option, a person should read
Characteristics and Risks of Standardized Options (ODD)
. Copies of the ODD are available from your broker, by calling 1-888-OPTIONS, or from The Options Clearing Corporation, One North Wacker Drive, Chicago, Illinois 60606.

View File

@@ -0,0 +1,48 @@
Chapter 35: Futures Option Strategies for Futures Spreads
Future or Option
January heating oil futures:
January unleaded gasoline futures:
January heating oil 60 call:
January unleaded gas 62 put:
Price
.6550
.5850
6.40
4.25
715
Time Value
Premium
0.90
0.75
The differential in futures prices is .07, or 7 cents per gallon. He thinks it could
grow to 12 cents or so by early winter. However, he also thinks that oil and oil prod­
ucts have the potential to be very volatile, so he considers using the options. One cent
is worth $420 for each of these items.
The time value premium of the options is 1.65 for the put and call combined. If
he pays this amount ($693) per combination, he can still make money if the futures
widen by 5.00 points, as he expects. Moreover, the option spread gives him the
potential for profits if oil products are volatile, even if he is wrong about the futures
relationship.
Therefore, he decides to buy five combinations:
Position
Buy 5 January heating oil 60 calls @ 6.40
Buy 5 January unleaded 62 puts @ 4.25
Total cost:
Cost
$13,440
8,925
$22,365
This initial cost is substantially larger than the initial margin requirement for
five futures spreads, which would be about $7,000. Moreover, the option cost must
be paid for in cash, while the futures requirement could be taken care of with
Treasury bills, which continue to earn money for the spreader. Still, the strategist
believes that the option position has more potential, so he establishes it.
Notice that in this analysis, the strategist compared his time value premium cost
to the profit potential he expected from the futures spread itself This is often a good
way to evaluate whether or not to use options or futures. In this example, he thought
that, even if futures prices remained relatively unchanged, thereby wasting away his
time premium, he could still make money - as long as he was correct about heating
oil outperforming unleaded gasoline.
Some follow-up actions will now be examined. If the futures rally, the position
becomes long. Some profit might have accrued, but the whole position is subject to
losses if the futures fall in price. The strategist can calculate the extent to which his

View File

@@ -0,0 +1,38 @@
Chapter 10: Tire Butterfly Spread 207
can estimate that the commission cost for each option is about 1/s point. That is, if one
has 10 butterfly spreads and the spread is currently at 6 points, he could figure that
he would net about 5½ points after commissions to close the spread. This 1/s estimate
is only valid if the spreader has at least 10 options at each strike involved in a spread.
Normally, one would not close the spread early to limit losses, since these loss­
es are limited to the original net debit in any case. However, if the original debit was
large and the stock is beginning to break out above the higher strike or to break down
below the lower strike, the spreader may want to close the spread to limit losses even
further.
It has been repeatedly stated that one should not attempt to ''leg" out of a
spread because of the risk that is incurred if one is wrong. However, there is a
method of legging out of a butterfly spread that is acceptable and may even be pru­
dent. Since the spread consists of both a bull spread and a bear spread, it may often
be the case that the stock experiences a relatively substantial move in one direction
or the other during the life of the butterfly spread, and that the bull spread portion
or the bear spread portion could be closed out near their maximum profit potentials.
If this situation arises, the spreader may want to take advantage of it in order to be
able to profit more if the underlying stock reverses direction and comes back into the
profit range.
Exampk: This strategy can be explained by using the initial example from this chap­
ter and then assuming that the stock falls from 60 to 45. Recall that this spread was
initially established with a 3-point debit and a maximum profit potential of 7 points.
The profit range was 53 to 67 at July expiration. However, a rather unpleasant situa­
tion has occurred: The stock has fallen quickly and is below the profit range. If the
spreader does nothing and keeps the spread on, he will lose 3 points at most if the
stock remains below 50 until July expiration. However, by increasing his risk slightly,
he may be able to improve his position. Notice in Table 10-3 that the bear spread por­
tion of the overall spread - short July 60, long July 70 - has very nearly reached its
maximum potential. The bear spread could be bought back for ½ point total (pay 1
point to buy back the July 60 and receive½ point from selling out the July 70). Thus,
the spreader could convert the butterfly spread to a bull spread by spending ½ point.
What would such an action do to his overall position? First, his risk would be
increased by the ½ point spent to close the bear spread. That is, if XYZ continues to
remain below 50 until July expiration, he would now lose 3½ rather than 3 points,
plus commissions in either case. He has, however, potentially helped his chances of
realizing something close to the maximum profit available from the original butterfly
spread.

View File

@@ -0,0 +1,25 @@
example, this 1:2 contract backspread has a delta of 0.02 and a gamma of
+0.05. Fewer than 10 deltas could be scalped if the stock moves up and
down by one point. It becomes a more practical trade as the position size
increases. Of course, more practical doesnt necessarily guarantee it will be
more profitable. The market must cooperate!
Backspread Example
Lets say a 20:40 contract backspread is traded. (Note : In trader lingo this is
still called a one-by-two; it is just traded 20 times.) The spread price is still
1.00 credit per contract; in this case, thats $2,000. But with this type of
trade, the spread price is not the best measure of risk or reward, as it is with
some other kinds of spreads. Risk and reward are best measured by delta,
gamma, theta, and vega. Exhibit 16.2 shows this trades greeks.
EXHIBIT 16.2 Greeks for 20:40 backspread with the underlying at $71.
Backspreads are volatility plays. This spread has a +1.07 vega with the
stock at $71. It is, therefore, a bullish implied volatility (IV) play. The IV of
the long calls, the 75s, is 30 percent, and that of the 70s is 32 percent. Much
as with any other volatility trade, traders would compare current implied
volatility with realized volatility and the implied volatility of recent past
and consider any catalysts that might affect stock volatility. The objective is
to buy an IV that is lower than the expected future stock volatility, based on
all available data. The focus of traders of this backspread is not the dollar
credit earned. They are more interested in buying a 30 volatility—thats the
focus.
But the 75 calls IV is not the only volatility figure to consider. The short
options, the 70s, have implied volatility of 32 percent. Because of their

View File

@@ -0,0 +1,36 @@
234 Part II: Call Option Strategies
TABLE 13·1.
Profits and losses for reverse ratio spread.
XYZ Price at Profit on Profit on Total
July Expiration 1 July 40 2 July 45's Profit
35 +$ 400 -$ 200 +$ 200
40 + 400 200 + 200
42 + 200 200 0
45 100 200 300
48 400 + 400 0
55 - 1,100 + 1,800 + 700
70 - 2,600 + 4,800 + 2,200
spread portion is long the July 45 and short the July 40. This requires a $500 collat­
eral requirement, because there are 5 points difference in the striking prices. The
credit of $200 received for the entire spread can be applied against the initial
requirement, so that the total requirement would be $300 plus commissions. There
is no increase or decrease in this requirement, since there are no naked calls.
Notice that the concept of a delta-neutral spread can be utilized in this strate­
gy, in much the same way that it was used for the ratio call spread. The number of
calls to buy and sell can be computed mathematically by using the deltas of the
options involved.
Example: The neutral ratio is determined by dividing the delta of the July 45 into the
delta of the July 40.
Prices
XYZ common: = 43
XYZ July 40 call: 4
XYZ July 45 call:
Delta
.80
.35
In this case, that would be a ratio of 2.29:1 (.80/.35). That is, if one sold 5 July 40's,
he would buy 11 July 45's (or if he sold 10, he would then buy 23). By beginning with
a neutral ratio, the spreader should be able to make money on a quick move by the
stock in either direction.
The neutral ratio can also help the spreader to avoid being too bearish or too
bullish to begin with. For example, a spreader would not be bullish enough if he

View File

@@ -0,0 +1,70 @@
682 Part V: Index Options and Futures
The real value in being able to use the options when a future is locked limit up
or limit down, of course, is to be able to hedge one's position. Simplistically, if a trad­
er came in long the August soybean futures and they were locked limit down as in
the example above, he could use the puts and calls to effectively close out his posi­
tion.
Example: As before, August soybeans are at 620, locked down the limit of 30 cents.
A trader has come into this trading day long the futures and he is very worried. He
cannot liquidate his long position, and if soybeans should open down the limit again
tomorrow, his account will be wiped out. He can use the August options to close out
his position.
Recall that it has been shown that the following is true:
Long put + Short call is equivalent to short stock.
It is also equivalent to short futures, of course. So if this trader were to buy a
put and short a call at the same strike, then he would have the equivalent of a short
futures position to offset his long futures position.
Using the following prices, which are the same as before, one can see how his
risk is limited to the effective futures price of 613. That is, buying the put and selling
the call is the same as selling his futures out at 613, down 37 cents on the trading day.
Current prices:
Option
August 625 call
August 625 put
Position:
Buy August 625 put for 19
Sell August 625 call for 31
August Futures
at Option
Expiration Put Price
575 50
600 25
613 12
625 0
650 0
Put
P/L
+ $1,900
600
- 1,900
- 3,100
3,100
Last Sale
Price
19
31
Call Price
0
0
0
0
25
Call
P/L
+$1,900
+ 1,900
+ 1,900
+ 1,900
600
Net Change
for the Day
-21
+16
Net Profit
or loss on
Position
+$3,800
+ 1,300
0
- 1,200
- 3,700

View File

@@ -0,0 +1,25 @@
LEAPS
Options buyers have time working against them. With each passing day,
theta erodes the value of their assets. Buying a long-term option, or a
LEAPS, helps combat erosion because long-term options can decay at a
slower rate. In environments where there is interest rate uncertainty,
however, LEAPS traders have to think about more than the rate of decay.
Consider two traders: Jason and Susanne. Both are bullish on XYZ Corp.
(XYZ), which is trading at $59.95 per share. Jason decides to buy a May 60
call at 1.60, and Susanne buys a LEAPS 60 call at 7.60. In this example,
May options have 44 days until expiration, and the LEAPS have 639 days.
Both of these trades are bullish, but the traders most likely had slightly
different ideas about time, volatility, and interest rates when they decided
which option to buy. Exhibit 7.1 compares XYZ short-term at-the-money
calls with XYZ LEAPS ATM calls.
EXHIBIT 7.1 XYZ short-term call vs. LEAPS call.
To begin with, it appears that Susanne was allowing quite a bit of time for
her forecast to be realized—almost two years. Jason, however, was looking
for short-term price appreciation. Concerns about time decay may have
been a motivation for Susanne to choose a long-term option—her theta of
0.01 is half Jasons, which is 0.02. With only 44 days until expiration, the
theta of Jasons May call will begin to rise sharply as expiration draws near.
But the trade-off of lower time decay is lower gamma. At the current
stock price, Susanne has a higher delta. If the XYZ stock price rises $2, the
gamma of the May call will cause Jasons delta to creep higher than
Susannes. At $62, the delta for the May 60s would be about 0.78, whereas

View File

@@ -0,0 +1,38 @@
Chapter 41: Taxes 917
that is too deeply in-the-money (if one exists), and eliminate the holding period on
the stock
Qualified Covered Call. The preceding examples and discussion summa­
rize the covered writing rules. Let us now look at what is a qualified covered call.
The following rules are the literal interpretation. Most investors work from
tables that are built from these rules. Such a table may be found in Appendix E.
(Be aware that these rules may change, and consult a tax advisor for the latest
figures.) A covered call is qualified if:
1. the option has more than 30 days of life remaining when it is written, and
2. the strike of the written call is not lower than the following benchmarks:
a. First determine the applicable stock price (ASP). That is normally the closing
price of the stock on the previous day. However, if the stock opens more than
ll0% higher than its previous close, then the applicable stock price is that
higher opening.
b. If the ASP is less than $25, then the benchmark strike is 85% of ASP. So any
call written with a strike lower than 85% of ASP would not be qualified. (For
example, if the stock was at 12 and one wrote a call with a striking price of 10,
it would not be qualified- it is too deeply in-the-money.)
c. If the ASP is between 25.13 and 60, then the benchmark is the next lowest
strike. Thus, if the stock were at 39 and one wrote a call with a strike of 35, it
would be qualified.
d. If the ASP is greater than 60 and not higher than 150, and the call has more
than 90 days of life remaining, the benchmark is two strikes below the ASP.
There is a further condition here that the benchmark cannot be more than 10
points lower than the ASP. Thus, if a stock is trading at 90, one could write a
call with a strike of 80 as long as the call had more than 90 days remaining
until expiration, and still be qualified.
e. If the ASP is greater than 150 and the call has more than 90 days of life remain­
ing, the benchmark is two strikes below the ASP. Thus, if there are 10-point
striking price intervals, then one could write a call that was 20 points in-the­
money and still be qualified. Of course, if there are 5-point intervals, then one
could not write a call deeper than 10 points in-the-money and still be qualified.
These rules are complicated. That is why they are summarized in Appendix E.
In addition, they are always subject to change, so if an investor is considering writing
an in-the-money covered call against stock that is still short-term in nature, he should
check with his tax advisor and/or broker to determine whether the in-the-money call
is qualified or not.

View File

@@ -0,0 +1,40 @@
454
A Complete Guide to the Futures mArket
attempts to capitalize on this forecast by initiating a 5-contract long New Y ork coffee/short London
coffee spread. Assume the projection is correct, and London coffee prices decline from $0.80/lb to
$0.65/lb, while New Y ork coffee prices simultaneously decline from $1.41/lb to $1.31/lb. At sur-
face glance, it might appear this trade is successful, since the trader is short London coffee (which has
declined by $0.15/lb) and long New Y ork coffee (which has lost only $0.10/lb). However, the trade
actually loses money (even excluding commissions). The explanation lies in the fact that the contract
sizes for the New Y ork and London coffee contracts are different: The size of the New Y ork coffee
contract is 37,500 lb, while the size of the London coffee contract is 10 metric tonnes, or 22,043 lb.
(Note: In practice, the London coffee contract is quoted in dollars/tonne; the calculations in this sec-
tion reflect a conversion into $/pound for easier comparison with the New Y ork coffee contract.)
Because of this disparity, an equal contract position really implies a larger commitment in New Y ork
coffee. Consequently, such a spread position is biased toward gaining in bull coffee markets (assuming
the long position is in New Y ork coffee) and losing in bear markets. The long New Y ork/short London
spread position in our example actually loses $2,218 plus commissions, despite the larger decline in
London coffee prices:
Profit/los so f co ntractso f units per c ontrac tg ain/loss=× ×## per un it
Profit/loss in long New York coffee positio n5 37 5000=× ×,( $. .) $,10/lb1 8 750=
Profit/loss in short London coffee position = 52 20 43×× +,( $001 5/lb 16 532.) $,=+
Net profit/l oss in sprea d2 218= $,
The difference in contract size between the two markets could have been offset by adjusting the
contract ratio of the spread to equalize the long and short positions in terms of units (lb). The gen-
eral procedure would be to place U1/U2 contracts of the smaller-unit market (i.e., London coffee)
against each contract of the larger-unit contract (i.e., New Y ork coffee). (U1 and U2 represent the
number of units per contract in the respective markets—U1 = 37,500 lb and U2 = 22,043 lb.) Thus,
in the New Y ork coffee/London coffee spread, each New Y ork coffee contract would be offset by
1.7 (37,500/22,043) London coffee contracts, implying a minimum equal-unit spread of five London
coffee versus three New Y ork coffee (rounding down the theoretical 5.1-contract London coffee posi-
tion to 5 contracts.) This unit-equalized spread would have been profitable in the above example:
Profit/los so f co ntractso f units per c ontrac tg ain/loss=× ×## per un it
Profit/loss in long New York coffee positio n3 37 5000=× ×,( $. .) $,10/lb1 1 250=
Profit/loss in short London coffee position 52 20 43 0=× ×+,( $. 115/lb +1 6 532)$ ,=
Net profit/l oss in sprea d+ 5 282= $,
The unit-size adjustment, however, is not the end of our story. It can be argued that even the
equalized-unit New Y ork coffee/London coffee spread is still unbalanced, since there is another signifi-
cant difference between the two markets: London coffee prices are lower than New Y ork coffee prices.
This observation raises the question of whether it is more important to neutralize the spread against
equal price moves or equal-percentage price moves. The rationale for the latter approach is that, all
else being equal, the magnitude of price changes is likely to be greater in the higher-priced market.

View File

@@ -0,0 +1,38 @@
S64 Part V: Index Options and Futures
However, the concept is still a valid one, and it is now generally being practiced
with the purchase of put options. The futures strategy was, in theory, superior to buy­
ing puts because the portfolio manager was supposed to be able to collect the pre­
mium from selling the futures. However, its breakdown came during the crash in that
it was impossible to buy the insurance when it was most needed - similar to attempt­
ing to buy fire insurance while your house is burning down.
Currently, the portfolio manager buys puts to protect his portfolio. Many of
these puts are bought directly over-the-counter from major banks or brokerage hous­
es, for they can be tailored directly to the portfolio manager's liking. This practice
concerns regulators somewhat, because the major banks and brokerage houses that
are selling the puts are taking some risk, of course. They hedge the sales (with futures
or other puts), but regulators are concerned that, if another crash occurred, it would
be the writers of these puts who would be in the market selling futures. in a mad fren­
zy to protect their short put positions. Hopefully, the put sellers will be able to hedge
their positions properly without disturbing the stock market to any great degree.
IMPACT AT EXPIRATION - THE RUSH TO EXIT
Some traders persist in attempting to get out of their positions on the last day, at the
last minute. These traders are not normally professional arbitrageurs, but institu­
tional clients who are large enough to practice market basket hedging. Moreover,
they have positions in indices whose options expire at the close of trading (OEX, for
example). If these hedgers have stock to sell, what generally happens is that some
traders begin to sell before the close, figuring they will get better prices by beating
the crowd to the exit. Thus, about an hour before the close, the market may begin to
drift down and then accelerate as the closing bell draws nearer. Finally, right on the
bell that announces the end of trading for the day, whatever stock has not yet been
sold will be sold on blocks - normally significantly lower than the previous last sale.
These depressed sales will make the index decline in price dramatically at the last
minute, when there is no longer an opportunity to trade against it.
These blocks are often purchased by large trading houses that advance their
own capital to take the hedgers out of their positions. The hedgers are generally cus­
tomers of the block trading houses. Normally, on Monday, the market will rebound
somewhat and these blocks of stock can be sold back into the market at a profit.
Whatever happens on Monday, though, is of little solace to the trader trapped
in the aftermath of the Friday action. For example, if one happened to be short puts
and the index was near the strike as the close of trading was drawing near on Friday
afternoon, he might decide to do nothing and merely allow the puts to expire, figur­
ing that he would buy them back for a small cost when he was assigned at expiration.

View File

@@ -0,0 +1,43 @@
444
A Complete Guide to the Futures mArket
3. s preads involving a spot month near expiration can move independently of, or contrary to, the
direction implied by the general rule. the reason is that the price of an expiring position is criti-
cally dependent upon various technical considerations involving the delivery situation, and wide
distortions are common.
4. A bull move that is primarily technical in nature may fail to influence a widening of the nearby
premiums since no real near-term tightness exists. (
such a price advance will usually only be
temporary in nature.)
5. g overnment intervention (e.g., export controls, price controls, etc.), or even the expectation
of government action, can completely distort normal spread relationships.
therefore, it is important that when initiating spreads in these commodities, the trader keep in
mind not only the likely overall market direction, but also the relative magnitude of existing spread
differences and other related factors.
Commodities Conforming to the Inverse of the General rule
some commodities, such as gold and silver, conform to the exact inverse of the general rule: in a ris-
ing market distant months gain relative to more nearby contracts, and in a declining market they lose
relative to the nearby positions. In fact, in these markets, a long forward/short nearby spread is often a good
proxy for an outright long position, and the reverse spread can be a substitute position for an outright short.
in
each of these markets nearby months almost invariably trade at a discount, which tends to widen in
bull markets and narrow in bear markets.
the reason for the tendency of near months in gold and silver to move to a wider discount in a
bull market derives from the large worldwide stock levels of these metals. generally speaking, price
fluctuations in gold and silver do not reflect near-term tightness or surplus, but rather the markets
changing perception of their value.
in a bull market, the premium of the back months will increase
because higher prices imply increased carrying charges (i.e., interest costs will increase as the total
value of the contract increases). Because the forward months implicitly contain the cost of carrying
the commodity, their premium will tend to widen when these costs increase. Although the preced-
ing represents the usual pattern, there have been a few isolated exceptions due to technical factors.
Commodities Bearing Little or No relationship to the General rule
Commodities in which there is little correlation between general price direction and spread differ-
ences usually fall into the category of nonstorable commodities (cattle and live hogs). W e will exam-
ine the case of live cattle to illustrate why this there is no consistent correlation between price and
spread direction in nonstorable markets.
Live cattle, by definition, is a completely nonstorable commodity. When feedlot cattle reach mar-
ket weight, they must be marketed; unlike most other commodities, they obviously cannot be placed
in storage to await better prices. (
to be perfectly accurate, cattle feeders have a small measure of
flexibility, in that they can market an animal before it reaches optimum weight or hold it for a while
after. However, economic considerations will place strong limits on the extent of such marketing

View File

@@ -0,0 +1,36 @@
102 Part II: Call Option Strategies
apparently are attracted by the leverage available from options, but they often lose
money via option trading as well.
What many of these option-oriented day traders fail to realize is that, for day­
trading purposes, the instrument with the highest possible delta should be used. That
instrument is the underlying, for it has a delta of 1.0. Day trading is hard enough
without complicating it by trying to use options. So of you're day trading Microsoft
(MSFT), trade the stock, not an option.
What makes options difficult in such a short-term situation is their relatively
wide bid-asked spread, as compared to that of the underlying instrument itself. Also,
a day trader is looking to capture only a small part of the underlying's daily move; an
at-the-money or out-of-the-money option just won't respond well enough to those
movements. That is, if the delta is too low, there just isn't enough room for the option
day trader to make money.
If a day trader insists on using options, a short-term, in-the-money should be
bought, for it has the largest delta available - preferably something approaching .90
or higher. This option will respond quickly to small movements by the underlying.
SHORT-TERM TRADING
Suppose one employs a strategy whereby he expects to hold the underlying for
approximately a week or two. In this case, just as with day trading, a high delta is
desirable. However, now that the holding period is more than a day, it may be appro­
priate to buy an option as opposed to merely trading the underlying, because the
option lessens the risk of a surprisingly large downside move. Still, it is the short­
term, in-the-money option that should be bought, for it has the largest delta, and will
thus respond most closely to the movement in the underlying stock. Such an option
has a very high delta, usually in excess of .80. Part of the reason that the high-delta
options make sense in such situations is that one is fairly certain of the timing of day
trading or very short-term trading systems. When the system being used for selection
of which stock to trade has a high degree of timing accuracy, then the high-delta
option is called for.
INTERMEDIATE-TERM TRADING
As the time horizon of one's trading strategy lengthens, it is appropriate to use an
option with a lesser delta. This generally means that the timing of the selection
process is less exact. One might be using a trading system based, for ernmple, on sen­
timent, which is generally not an exact timing indicator, but rather one that indicates
a general trend change at major turning points. The timing of the forthcoming move

View File

@@ -0,0 +1,23 @@
EXHIBIT 15.4 Analytics for long 20 Acme Brokerage Co. 75-strike
straddles.
As with any trade, the risk is that the trader is wrong. The risk here is
indicated by the 2.07 theta and the +3.35 vega. Susan has to scalp an
average of at least $207 a day just to break even against the time decay. And
if IV continues to ebb down to a lower, more historically normal, level, she
needs to scalp even more to make up for vega losses.
Effectively, Susan wants both realized and implied volatility to rise. She
paid 36 volatility for the straddle. She wants to be able to sell the options at
a higher vol than 36. In the interim, she needs to cover her decay just to
break even. But in this case, she thinks the stock will be volatile enough to
cover decay and then some. If Acme moves at a volatility greater than 36,
her chances of scalping profitably are more favorable than if it moves at
less than 36 vol. The following is one possible scenario of what might have
happened over two weeks after the trade was made.
Week One
During the first week, the stocks volatility tapered off a bit more, but
implied volatility stayed firm. After some oscillation, the realized volatility
ended the week at 34 percent while IV remained at 36 percent. Susan was
able to scalp stock reasonably well, although she still didnt cover her seven
days of theta. Her stock buys and sells netted a gain of $1,100. By the end
of week one, the straddle was 5.10 bid. If she had sold the straddle at the
market, she would have ended up losing $200.

View File

@@ -0,0 +1,35 @@
December call go to zero, the position is still a profitable trade because of
the continued month-to-month rolling. This is now a no-lose situation.
When the long call of the spread has been paid for by rolling, there are
three choices moving forward: sell it, hold it, or continue writing calls
against it. If the traders opinion calls for the stock to decline, its logical to
sell the December call and take the residual value as profit. In this case,
over three months the trade will have produced 4.50 in premium from the
sale of three consecutive one-month calls, which is more than the initial
purchase price of the December call. At September expiration, the premium
that will be received for selling the December call is all profit, plus 0.50,
which is the aggregate premium minus the initial cost of the December call.
If the outlook is for the underlying to rise, it makes sense to hold the call.
Any appreciation in the value of the call resulting from delta gains as the
underlying moves higher is good—$0.50 plus whatever the call can be sold
for.
If the forecast is for XYZ to remain neutral, its logical to continue selling
the one-month call. Because the December call has been financed by the
aggregate short call premiums already, additional premiums earned by
writing calls are profit with “free” protection. As long as the short is closed
at its expiration, the risk of loss is eliminated.
This is the general nature of rolling calls in a calendar spread. Its a
beautiful plan when it works! The problem is that it is incredibly unlikely
that the stock will stay right at $60 per share for five months. Its almost
inevitable that it will move at some point. Its like a game of Russian
roulette. At some point its going to be a losing proposition—you just dont
know when. The benefit of rolling is that if the trade works out for a few
months in a row, the long call is paid for and the risk of loss is covered by
aggregate profits.
If we step outside this best-case theoretical world and consider what is
really happening on a day-to-day basis, we can gain insight on how to
manage this type of trade when things go wrong. Effectively, a long
calendar is a typical gamma/theta trade. Negative gamma hurts. Positive
theta helps.
If we knew which way the stock was going, we would simply buy or sell
stock to adjust to get long or short deltas. But, unfortunately, we dont. Our

View File

@@ -0,0 +1,23 @@
66 •   TheIntelligentOptionInvestor
still fall slowly. Time decay is governed by the shape of the BSM cone and
the degree to which an options range of exposure is contained within the
BSM cone. The two basic rules to remember are:
1. Time decay is slowest when more than three months are left
before expiration and becomes faster the closer one moves toward
expiration.
2. Time decay is slowest for ITM options and becomes faster the
closer to OTM the option is.
Visually, we can understand the first rule—that time decay increases
as the option nears expiration—by observing the following:
Slope is shallow here...
But steep here...
The steepness of the slope of the curve at the two different points
shows the relative speed of time decay. Because the slope is steeper the less
time there is on the contract, time decay is faster at this point as well.
Visually, we can understand the second rule—that OTM options lose
value faster than ITM ones—by observing the following:
Time BT ime A Time BT ime A
GREEN
GREEN
ORANGE
OTM option ITM option

View File

@@ -0,0 +1,36 @@
Understanding and Managing Leverage 179
In this example, we suffer a realized loss of 96 percent (= $4,800 ÷
$5,000) if the stock falls 35 percent, so the equation becomes
= = ×Lossleverage 96%
35% 2.8
(By convention, Ill always write the loss leverage as a negative.) This
equation just means that it takes a drop of 35 percent to realize a loss on
96 percent of the allocation.
The profit leverage is simply a ratio of the levered portfolios net profit
to the unlevered portfolios net profit at the fair value estimate. For this
example, we have
== ×Profitleverage $4,200
$1,472 3.0
Lets do the same exercise for the ATM and OTM options and see
what fully levered portfolios with each of these options would look like
from a risk-return perspective. If we bought as many $22-strike options as
a $5,000 position size would allow (19 contracts in all), our profit and loss
graph and table would look like this:
02468 10 12 14 16 18 20 22 24
Stock Price
Levered Strategy Overview
Gain (Loss) on Allocation
26 28 30 32 34 36 38 40 42 44 46 48 50(20,000)
-
40,000
60,000
80,000
100,000
20,000
Unrealized Gain
Unrealized Loss
Cash Value
Net Gain (Loss) - Levered
Realized Loss

View File

@@ -0,0 +1,34 @@
732 Part VI: Measuring and Trading Volatility
al volatility was lower, then when you make the volatility prediction for tomorrow,
you'll probably want to adjust it downward, using the experience of the real world,
where you see volatility declining. This also incorporates the common-sense notion
that volatility tends to remain the same; that is, tomorrow's volatility is likely to be
much like today's. Of course, that's a little bit like saying tomorrow's weather is likely
to be the same as today's (which it is, two-thirds of the time, according to statistics).
It's just that when a tornado hits, you have to realize that your forecast could be wrong.
The same thing applies to GARCH volatility projections. They can be wrong, too.
So, GARCH does not do a perfect job of estimating and forecasting volatility. In
fact, it might not even be superior, from a strategist's viewpoint, to using the simple
minimum/maximum techniques outlined in the previous section. It is really best
geared to predicting short-term volatility and is favored most heavily by dealers in
currency options who must adjust their markets constantly. For longer-term volatility
projections, which is what a position trader of volatility is interested in, GAR CH may
not be all that useful. However, it is considered state-of-the-art as far as volatility pre­
dicting goes, so it has a following among theoretically oriented traders and analysts.
MOVING AVERAGES
Some traders try to use moving averages of daily composite implied volatility read­
ings, or use a smoothing of recent past historical volatility readings to make volatility
estimates. As mentioned in the chapter on mathematical applications, once the com­
posite daily implied volatility has been computed, it was recommended that a
smoothing effect be obtained by taking a moving average of the 20 or 30 days'
implied volatilities. In fact, an exponential moving average was recommended,
because it does not require one to keep accessing the last 20 or 30 days' worth of data
in order to compute the moving average. Rather, the most recent exponential mov­
ing average is all that's needed in order to compute the next one.
IMPLIED VOLATILITY
Implied volatility has been mentioned many times already, but we want to expand on
its concept before getting deeper into its measure and uses later in this section.
Implied volatility pertains only to options, although one can aggregate the implied
volatilities of the various options trading on a particular underlying instrument to
produce a single number, which is often referred to as the implied volatility of the
underlying.

View File

@@ -0,0 +1,215 @@
Appendix
I. The Logarithm, LogNormal Distribution, and Geometric Brownian Motion,
with contributions from Jacob Perlman
For the following section, let
be the initial value of some asset or collection of assets and
the value at time
. Given the goals of investing, the most obvious statistic to evaluate an investment or portfolio is the profit or loss:
. However, according to the efficient market hypothesis (EMH), assets should be judged relative to their initial size, represented using returns,
.
The returns of the asset from time 0 to time
can also be written in terms of each individual return over that time frame. More specifically, for an integer
, if
then the returns,
, can be split into a telescoping
1
product.
(A.1)
The EMH states that each term in this product should be independent and similarly distributed. The central limit theorem, and many other powerful tools in probability theory, concern long
sums
of independent random variables. To apply these tools to this telescoping product of random variables, it first must be converted into a sum of random variables. Logarithms offer a convenient way to accomplish this.
Logarithmic functions are a class of functions with wide applications in science and mathematics. Though there are several equivalent definitions, the simplest is as the inverse of exponentiation. If
and
are positive numbers, and
, then
(read as “the log base
of
”) is the number such that
. For example,
can be equivalently written as
.
The choice of base is largely arbitrary, only affecting the logarithm by a constant multiple. If
is another possible base, then
. In mathematics, the most common choice is Euler's constant, a special number:
. Using this constant as a base results in the
natural logarithm
, denoted
. The justification for this choice largely comes down to notational convenience, such as when taking derivatives:
. In this example, as
, using
avoids the accumulation of cumbersome and not particularly meaningful constant factors.
As
, logarithms have the useful property
2
given by:
(A.2)
This property transforms the telescoping product given above into a sum of small independent pieces, given by the following equation:
(A.3)
The central limit theorem states that if a random variable is made by adding together many independently random pieces, then the result will be normally distributed. One can, therefore, conclude that log returns are normally distributed. Observe the following:
(A.4)
This suggests that stock prices follow a lognormal distribution or a distribution where the logarithm of a random variable is normally distributed. Within the context of BlackScholes, this implies that stock logreturns evolve as Brownian motion (normally distributed), and stock prices evolve as geometric Brownian motion (lognormally distributed). The lognormal distribution is more appropriate to describe stock prices because the lognormal distribution cannot have negative values and is skewed according to the volatility of price, as shown in the comparisons in
Figure A.1
.
II. Expected Range, Strike Skew, and the Volatility Smile
The majority of this book refers to expected range approximated with the following equation:
(A.5)
For a stock trading at current price
with volatility
and riskfree rate
, the BlackScholes theoretical
price range at a future time
for this asset is given by the following equation:
(A.6)
The equation in (
A.5
) is a valid approximation of this formula when
is small, which follows from the mathematical relation
. Generally speaking, (
A.5
) is a very rough approximation for expected range, and it becomes less accurate in high volatility conditions, when
is larger.
Though (
A.5
) still yields a reasonable, backoftheenvelope estimate for expected range, the one standard deviation expected move range is calculated on most trading platforms according to the following:
(A.7)
Figure A.1
Comparison of the lognormal distribution (a) and the normal distribution (b). The mean and standard deviation of the normal distribution are the exponentiated parameters of the lognormal distribution.
According to the EMH, this is simply the expected future price displacement, i.e., price of atthemoney (ATM) straddle, with additional terms (prices of near ATM strangles) to counterbalance the heavy tails pulling the expected value beyond the central 68%. To see how this formula compares with the (
A.5
) approximation, consider the statistics in
Table A.1
.
Table A.1
Expected 30day price range approximations for an underlying with a price of $100 and implied volatility (IV) of 20%. According to the BlackScholes model, the pershare prices for the 30day options are $4.58 for the straddle, $3.64 for the strangle one strike from ATM, and $2.85 for the strangle two strikes from ATM.
30Day Expected Price Range Comparison
Equation (A.5)
Equation (A.7)
$5.73
$4.13
Compared to
Equation (A.5)
,
Equation (A.7)
is a more attractive way to calculate expected range on trading platforms because it is computationally simpler and independent of a rigid mathematical model. However, neither of these expected range calculations take
skew
into account.
When comparing contracts across the options chain, an interesting phenomenon commonly observed is the
volatility smile
. According to the BlackScholes model, options with the same underlying and duration should have the same implied volatility, regardless of strike price (as volatility is a property of the underlying). However, because the market values each contract differently and implied volatility is derived from from options prices, the implied volatilities across strikes often vary. A volatility smile appears when the implied volatility is lowest for contracts near ATM and increases as the strikes move further outofthemoney (OTM). Similarly, a volatility smirk (also known as volatility skew) is a weighted volatility smile, where the options with lower strikes tend to have higher IV than options with higher strikes. The opposite of the volatility smirk is described as forward skew, which is relatively rare, having occurred, for example, with GME in early 2021. For an example of volatility skew, consider the SPY 30 days to expiration (DTE) OTM option data shown in
Figure A.2
.
Figure A.2
Volatility curve for OTM 30 DTE SPY calls and puts, collected on November 15, 2021, after the close.
The volatility curve in
Figure A.2
is clearly asymmetric around the ATM strike, with the options with lower strikes (OTM puts) having higher IVs than options with higher strikes (OTM calls). This type of curve is useful for analyzing the perceived value of OTM contracts. Compared to ATM volatility, OTM puts are generally overvalued while OTM calls are generally undervalued until very far OTM (near $510). This suggests that traders are willing to pay a higher premium to protect against downside risk compared to upside risk.
This is an example of put skew, a consequence of put contracts further from ATM being perceived as equivalently risky as call contracts closer to ATM.
Table A.2
reproduces data from
Chapter 5
.
Table A.2
Data for 16
SPY strangles with different durations from April 20, 2021. The first row is the distance between the strike for a 16
put and the price of the underlying for different DTEs (i.e., if the price of the underlying is $100 and the strike for a 16
put is $95, then the put distance is [$100 $95]/$100 = 5%). The second row is the distance between the strike for a 16
call and the price of the underlying for different contract durations.
16
SPY Option Distance from ATM
Option Type
15 DTE
30 DTE
45 DTE
Put Distance
3.9%
6.5%
8.0%
Call Distance
2.4%
3.9%
4.9%
This skew results from market fear to the
downside
, meaning the market fears larger extreme moves to the downside more than extreme moves to the upside. According to the EMH, the skew has already been priced into the current value of the underlying. Hence, the put skew implies that the market views large moves to the downside as more likely than large moves to the upside but small moves to the upside as being the most likely outcome overall. For a given duration, the strikes for the 16
puts and calls approximately correspond to the one standard deviation expected range of that asset over that time frame. For example, since SPY was trading at approximately $413 on April 20, 2021, the 30day expected price move to the upside was $16 and the expected price move to the downside was $27 according to the 16
options.
III. Conditional Probability
Conditional probability is mentioned briefly in this book, but it is an interesting concept in probability theory worthy of a short discussion. Conditional probability is the probability that an event will occur, given that another event occurred. Consider the following examples:
Given that the ground is wet, what is the probability that it rained?
Given that the last roll of a fair die was six, what is the probability that the next roll will also be a six?
Given that SPY had an up day yesterday, what is the probability it will have an up day tomorrow?
Analyzing probabilities conditionally looks at the likelihood of a given outcome within the context of known information. For events
and
the conditional probability
(read as the probability of
, given
) is calculated as follows:
(A.8)
where
is the probability that event
occurs and
is the probability that
and
occur. For example, suppose
is the event that it rains on any given day and
(20% chance of rain). Suppose
is the event that there is a tornado on any given day, there is a 1% chance of a tornado occurring on any given day, and tornados never happen without rain, meaning that
. Therefore, given that it is a rainy day, we have the following probability that a tornado will appear:
In other words, a tornado is five times more likely to appear if it is raining than under regular circumstances.
IV. The Kelly Criterion,
derivation courtesy of Jacob Perlman
The Kelly Criterion is a concept from information theory and was originally created to analyze signal transmission through noisy communication channels. It can be used to determine the optimal theoretical bet size for a repeated game, presuming the odds and payouts are known. The Kelly bet size is the fraction of the bankroll that maximizes the expected longterm growth rate of the game, more specifically the logarithm of wealth. For a game with probability
of winning
and a probability
of losing 1 (the full wager), the Kelly bet size is given as follows:
(A.9)
This is the theoretically optimal fraction of the bankroll to maximize the expected growth rate of the game. A brief justification for this formula follows from the paper listed in Reference 4.
Consider a game with probability
of winning
and a probability
of losing the full wager. If a player has
in starting wealth and bets a fraction of that wealth,
, on this game, the player's goal is to choose a value of
that maximizes their wealth growth after
bets.
If the player has
wins and
losses in the
plays of this game, then:
Over many bets of this game, the loggrowth rate is then given by the following:
following from the law of large numbers
The bet size that maximizes the longterm growth rate corresponds to
.
The Kelly Criterion can also be applied to asset management to determine the theoretically optimal allocation percentage for a trade with known (or approximated) probability of profit (POP) and edge. More specifically, for an option with a given duration and POP, the optimal fraction of the bankroll to allocate to this trade is approximately:
(A.10)
where
is the riskfree rate and
is the duration of the trade in years. The derivation for this equation is outlined as follows:
For a game with probability
of winning
and a probability
of losing 1 unit, the expected change in bankroll after one play is given by
.
For an investment of time
with the riskfree rate given by
, the expected change in value is estimated by
, derived from the future value of the game with continuous compounding. Assuming that
is small, then
.
For the bet to be fairly priced, the change in the bankroll should also equal
. Therefore, if
, the odds for this trade can be estimated as
.
Using this value for
in the Kelly Criterion formula, one arrives at the following:
This then yields the approximate optimal proportion of bankroll to allocate to a given trade, substituting
for
and POP for
.
Notes
1
So called because adjacent numerators and denominators cancel, allowing the long product to be collapsed like a telescope.
2
Stated abstractly, logarithms are the group homomorphisms between
and
.

View File

@@ -0,0 +1,145 @@
CHAPTER 14
Studying Volatility Charts
Implied and realized volatility are both important to option traders. But equally important is to understand how the two interact. This relationship is best studied by means of a volatility chart. Volatility charts are invaluable tools for volatility traders (and all option traders for that matter) in many ways.
First, volatility charts show where implied volatility (IV) is now compared with where its been in the past. This helps a trader gauge whether IV is relatively high or relatively low. Vol charts do the same for realized volatility. The realized volatility line on the chart answers three questions:
Have the past 30 days been more or less volatile for the stock than usual?
What is a typical range for the stocks volatility?
How much volatility did the underlying historically experience in the past around specific recurring events?
When IV lines and realized volatility lines are plotted on the same chart, the divergences and convergences of the two spell out the whole volatility story for those who know how to read it.
Nine Volatility Chart Patterns
Each individual stock and the options listed on it have their own unique realized and implied volatility characteristics. If we studied the vol charts of 1,000 stocks, wed likely see around 1,000 different volatility patterns. The number of permutations of the relationship of realized to implied volatility is nearly infinite, but for the sake of discussion, we will categorize volatility charts into nine general patterns.
1
1. Realized Volatility Rises, Implied Volatility Rises
The first volatility chart pattern is that in which both IV and realized volatility rise. In general, this kind of volatility chart can line up three ways: implied can rise more than realized volatility; realized can rise more than implied; or they can both rise by about the same amount. The chart below shows implied volatility rising at a faster rate than realized vol. The general theme in this case is that the stocks price movement has been getting more volatile, and the option prices imply even higher volatility in the future.
This specific type of volatility chart pattern is commonly seen in active stocks with a lot of news. Stocks du jour, like some Internet stocks during the tech bubble of the late 1990s, story stocks like Apple (AAPL) around the release of the iPhone in 2007, have rising volatilities, with the IV outpacing the realized volatility. Sometimes individual stocks and even broad market indexes and exchange-traded funds (ETFs) see this pattern, when the market is declining rapidly, like in the summer of 2011.
A delta-neutral long-volatility position bought at the beginning of May, according to
Exhibit 14.1
, would likely have produced a winner. IV took off, and there were sure to be plenty of opportunities to profit from gamma with realized volatility gaining strength through June and July.
EXHIBIT 14.1
Realized volatility rises, implied volatility rises.
Source
: Chart courtesy of
iVolatility.com
Looking at the right side of the chart, in late July, with IV at around 50 percent and realized vol at around 35 percent, and without the benefit of knowing what the future will bring, its harder to make a call on how to trade the volatility. The IV signals that the market is pricing a higher future level of stock volatility into the options. If the market is right, gamma will be good to have. But is the price right? If realized volatility does indeed catch up to implied volatility—that is, if the lines converge at 50 or realized volatility rises above IV—a trader will have a good shot at covering theta. If it doesnt, gamma will be very expensive in terms of theta, meaning it will be hard to cover the daily theta by scalping gamma intraday.
The question is: why is IV so much higher than realized? If important news is expected to be released in the near future, it may be perfectly reasonable for the IV to be higher, even significantly higher, than the stocks realized volatility. One big move in the stock can produce a nice profit, as long as theta doesnt have time to work its mischief. But if there is no news in the pipeline, there may be some irrational exuberance—in the words of ex-Fed chairman Alan Greenspan—of option buyers rushing to acquire gamma that is overvalued in terms of theta.
In fact, a lack of expectation of news could indicate a potential bearish volatility play: sell volatility with the intent of profiting from daily theta and a decline in IV. This type of play, however, is not for the fainthearted. No one can predict the future. But one thing you can be sure of with this trade: youre in for a wild ride. The lines on this chart scream volatility. This means that negative-gamma traders had better be good and had better be right!
In this situation, hedgers and speculators in the market are buying option volatility of 50 percent, while the stock is moving at 35 percent volatility. Traders putting on a delta-neutral volatility-selling strategy are taking the stance that this stock will not continue increasing in volatility as indicated by option prices; specifically, it will move at less than 50 percent volatility—hopefully a lot less. They are taking the stance that the markets expectations are wrong.
Instead of realized and implied volatility both trending higher, sometimes there is a sharp jump in one or the other. When this happens, it could be an indication of a specific event that has occurred (realized volatility) or news suddenly released of an expected event yet to come (implied volatility). A sharp temporary increase in IV is called a spike, because of its pointy shape on the chart. A one-day surge in realized volatility, on the other hand, is not so much a volatility spike as it is a realized volatility mesa. Realized volatility mesas are shown in
Exhibit 14.2
.
EXHIBIT 14.2
Volatility mesas.
Source
: Chart courtesy of
iVolatility.com
The patterns formed by the gray line in the circled areas of the chart shown below are the result of typical one-day surges in realized volatility. Here, the 30-day realized volatility rose by nearly 20 percentage points, from about 20 percent to about 40 percent, in one day. It remained around the 40 percent level for 30 days and then declined 20 points just as fast as it rose.
Was this entire 30-day period unusually volatile? Not necessarily. Realized volatility is calculated by looking at price movements within a certain time frame, in this case, thirty business days. That means that a really big move on one day will remain in the calculation for the entire time. Thirty days after the unusually big move, the calculation for realized volatility will no longer contain that one-day price jump. Realized volatility can then drop significantly.
2. Realized Volatility Rises, Implied Volatility Remains Constant
This chart pattern can develop from a few different market conditions. One scenario is a one-time unanticipated move in the underlying that is not expected to affect future volatility. Once the news is priced into the stock, there is no point in hedgers buying options for protection or speculators buying options for a leveraged bet. What has happened has happened.
There are other conditions that can cause this type of pattern to materialize. In
Exhibit 14.3
, the IV was trading around 25 for several months, while the realized volatility was lagging. With hindsight, it makes perfect sense that something had to give—either IV needed to fall to meet realized, or realized would rise to meet market expectations. Here, indeed, the latter materialized as realized volatility had a steady rise to and through the 25 level in May. Implied, however remained constant.
EXHIBIT 14.3
Realized volatility rises, implied volatility remains constant.
Source
: Chart courtesy of
iVolatility.com
Traders who were long volatility going into the May realized-vol rise probably reaped some gamma benefits. But those who got in “too early,” buying in January or February, would have suffered too great of theta losses before gaining any significant profits from gamma. Time decay (theta) can inflict a slow, painful death on an option buyer. By studying this chart in hindsight, it is clear that options were priced too high for a gamma scalper to have a fighting chance of covering the daily theta before the rise in May.
This wasnt necessarily an easy vol-selling trade before the May realized-vol rise, either, depending on the traders timing. In early February, realized did in fact rise above implied, making the short volatility trade much less attractive.
Traders who sold volatility just before the increase in realized volatility in May likely ended up losing on gamma and not enough theta profits to make up for it. There was no volatility crush like what is often seen following a one-day move leading to sharply higher realized volatility. IV simply remained pretty steady throughout the month of May and well into June.
3. Realized Volatility Rises, Implied Volatility Falls
This chart pattern can manifest itself in different ways. In this scenario, the stock is becoming more volatile, and options are becoming cheaper. This may seem an unusual occurrence, but as we can see in
Exhibit 14.4
, volatility sometimes plays out this way. This chart shows two different examples of realized vol rising while IV falls.
EXHIBIT 14.4
Realized volatility rises, implied volatility falls.
Source
: Chart courtesy of
iVolatility.com
The first example, toward the left-hand side of the chart, shows realized volatility trending higher while IV is trending lower. Although fundamentals can often provide logical reasons for these volatility changes, sometimes they just cant. Both implied and realized volatility are ultimately a function of the market. There is a normal oscillation to both of these figures. When there is no reason to be found for a volatility change, it might be an opportunity. The potential inefficiency of volatility pricing in the options market sometimes creates divergences such as this one that vol traders scour the market in search of.
In this first example, after at least three months of IVs trading marginally higher than realized volatility, the two lines converge and then cross. The point at which these lines meet is an indication that IV may be beginning to get cheap.
First, its a potentially beneficial opportunity to buy a lower volatility than that at which the stock is actually moving. The gamma/theta ratio would be favorable to gamma scalpers in this case, because the lower cost of options compared with stock fluctuations could lead to gamma profits. Second, with IV at 35 at the first crossover on this chart, IV is dipping down into the lower part of its four-month range. One can make the case that it is getting cheaper from a historical IV standpoint. There is arguably an edge from the perspective of IV to realized volatility and IV to historical IV. This is an example of buying value in the context of volatility.
Furthermore, if the actual stock volatility is rising, its reasonable to believe that IV may rise, too. In hindsight we see that this did indeed occur in
Exhibit 14.4
, despite the fact that realized volatility declined.
The example circled on the right-hand side of the chart shows IV declining sharply while realized volatility rises sharply. This is an example of the typical volatility crush as a result of an earnings report. This would probably have been a good trade for long volatility traders—even those buying at the top. A trader buying options delta neutral the day before earnings are announced in this example would likely lose about 10 points of vega but would have a good chance to more than make up for that loss on positive gamma. Realized volatility nearly doubled, from around 28 percent to about 53 percent, in a single day.
4. Realized Volatility Remains Constant, Implied Volatility Rises
Exhibit 14.5
shows that the stock is moving at about the same volatility from the beginning of June to the end of July. But during that time, option premiums are rising to higher levels. This is an atypical chart pattern. If this was a period leading up to an anticipated event, like earnings, one would anticipate realized volatility falling as the market entered a wait-and-see mode. But, instead, statistical volatility stays the same. This chart pattern may indicate a potential volatility-selling opportunity. If there is no news or reason for IV to have risen, it may simply be high tide in the normal ebb and flow of volatility.
EXHIBIT 14.5
Realized volatility remains constant, implied volatility rises.
Source
: Chart courtesy of
iVolatility.com
In this example, the historical volatility oscillates between 20 and 24 for nearly two months (the beginning of June through the end of July) as IV rises from 24 to over 30. The stock price is less volatile than option prices indicate. If there is no news to be dug up on the stock to lead one to believe there is a valid reason for the IVs trading at such a level, this could be an opportunity to sell IV 5 to 10 points higher than the stock volatility. The goal here is to profit from theta or falling vega or both while not losing much on negative gamma. As time passes, if the stock continues to move at 20 to 23 vol, one would expect IV to fall and converge with realized volatility.
5. Realized Volatility Remains Constant, Implied Volatility Remains Constant
This volatility chart pattern shown in
Exhibit 14.6
is typical of a boring, run-of-the-mill stock with nothing happening in the news. But in this case, no news might be good news.
EXHIBIT 14.6
Realized volatility remains constant, implied volatility remains constant.
Source
: Chart courtesy of
iVolatility.com
Again, the gray is realized volatility and the black line is IV.
Its common for IV to trade slightly above or below realized volatility for extended periods of time in certain assets. In this example, the IV has traded in the high teens from late January to late July. During that same time, realized volatility has been in the low teens.
This is a prime environment for option sellers. From a gamma/theta standpoint, the odds favor short-volatility traders. The gamma/theta ratio provides an edge, setting the stage for theta profits to outweigh negative-gamma scalping. Selling calls and buying stock delta neutral would be a trade to look at in this situation. But even more basic strategies, such as time spreads and iron condors, are appropriate to consider.
This vol-chart pattern, however, is no guarantee of success. When the stock oscillates, delta-neutral traders can negative scalp stock if they are not careful by buying high to cover short deltas and then selling low to cover long deltas. Time-spread and iron condor trades can fail if volatility increases and the increase results from the stock trending in one direction. The advantage of buying IV lower than realized, or selling it above, is statistical in nature. Traders should use a chart of the stock price in conjunction with the volatility chart to get a more complete picture of the stocks price action. This also helps traders make more informed decisions about when to hedge.
6. Realized Volatility Remains Constant, Implied Volatility Falls
Exhibit 14.7
shows two classic implied-realized convergences. From mid-September to early November, realized volatility stayed between 22 and 25. In mid-October the implied was around 33. Within the span of a few days, the implied vol collapsed to converge with the realized at about 22.
EXHIBIT 14.7
Realized volatility remains constant, implied volatility falls.
Source
: Chart courtesy of
iVolatility.com
There can be many catalysts for such a drop in IV, but there is truly only one reason: arbitrage. Although it is common for a small difference between implied and realized volatility—1 to 3 points—to exist even for extended periods, bigger disparities, like the 7- to 10-point difference here cannot exist for that long without good reason.
If, for example, IV always trades significantly above the realized volatility of a particular underlying, all rational market participants will sell options because they have a gamma/theta edge. This, in turn, forces options prices lower until volatility prices come into line and the arbitrage opportunity no longer exists.
In
Exhibit 14.7
, from mid-March to mid-May a similar convergence took place but over a longer period of time. These situations are often the result of a slow capitulation of market makers who are long volatility. The traders give up on the idea that they will be able to scalp enough gamma to cover theta and consequently lower their offers to advertise their lower prices.
7. Realized Volatility Falls, Implied Volatility Rises
This setup shown in
Exhibit 14.8
should now be etched into the souls of anyone who has been reading up to this point. It is, of course, the picture of the classic IV rush that is often seen in stocks around earnings time. The more uncertain the earnings, the more pronounced this divergence can be.
EXHIBIT 14.8
Realized volatility falls, implied volatility rises.
Source
: Chart courtesy of
iVolatility.com
Another classic vol divergence in which IV rises and realized vol falls occurs in a drug or biotech company when a Food and Drug Administration (FDA) decision on one of the companys new drugs is imminent. This is especially true of smaller firms without big portfolios of drugs. These divergences can produce a huge impliedrealized disparity of, in some cases, literally hundreds of volatility points leading up to the announcement.
Although rising IV accompanied by falling realized volatility can be one of the most predictable patterns in trading, it is ironically one of the most difficult to trade. When the anticipated news breaks, the stock can and often will make a big directional move, and in that case, IV can and likely will get crushed. Vega and gamma work against each other in these situations, as IV and realized volatility converge. Vol traders will likely gain on one vol and lose on the other, but its very difficult to predict which will have a more profound effect. Many traders simply avoid trading earnings events altogether in favor of less erratic opportunities. For most traders, there are easier ways to make money.
8. Realized Volatility Falls, Implied Volatility Remains Constant
This volatility shift can be marked by a volatility convergence, divergence, or crossover.
Exhibit 14.9
shows the realized volatility falling from around 30 percent to about 23 percent while IV hovers around 25. The crossover here occurs around the middle of February.
EXHIBIT 14.9
Realized volatility falls, implied volatility remains constant.
Source
: Chart courtesy of
iVolatility.com
The relative size of this volatility change makes the interpretation of the chart difficult. The last half of September saw around a 15 percent decline in realized volatility. The middle of October saw a one-day jump in realized of about 15 points. Historical volatility has had several dynamic moves that were larger and more abrupt than the seven-point decline over this six-week period. This smaller move in realized volatility is not necessarily an indication of a volatility event. It could reflect some complacency in the market. It could indicate a slow period with less trading, or it could simply be a natural contraction in the ebb and flow of volatility causing the calculation of recent stock-price fluctuations to wane.
What is important in this interpretation is how the options market is reacting to the change in the volatility of the stock—where the rubber hits the road. The markets apparent assessment of future volatility is unchanged during this period. When IV rises or falls, vol traders must look to the underlying stock for a reason. The options market reacts to stock volatility, not the other way around.
Finding fundamental or technical reasons for surges in volatility is easier than finding specific reasons for a decline in volatility. When volatility falls, it is usually the result of a lack of news, leading to less price action. In this example, probably nothing happened in the market. Consequently, the stock volatility drifted lower. But it fell below the lowest IV level seen for the six-month period leading up to the crossover. It was probably hard to take a confident stance in volatility immediately following the crossover. It is difficult to justify selling volatility when the implied is so cheap compared with its historic levels. And it can be hard to justify buying volatility when the options are priced above the stock volatility.
The two-week period before the realized line moved beneath the implied line deserves closer study. With the IV four or five points lower than the realized volatility in late January, traders may have been tempted to buy volatility. In hindsight, this trade might have been profitable, but there was surely no guarantee of this. Success would have been greatly contingent on how the traders managed their deltas, and how well they adapted as realized volatility fell.
During the first half of this period, the stock volatility remained above implied. For an experienced delta-neutral trader, scalping gamma was likely easy money. With the oscillations in stock price, the biggest gamma-scalping risk would have been to cover too soon and miss out on opportunities to take bigger profits.
Using the one-day standard deviation based on IV (described in Chapter 3) might have produced early covering for long-gamma traders. Why? Because in late January, the standard deviation derived from IV was lower than the actual standard deviation of the stock being traded. In the latter half of the period being studied, the end of February on this chart, using the one-day standard deviation based on IV would have produced scalping that was too late. This would have led to many missed opportunities.
Traders entering hedges at regular nominal intervals—every $0.50, for example—would probably have needed to decrease the interval as volatility ebbed. For instance, if in late January they were entering orders every $0.50, by late February they might have had to trade every $0.40.
9. Realized Volatility Falls, Implied Volatility Falls
This final volatility-chart permutation incorporates a fall of both realized and IV. The chart in
Exhibit 14.10
clearly represents the slow culmination of a highly volatile period. This setup often coincides with news of some scary events being resolved—a law suit settled, unpopular upper management leaving, rumors found to be false, a happy ending to political issues domestically or abroad, for example. After a sharp sell-off in IV, from 75 to 55, in late October, marking the end of a period of great uncertainty, the stock volatility began a steady decline, from the low 50s to below 25. IV fell as well, although it remained a bit higher for several months.
EXHIBIT 14.10
Realized volatility falls, implied volatility falls.
Source
: Chart courtesy of
iVolatility.com
In some situations where an extended period of extreme volatility appears to be coming to an end, there can be some predictability in how IV will react. To be sure, no one knows what the future holds, but when volatility starts to wane because a specific issue that was causing gyrations in the stock price is resolved, it is common, and intuitive, for IV to fall with the stock volatility. This is another type of example of reversion to the mean.
There is a potential problem if the high-volatility period lasted for an extended period of time. Sometimes, its hard to get a feel for what the mean volatility should be. Or sometimes, because of the event, the stock is fundamentally different—in the case of a spin-off, merger, or other corporate action, for example. When it is difficult or impossible to look back at a stocks performance over the previous 6 to 12 months and appraise what the normal volatility should be, one can look to the volatility of other stocks in the same industry for some guidance.
Stocks that are substitutable for one another typically trade at similar volatilities. From a realized volatility perspective, this is rather intuitive. When one stock within an industry rises or falls, others within the same industry tend to follow. They trade similarly and therefore experience similar volatility patterns. If the stock volatility among names within one industry tends to be similar, it follows that the IV should be, too.
Regardless which of the nine patterns discussed here show up, or how the volatilities line up, there is one overriding observation thats representative of all volatility charts: vol charts are simply graphical representations of realized and implied volatility that help traders better understand the two volatilities interaction. But the divergences and convergences in the examples in this chapter have profound meaning to the volatility trader. Combined with a comparison of current and past volatility (both realized and implied), they give traders insight into how cheap or expensive options are.
Note
1
. The following examples use charts supplied by
iVolatility.com
. The gray line is the 30-day realized volatility, and the black line is the implied volatility.

View File

@@ -0,0 +1,47 @@
Oapter 2: Covered Call Writing
TABLE 2-4.
Return if exercised-cash account.
Stock sale proceeds (500 shares at 45)
Less stock sale commissions
Plus dividends earned until expiration
Less net investment
Net profit if exercised
Return if exercised $2,290 = 11 2o/c
$20,380 .
0
TABLE 2-5.
Return if unchanged-cash account.
Unchanged stock value (500 shares at 43)
Plus dividends
Less net investment
Profit if unchanged
Return if unchanged $1,620 = 7.9'¼
$20,380 °
+
$22,500
330
500
- 20,380
$ 2,290
$21,500
+ 500
- 20,380
$ 1,620
49
return if unchanged - also called the static return and sometimes incorrectly referred
to as the "expected return." Again, one first calculates the profit and then calculates
the return by dividing the profit by the net investment. An important point should be
made here: There is no stock sale commission included in Table 2-5. This is the most
common way of calculating the return if unchanged; it is done this way because in a
majority of cases, one would continue to hold the stock if it were unchanged and
would write another call option against the same stock. Recall again, though, that if
the written call is in-the-rrwney, the return if unchanged is the same as the return if
exercised. Stock sale commissions must therefore be included in that case.
Once the necessary returns have been computed and the writer has a feeling for
how much money he could make in the covered write, he next computes the exact
downside break-even point to determine what kind of downside protection the writ­
ten call provides (Table 2-6). The total return concept of covered writing necessitates
viewing both potential income and downside protection as important criteria for
selecting a writing position. If the stock were held to expiration and the $500 in div­
idends received, the writer would break even at a price of 39.8. Again, a stock sale
commission is not generally included in the break-even point computation, because

View File

@@ -0,0 +1,36 @@
482 Part IV: Additional Considerations
follow-up monitoring technique, using the deltas of the options involved, is present­
ed later in this chapter, and has been described several times previously.
FACILITATION OR INSTITUTIONAL BLOCK POSITIONING
In this and the following section, the advantages of using the hedge ratio are outlined.
These strategies are primarily member firm, not public customer, strategies, since
they are best applied in the absence of commission costs. An institutional block trad­
er may be able to use options to help him in his positioning, particularly when he is
trying to help a client in a stock transaction.
Suppose that a block trader wants to make a bid for stock to facilitate a cus­
tomer's sell order. If he wants some sort of a hedge until he can sell the stock that he
buys, and the stock has listed options, he can sell some options to hedge his stock
position. To determine the quantity of options to sell, he can use the hedge ratio. The
exact formula for the hedge ratio was given earlier in this chapter, in the section on
the Black-Scholes pricing model. It is one of the components of the formula. Simply
stated, the hedge ratio is merely the delta of the option - that is, the amount by which
the option will change in price for small changes in the stock price. By selling the cor­
rect number of calls against his stock purchase, the block trader will have a neutral
position. This position would, in theory, neither gain nor lose for small changes in the
stock price. He is therefore buying himself time until he can unwind the position in
the open market.
Example: A trader buys 10,000 shares of XYZ, and a January 30 call is trading with
a hedge ratio of .50. To have a neutral position, the trader should sell options against
20,000 shares of stock (10,000 divided by .50 equals 20,000). Thus, he should sell 200
of the January 30's. If the hedge ratio is correct - largely a function of the volatility
estimate of the underlying stock - the trader will have greatly eliminated risk or
reward on the position for small stock movements. Of course, if the block trader
wants to assume some risk, that is a different matter. However, for the purposes of
this discussion, the assumption is made that the block trader merely wants to facili­
tate the trade in the most risk-free manner possible. In this sample position, if the
stock moves up by 1 point, the option should move up by ½ point. The trader would
make $10,000 on his stock position and would lose $10,000 on his 200 short options
- he has no gain or loss. Once the trader has the neutral position established, he can
then begin to concentrate on unwinding the position.
In actual practice, this hedge ratio may not work exactly, because it tends to
change constantly as the stock price changes. If the trader finds the stock moving

View File

@@ -0,0 +1,19 @@
5. Realized Volatility Remains Constant,
Implied Volatility Remains Constant
This volatility chart pattern shown in Exhibit 14.6 is typical of a boring,
run-of-the-mill stock with nothing happening in the news. But in this case,
no news might be good news.
EXHIBIT 14.6 Realized volatility remains constant, implied volatility
remains constant.
Source : Chart courtesy of iVolatility.com
Again, the gray is realized volatility and the black line is IV.
Its common for IV to trade slightly above or below realized volatility for
extended periods of time in certain assets. In this example, the IV has traded
in the high teens from late January to late July. During that same time,
realized volatility has been in the low teens.
This is a prime environment for option sellers. From a gamma/theta
standpoint, the odds favor short-volatility traders. The gamma/theta ratio
provides an edge, setting the stage for theta profits to outweigh negative-
gamma scalping. Selling calls and buying stock delta neutral would be a
trade to look at in this situation. But even more basic strategies, such as
time spreads and iron condors, are appropriate to consider.

View File

@@ -0,0 +1,23 @@
Conclusions
The same stock during the same week was used in both examples. These
two traders started out with equal and opposite positions. They might as
well have made the trade with each other. And although in this case the vol
buyer (Harry) had a pretty good week and the vol seller (Mary) had a not-
so-good week, its important to notice that the dollar value of the vol
buyers profit was not the same as the dollar value of the vol sellers loss.
Why? Because each trader hedged his or her position differently. Option
trading is not a zero-sum game.
Option-selling delta-neutral strategies work well in low-volatility
environments. Small moves are acceptable. Its the big moves that can blow
you out of the water.
Like long-gamma traders, short-gamma traders have many techniques for
covering deltas when the stock moves. It is common to cover partial deltas,
as Mary did on day four of the last example. Conversely, if a stock is
expected to continue along its trajectory up or down, traders will sometimes
overhedge by buying more deltas (stock) than they are short or selling more
than they are long, in anticipation of continued price rises. Daily standard
deviation derived from implied volatility is a common measure used by
short-gamma players to calculate price points at which to enter hedges.
Market feel and other indicators are also used by experienced traders when
deciding when and how to hedge. Each trader must find what works best for
him or her.

View File

@@ -0,0 +1,37 @@
166 Part II: Call Option Strategies
option investment, the writer who operates in large size will experience less of a
commission charge, percentagewise. That is, the writer who is buying 500 shares
of stock and selling 10 calls to start with will be able to place his stop points far­
ther out than the writer who is buying 100 shares of stock and selling 2 calls.
Technical analysis can be helpful in selecting the stop points as well. If there is
resistance overhead, the buy stop should be placed above that resistance. Similarly, if
there is support, the sell stop should be placed beneath the support point. Later,
when straddles are discussed, it will be seen that this type of strategy can be operat­
ed at less of a net commission charge, since the purchase and sale of stock will not be
involved.
CLOSING OUT THE WRITE
The methods of follow-up action discussed above deal ,vith the eventuality of pre­
venting losses. However, if all goes well, the ratio write will begin to accrue profits as
the stock remains relatively close to the original striking price. To retain these paper
profits that have accrued, it is necessary to move the protective action points closer
together.
Example: XYZ is at 51 after some time has passed, and the calls are at 3 points each.
The writer would, at this time, have an unrealized profit of $800 - $200 from the
stock purchase at 49, and $300 each on the two calls, which were originally sold at 6
points each. Recall that the maximum potential profit from the position, ifXYZ were
exactly at 50 at expiration, is $1,300. The writer would like to adjust the protective
points so that nearly all of the $800 paper profit might be retained while still allow­
ing for the profit to grow to the $1,300 maximum.
At expiration, $800 profit would be realized ifXYZ were at 45 or at 55. This can
be verified by referring again to Table 6-1 and Figure 6-1. The 45 to 55 range is now
the area that the writer must be concerned with. The original profit range of 39 to 61
has become meaningless, since the position has performed well to this point in time.
If the writer is using the rolling method of protection, he would roll forward to the
next expiration series if the stock were to reach 45 or 55. If he is using the stop-out
method of protection, he could either close the position at 45 or 55 or he could roll
to the next expiration series and readjust his stop points. The neutral strategist using
deltas would determine the number of calls to roll forward to by using the delta of
the longer-term call.
By moving the protective action points closer together, the ratio writer can then
adjust his position while he still has a profit; he is attempting to "lock in" his profit.
As even more time passes and expiration draws nearer, it may be possible to move

View File

@@ -0,0 +1,43 @@
Cl,apter 3: Call Buying 99
money call on the same underlying stock, it will most surely move up on any increase
in price by the underlying stock. Thus, the short-term trader would profit.
THE DELTA
The reader should by now be familiar with basic facts concerning call options: The
time premium is highest when the stock is at the striking price of the call; it is lowest
deep in- or out-of-the-money; option prices do not decay at a linear rate -the time pre­
mium disappears more rapidly as the option approaches expiration. As a further means
of review, the option pricing curve introduced in Chapter 1 is reprinted here. Notice
that all the facts listed above can be observed from Figure 3-1. The curves are much
nearer the "intrinsic value" line at the ends than they are in the middle, implying that
the time value premium is greatest when the stock is at the strike, and is least when
the stock moves away from the strike either into- or out-of-the-money. Furthermore,
the fact that the curve for the 3-month option lies only about halfway between the
intrinsic value line and the curve of the 9-month option implies that the rate of decay
of an at- or near-the-money option is not linear. The reader may also want to refer back
to the graph of time value premium decay in Chapter 1 (Figure 1-4).
There is another property of call options that the buyer should be familiar with,
the delta of the option (also called the hedge ratio). Simply stated, the delta of an
option is the arrwunt by which the call will increase or decrease in price if the under­
lying stock moves by 1 point.
FIGURE 3-1.
Option pricing curve; 3-, 6-, and 9-month calls.
Q)
0
~
C:
0
a
0
9-Month Curve
6-Month Curve
3-Month Curve
/
Intrinsic Value
Striking Price
Stock Price
As expiration date draws
closer, the lower curve
merges with the intrinsic
value line. The option
price then equals its
intrinsic value.

View File

@@ -0,0 +1,49 @@
716 Part V: Index Options and Futures
position has become long by using the delta of the options in the strategy. He can
then use futures or other options in order to make the position more neutral, if he
wants to.
Example: Suppose that both unleaded gasoline and heating oil have rallied some and
that the futures spread has widened slightly. The following information is known:
Future or Option
January heating oil futures:
January unleaded gasoline futures:
January heating oil 60 call:
January unleaded gas 62 put:
Total profit:
Price
.7100
.6300
11.05
1.50
Net
Change
+ .055
+ .045
+ 4.65
- 2.75
Profit/loss
+$9,765
- 5,775
+$3,990
The futures spread has widened to 8 cents. If the strategist had established the
spread with futures, he would now have a one-cent ( $420) profit on five contracts, or
a $2,100 profit. The profit is larger in the option strategy.
The futures have rallied as well. Heating oil is up 5½ cents from its initial price,
while unleaded is up 4½ cents. This rally has been large enough to drive the puts out­
of-the-money. When one has established the intermarket spread with options, and
the futures rally this much, the profit is usually greater from the option spread. Such
is the case in this example, as the option spread is ahead by almost $4,000.
This example shows the most desirable situation for the strategist who has
implemented the option spread. The futures rally enough to force the puts out-of­
the-money, or alternatively fall far enough to force the calls to be out-of-the-money.
If this happens in advance of option expiration, one option will generally have almost
all of its time value premium disappear (the calls in the above example). The other
option, however, will still have some time value ( the puts in the example).
This represents an attractive situation. However, there is a potential negative,
and that is that the position is too long now. It is not really a spread anymore. If
futures should drop in price, the calls will lose value quickly. The puts will not gain
much, though, because they are out-of-the-money and will not adequately protect
the calls. At this juncture, the strategist has the choice of taking his profit - closing
the position - or making an adjustment to make the spread more neutral once again.
He could also do nothing, of course, but a strategist would normally want to protect
a profit to some extent.

View File

@@ -0,0 +1,38 @@
914 Part VI: Measuring and Trading Volatility
purchased (the day after the call was exercised). The option's holding period has no
bearing on the stock position that resulted from the exercise.
Example: An XYZ October 50 call was bought for 5 points on July 1. The stock had
risen by October expiration, and the call holder decided to exercise the call on
October 20th. The option commission was $25 and the stock commission was $85.
The cost basis for the stock would be computed as follows:
Buy 1 00 XYZ at 50 via exercise
($5,000 plus $85 commission)
Original call cost ($500 plus $25)
Total tax basis of stock
Holding period of stock begins on October 21.
$5,085
525
$5,610
When this stock is eventually sold, it will be a gain or a loss, depending on the stock's
sale price as compared to the tax basis of $5,610 for the stock. Furthermore, it will
be a short-term transaction unless the stock is held until October 21st of the follow­
ing year.
CALL ASSIGNMENT
If a written call is not closed out, but is instead assigned, the call's net sale proceeds
are added to the sale proceeds of the underlying stock. The call's holding period is
lost, and the stock position is considered to have been sold on the date of the assign­
ment.
Example: A naked writer sells an XYZ July 30 call for 3 points, and is later assigned
rather than buying back the option when it was in-the-money near expiration. The
stock commission is $75. His net sale proceeds for the stock would be computed as
follows:
Net call sale proceeds ($300 - $25)
Net stock proceeds from assignment
of 100 shares at 30 ($3,000 - $75)
Net stock sale proceeds
$ 275
2,925
$3,200
In the case in which the investor writes a naked, or uncovered, call, he sells
stock short upon assignment. He may, of course, cover the short sale by purchasing
stock in the open market for delivery. Such a short sale of stock is governed by the

View File

@@ -0,0 +1,34 @@
732 Part VI: Measuring and Trading Volatility
al volatility was lower, then when you make the volatility prediction for tomorrow,
you'll probably want to adjust it downward, using the experience of the real world,
where you see volatility declining. This also incorporates the common-sense notion
that volatility tends to remain the same; that is, tomorrow's volatility is likely to be
much like today's. Of course, that's a little bit like saying tomorrow's weather is likely
to be the same as today's (which it is, two-thirds of the time, according to statistics).
It's just that when a tornado hits, you have to realize that your forecast could be wrong.
The same thing applies to GAR CH volatility projections. They can be wrong, too.
So, GARCH does not do a perfect job of estimating and forecasting volatility. In
fact, it might not even be superior, from a strategist's viewpoint, to using the simple
minimum/maximum techniques outlined in the previous section. It is really best
geared to predicting short-term volatility and is favored most heavily by dealers in
currency options who must adjust their markets constantly. For longer-term volatility
projections, which is what a position trader of volatility is interested in, GARCH may
not be all that useful. However, it is considered state-of-the-art as far as volatility pre­
dicting goes, so it has a following among theoretically oriented traders and analysts.
MOVING AVERAGES
Some traders try to use moving averages of daily composite implied volatility read­
ings, or use a smoothing of recent past historical volatility readings to make volatility
estimates. As mentioned in the chapter on mathematical applications, once the com­
posite daily implied volatility has been computed, it was recommended that a
smoothing effect be obtained by taking a moving average of the 20 or 30 days'
implied volatilities. In fact, an exponential moving average was recommended,
because it does not require one to keep accessing the last 20 or 30 days' worth of data
in order to compute the moving average. Rather, the most recent exponential mov­
ing average is all that's needed in order to compute the next one.
IMPLIED VOLATILITY
Implied volatility has been mentioned many times already, but we want to expand on
its concept before getting deeper into its measure and uses later in this section.
Implied volatility pertains only to options, although one can aggregate the implied
volatilities of the various options trading on a particular underlying instrument to
produce a single number, which is often referred to as the implied volatility of the
underlying.

View File

@@ -0,0 +1,31 @@
TABLE E-1. ~
Qualified covered call options.
~
Call is not "deep-in-the-money" Call is not
II
deep-in-the-money"
Applicable if Strike Price2 is at least: Applicable if Strike Price2 is at least:
Stock More than Stock More than
Price1 31-90-Day Call 90-Day Call Price1 31-90-Day Call 90-Day Call
5.13-5.88 5 5 75.13-80 75 70
6-10 None None 80.13-85 80 75
10.13-11.75 10 10 85.13-90 85 80
11.88-15 None None 90.13-95 90 85
15.13-17.63 15 15 95.13-100 95 90
17.75-20 None None 100.13-105 100 95
20.13-23.50 20 20 105.13-110 100 100
23.63-25 None None 110.13-120 110 110
25.13-30 25 25 120.13-130 120 120
30.13-35 30 30 130.13-140 130 130
35.13-40 35 35 140.13-150 140 140
40.13-45 40 40 150.13-160 150 140
45.13-50 45 45 160.13-170 160 150
50.13-55 50 50 170.13-180 170 160
55.13-60 55 55 180.13-190 180 170
60.13-65 60 55 190.13-200 190 180
65.13-70 65 60 200.13-210 200 190
70.13-75 70 65 210.13-220 210 200
1 Applicable stock price is either the closing price of the stock on the day preceding the date the option was granted, or the opening price on
t the day the option is granted if such price is greater than 100% of the preceding day's closing price.
2Assumption is that strike prices are only at $5 intervals up to $ 100 and $10 intervals over $100. Note: If the stock splits, option strike prices 5:c·
will have smaller intervals for a period of time. ""'

View File

@@ -0,0 +1,54 @@
496
A Complete Guide to the Futures mArket
Table 35.3d summarizes the profit/loss implications of various long call positions for a range of
price assumptions. Note that as calls move deeper in-the-money, their profit and loss characteristics
increasingly resemble a long futures position. The very deep in-the-money $1,050 call provides
an interesting apparent paradox: The profit/loss characteristics of this option are nearly the same
as those of a long futures position for all prices above $1,050, but the option has the advantage of
limited risk for lower prices. How can this be? Why wouldnt all traders prefer the long $1,050
call to the long futures position and, therefore, bid up its price so that its premium also reflected
more time value? (The indicated premium of $15,520 for the $1,050 call consists almost entirely
of intrinsic value.)
There are two plausible explanations to this apparent paradox. First, the option price reflects
the markets assessment that there is a very low probability of gold prices moving to this deep in-
the-money strike price, and therefore the market places a low value on the time premium. In other
words, the market places a low value on the loss protection provided by an option with a strike price
so far below the market. Second, the $1,050 call represents a fairly illiquid option position, and the
quoted price does not reflect the bid/ask spread. No doubt, a potential buyer of the call would have
had to pay a higher price than the quoted premium in order to assure an execution.
tabLe 35.3d profit/Loss Matrix for Long Calls with Different Strike prices
Dollar amount of premiums paid
$1,050 $1,100 $1,150 $1,200 $1,250 $1,300 $1,350
Call Call a Call Call a Call Call a Call
$15,520 $11,010 $7,010 $3,880 $1,920 $910 $450
position profit/Loss at expiration
Futures price at
expiration ($/oz)
Long
Futures
at $1,200
In-the-Money at-the-Money Out-of-the-Money
$1,050
Call
$1,100
Calla
$1,150
Call
$1,200
Calla
$1,250
Call
$1,300
Calla
$1,350
Call
1,000 $20,000 $15,520 $11,010 $7,010 $3,880 $1,920 $910 $450
1,050 $15,000 $15,520 $11,010 $7,010 $3,880 $1,920 $910 $450
1,100 $10,000 $10,520 $11,010 $7,010 $3,880 $1,920 $910 $450
1,150 $5,000 $5,520 $6,010 $7,010 $3,880 $1,920 $910 $450
1,200 $0 $520 $1,010 $2,010 $3,880 $1,920 $910 $450
1,250 $5,000 $4,480 $3,990 $2,990 $1,120 $1,920 $910 $450
1,300 $10,000 $9,480 $8,990 $7,990 $6,120 $3,080 $910 $450
1,350 $15,000 $14,480 $13,990 $12,990 $11,120 $8,080 $4,090 $450
1,400 $20,000 $19,480 $18,990 $17,990 $16,120 $13,080 $9,090 $4,550
aThese calls are compared in Figure 35.3d.

View File

@@ -0,0 +1,35 @@
296 Part Ill: Put Option Strategies
other available put writing positions before deciding to write another put on the sam<'
underlying stock. His commission costs are the same if he remains in XYZ stock or if
he goes on to a put writing position in a different stock.
EVALUATING A NAKED PUT WRITE
The computation of potential returns from a naked put write is not as straightforward
as were the computations for covered call writing. The reason for this is that the col­
lateral requirement changes as the stock moves up or down, since any naked option
position is marked to the market. The most conservative approach is to allow enough
collateral in the position in case the underlying stock should fall, thus increasing the
requirement. In this way, the naked put writer would not be forced to prematurely
close a position because he cannot maintain the margin required.
Example: XYZ is at 50 and the October 50 put is selling for 4 points. The initial col­
lateral requirement is 20% of 50 plus $400, or $1,400. There is no additional require­
ment, since the stock is exactly at the striking price of the put. Furthermore, let us
assume that the writer is going to close the position should the underlying stock fall
to 43. To maintain his put write, he should therefore allow enough margin to collat­
eralize the position if the stock were at 43. The requirement at that stock price would
be $1,560 (20% of 43 plus at least 7 points for the in-the-money amount). Thus, the
put writer who is establishing this position should allow $1,560 of collateral value for
each put written. Of course, this collateral requirement can be reduced by the
amount of the proceeds received from the put sale, $400 per put less commissions in
this example. If we assume that the writer sells 5 puts, his gross premium inflow
would be $2,000 and his commission expense would be about $75, for a net premi­
um of $1,925.
Once this information has been determined, it is a simple matter to determine
the maximum potential return and also the downside break-even point. To achieve
the maximum potential return, the put would expire worthless with the underlying
stock above the striking price. Therefore, the maximum potential profit is equal to
the net premium received. The return is merely that profit divided by the collateral
used. In the example above, the maximum potential profit is $1,925. The collateral
required is $1,560 per put (allowing for the stock to drop to 43) or $7,800 for 5 puts,
reduced by the $1,925 premium received, for a total requirement of $5,875. The
potential return is then $1,925 divided by $5,875, or 32.8%. Table 19-2 summarizes
these calculations.

View File

@@ -0,0 +1,39 @@
Chapter 23: Spreads Combining Calls and Puts 349
40 straddle. However, he has now invested a total of 5 points in the position: the orig­
inal 2-point debit plus the 3 points that he paid to buy back the January 40 straddle.
Hence, his risk has increased to 5 points. If XYZ were to be at exactly 40 at April expi­
ration, he would lose the entire 5 points. While the probability of losing the entire 5
points must be considered small, there is a substantial chance that he might lose
more than 2 points his original debit. Thus, he has increased his risk by buying back
the near-term straddle and continuing to hold the longer-term one.
This is actually a neutral strategy. Recall that when calendar spreads were dis­
cussed previously, it was pointed out that one establishes a neutral calendar spread
with the stock near the striking price. This is true for either a call calendar spread or
a put calendar spread. This strategy - a calendar spread with straddles is merely the
combination of a neutral call calendar spread and a neutral put calendar spread.
Moreover, recall that the neutral calendar spreader generally establishes the position
with the intention of closing it out once the near-term option expires. He is mainly
interested in selling time in an attempt to capitalize on the fact that a near-term
option loses time value premium more rapidly than a longer-term option does. The
straddle calendar spread should be treated in the same manner. It is generally best
to close it out at near-term expiration. If the stock is near the striking price at that
time, a profit will generally result. To verify this, refer again to the prices in the pre­
ceding paragraph, with XYZ at 43 at January expiration. The January 40 straddle can
be bought back for 3 points and the April 40 straddle can be sold for 6. Thus, the dif­
ferential between the two straddles has widened to 3 points. Since the original dif­
ferential was 2 points, this represents a profit to the strategist.
The maximum profit would be realized if XYZ were exactly at the striking price
at near-term expiration. In this case, the January 40 straddle could be bought back
for a very small fraction and the April 40 straddle might be worth about 5 points. The
differential would have widened from the original 2 points to nearly 5 points in this
case.
This strategy is inferior to the one described in the previous section (the "calen­
dar combination"). In order to have a chance for unlimited profits, the investor must
increase his net debit by the cost of buying back the near-term straddle.
Consequently, this strategy should be used only in cases when the near-term straddle
appears to be extremely overpriced. Furthermore, the position should be closed at
near-term expiration unless the stock is so close to the striking price at that time that
the near-term straddle can be bought back for a fractional price. This fractional buy­
back would then give the strategist the opportunity to make large potential profits
with only a small increase in his risk. This situation of being able to buy back the near­
term straddle at a fractional price will occur very infrequently, much more infre-

View File

@@ -0,0 +1,26 @@
608 Part V: Index Options and Future;
FIGURE 32-4.
Comparison of adiusted and unadiusted cash values at maturity.
50
40
20
0 1100 2200 3300
Cost of the
Call Option
4400 5500
Index Final Price (Unadjusted)
6600
est. In this section, a couple of different constructs, ones that have been brought to
the public marketplace in the past, are discussed.
THE BUI.I. SPREAD
Several structured products have represented a bull spread, in effect. In some cases,
the structured product terms are stated just like those of a call spread in that the final
cash value is defined with both a minimum and a maximum value. For example, it
might be described something like this:
"The final cash value of the (structured) product is equal to a minimum of a base
price of 10, plus any appreciation of the underlying index above the striking price,
subject to a maximum price of 20" (where the striking price is stated elsewhere).
It's fairly simple to see how this resembles a bull spread: The worst you can do
is to get back your $10, which is presumably the initial offering price, just as in any
of the structured products described previously in this chapter. Then, above that,
you'd get some appreciation of the index price above the stated striking price - again

View File

@@ -0,0 +1,39 @@
605
himself, what does 1.25% per year really matter? However, you can see that it
matter. In fact, our above examples did not even factor in the other cost that any
htvt?stor has when his money is at risk - the cost of carry, or what he could have made
he just put the money in the bank.
MIASURING THE COST OF THE ADJUSTMENT FACTOR
The magnitude of the adjustment increases as the price of the underlying increases.
It is an unusual concept. We know that the structured product initially had an
hnbedded call option. Earlier in this chapter, we endeavored to price that option.
However, with the introduction of the concept of an adjustment factor, it turns out
that the call option's cost is not a fixed amount. It varies, depending on the final value
of the underlying index. In fact, the cost of the option is a percentage of the final
value of the index. Thus, we can't really price it at the beginning, because we don't
know what the final value of the index will be. In fact, we have to cease thinking of
this option's cost as a fixed number. Rather, it is a geometric cost, if you will, for it
increases as the underlying does.
Perhaps another way to think of this is t.o visualize what the cost will be in per­
centage terms. Figure 32-2 compares how much of the percent increase in the index
is captured by the structured product in the preceding example. The x-axis on the
graph is the percent increase by the index. The y-axis is the percent realized by the
structured product. The terms are the same as used in the previous examples: The
strike price is 1,100, the total adjustment factor is 8.75%, and the guarantee price of
the structured product is 10.
The dashed line illustrates the first example that was shown, when a doubling
of the index value (an increase of 100%) to 2,200 resulted in a gain of 83.5% in the
price of the structured. Thus, the point (100%, 83.5%) is on the line on the chart
where the dashed lines meet.
Figure 32-2 points out just how little of the percent increase one captures if the
underlying index increases only modestly during the life of the structured product.
We already know that the index has to increase by 9.59% just to get to the break-even
final price. That point is where the curved line meets the x-axis in Figure 32-2.
The curved line in Figure 32-2 increases rapidly above the break-even price,
and then begins to flatten out as the index appreciation reaches 100% or so. This
depicts the fact that, for small percentage increases in the index, the 8.75% adjust­
ment factor -which is a flat-out downward adjustment in the index price - robs one
of most of the percentage gain. It is only when the index has doubled in price or so
that the curve stops rising so quickly. In other words, the index has increased enough
in value that the structured product, while not capturing all of the percentage gain
by any means, is now capturing a great deal of it.

View File

@@ -0,0 +1,36 @@
Chapter 38: The Distribution of Stock Prices 795
Figure 38-3 perhaps shows even more starkly how the bull market has affected
things over the last six-plus years. There are over 1,600 data points for IBM (i.e., daily
readings) in Figure 38-3, yet the whole distribution is skewed to the right. It appar­
ently was able to move up quite easily throughout this time period. In fact, the worst
move that occurred was one move of -2.5 standard deviations, while there were
about ten moves of +4.0 standard deviations or more.
For a longer-term look at how IBM behaves, consider the longer-term distribu­
tion of IBM prices, going back to March 1987, as shown in Figure 38-4.
From Figure 38-4, it's clear that this longer-term distribution conforms more
closely to the normal distribution in that it has a sort of symmetrical look, as opposed
to Figure 38-3, which is clearly biased to the right (upside).
These two graphs have implications for the big picture study shown in Figure
38-1. The database used for this study had data for most stocks only going back to
1993 (IBM is one of the exceptions); but if the broad study of all stocks were run
using data all the way back to 1987, it is certain that the "actual" price distribution
would be more evenly centered, as opposed to its justification to the right (upside).
That's because there would be more bearish periods in the longer study (1987, 1989,
and 1990 all had some rather nasty periods). Still, this doesn't detract from the basic
premise that stocks can move farther than the normal distribution would indicate.
WHAT THIS MEANS FOR OPTION TRADERS
The most obvious thing that an option trader can learn from these distributions and
studies is that buying options is probably a lot more feasible than conventional wisdom
would have you believe. The old thinking that selling an option is "best" because it
wastes away every day is false. In reality, when you have sold an option, you are exposed
to adverse price movements and adverse movements in implied volatility all during the
life of the option. The likelihood of those occurring is great, and they generally have
more influence on the price of the aption in the short run than does time decay.
You might ask, "But doesn't all the volatility in 1999 and 2000 just distort the
figures, making the big moves more likely than they ever were, and possibly ever will
be again?" The answer to that is a resounding, "Nol" The reason is that the current
20-day historical volatility was used on each day of the study in order to determine
how many standard deviations each stock moved. So, in 1999 and 2000, that histori­
cal volatility was a high number and it therefore means that the stock would have had
to move a very long way to move four standard deviations. In 1993, however, when
the market was in the doldrums, historical volatility was low, and so a much smaller

View File

@@ -0,0 +1,37 @@
44 Part II: Call Option Strategies.
In general, out-of-the-money covered writes offer higher potential rewards but
have less risk protection than do in-the-money covered writes. One can establish an
aggressive or defensive covered writing position, depending on how far the call
option is in- or out-of-the-money when the write is established. In-the-money writes
are more defensive covered writing positions.
Some examples may help to illustrate how one covered write can be consider­
ably more conservative, from a strategy viewpoint, than another.
Example: XYZ common stock is selling at 45 and two options are being considered
for writing: an XYZ July 40 selling for 8, and an XYZ July 50 selling for 1. Table 2-2
depicts the profitability of utilizing the July 40 or the July 50 for the covered writing.
The in-the-money covered write of the July 40 affords 8 points, or nearly 18% pro­
tection down to a price of 37 (the break-even point) at expiration. The out-of-the­
money covered write of the July 50 offers only 1 point of downside protection at expi­
ration. Hence, the in-the-rrwney covered write offers greater downside protection
than does the out-of-the-rrwney covered write. This statement is true in general - not
merely for this example.
In the balance of the financial world, it is normally true that investment posi­
tions offering less risk also have lower reward potential. The covered writing exam­
ple just given is no exception. The in-the-money covered write of the July 40 has a
maximum potential profit of $300 at any point above 40 at the time of expiration.
However, the out-of-the-money covered write of the July 50 has a maximum poten­
tial profit of $600 at any point above 50 at expiration. The maximum potential profit
of an out-of-the-rrwney covered write is generally greater than that of an in-the­
rrwney write.
TABLE 2-2.
Profit or loss of the July 40 and July 50 calls.
In-the-Money Write Out-of-the-Money Write
of July 40 of July SO
Stock of Total Stock at Total
Expiration Profit Expiration Profit
35 -$200 35 -$900
37 0 40 - 400
40 + 300 44 0
45 + 300 45 + 100
50 + 300 50 + 600
60 + 300 60 + 600

View File

@@ -0,0 +1,64 @@
508
A Complete Guide to the Futures mArket
tabLe 35.5d profit/Loss Matrix for Long puts with Different Strike prices
Dollar amount of premium paid
$1,350
put
$1,300
put
$1,250
put
$1,200
put
$1,150
put
$1,100
put
$1,050
put
$15,410 $10,870 $6,870 $3,870 $1,990 $1,010 $510
position profit/Loss at expiration
Futures price at
expiration ($/oz)
Short Futures
at $1,200
In-the-Money at-the-Money Out-of-the-Money
$1,350
put
$1,300
puta
$1,250
put
$1,200
puta
$1,150
put
$1,100
puta
$1,050
put
1,000 $20,000 $19,590 $19,130 $18,130 $16,130 $13,010 $8,990 $4,490
1,050 $15,000 $14,590 $14,130 $13,130 $11,130 $8,010 $3,990 $510
1,100 $10,000 $9,590 $9,130 $8,130 $6,130 $3,010 $1,010 $510
1,150 $5,000 $4,590 $4,130 $3,130 $1,130 $1,990 $1,010 $510
1,200 $0 $410 $870 $1,870 $3,870 $1,990 $1,010 $510
1,250 $5,000 $5,410 $5,870 $6,870 $3,870 $1,990 $1,010 $510
1,300 $10,000 $10,410 $10,870 $6,870 $3,870 $1,990 $1,010 $510
1,350 $15,000 $15,410 $10,870 $6,870 $3,870 $1,990 $1,010 $510
1,400 $20,000 $15,410 $10,870 $6,870 $3,870 $1,990 $1,010 $510
aThese puts are compared in Figure 35.5d.
Figure 35.5d compares the three types of long put positions to a short futures position. It should
be noted that in terms of absolute price changes, the short futures position represents the largest
position size, while the out-of-the-money put represents the smallest position size. Figure 35.5d sug-
gests the following important observations:
1. As previously mentioned, the in-the-money put is very similar to an outright short futures
position.
2. The out-of-the-money put will lose the least in a rising market, but will also gain the least in a
declining market.
3. The at-the-money put will lose the most in a steady market and will be the middle-of-
the-road performer (relative to the other two types of puts) in declining and advancing
markets.
Again, it should be emphasized that these comparisons are based on single-unit positions that
may differ substantially in terms of their implied position size (as suggested by their respective delta
values). A comparison that involved equivalent position size levels for each strategy (i.e., equal delta
values for each position) would yield different observations.

View File

@@ -0,0 +1,23 @@
982 Glossary
Vega: the measure of how much an option's price changes for an incremental
change-usually one percentage point-in volatility.
Vertical Spread: any option spread strategy in which the options have different
striking prices but the same expiration dates.
Volatility: a measure of the amount by which an underlying security is expected to
fluctuate in a given period of time. Generally measured by the annual standard
deviation of the daily price changes in the security, volatility is not equal to the beta
of the stock. Also called historical volatility, statistical volatility, or actual volatility.
See also Implied Volatility.
Volatility Skew: the term used to describe a phenomenon in which individual
options on a single underlying instrument have different implied volatilities. I 11
general, not only are the individual options' implied volatilities different, but they
form a pattern. If the lower striking prices have the lowest implied volatilities, and
then implied volatility progresses higher as one moves up through the striking
prices, that is called a forward or positive skew. A reverse or negative skew works
in the opposite way: The higher strikes have the lowest implied volatilities.
Warrant: a long-term, nonstandardized security that is much like an option.
Warrants on stocks allow one to buy (usually one share of) the common at a ("(•r­
tain price until a certain date. Index warrants are generally warrants on the pri<·<·
of foreign indices. Warrants have also been listed on other things such as cross-('m
rency spreads and the future price of a barrel of oil.
Write: to sell an option. The investor who sells is called the writer.

View File

@@ -0,0 +1,35 @@
750 Part VI: Measuring and Trading Volatility
of how volatility affects option positions will be in plain English as well as in the more
mathematical realm of vega. Having said that, let's define vega so that it is understood
for later use in the chapter.
Simply stated, vega is the amount by which an option's price changes when
volatility changes by one percentage point.
Example: XYZ is selling at 50, and the July 50 call is trading at 7.25. Assume that
there is no dividend, that short-term interest rates are 5%, and that July expiration is
exactly three months away. With this information, one can determine that the implied
volatility of the July 50 call is 70%. That's a fairly high number, so one can surmise
that XYZ is a volatile stock. What would the option price be if implied volatility were
rise to 71 %? Using a model, one can determine that the July 50 call would theoreti­
cally be worth 7.35 if that happened. Hence, the vega of this option is 0.10 (to two
decimal places). That is, the option price increased by 10 cents, from 7.25 to 7.35,
when volatility rose by one percentage point. (Note that "percentage point" here
means a full point increase in volatility, from 70% to 71 %.)
What if implied volatility had decreased instead? Once again, one can use the
model to determine the change in the option price. In this case, using an implied
volatility of 69% and keeping everything else the same, the option would then theo­
retically be worth 7.15- again, a 0.10 change in price (this time, a decrease in price).
This example points out an interesting and important aspect of how volatility
affects a call option: If implied volatility increases, the price of the option will
increase, and if implied volatility decreases, the price of the option will decrease.
Thus, there is a direct relationship between an option's price and its implied volatili-
ty.
Mathematically speaking, vega is the partial derivative of the Black-Scholes
model (or whatever model you're using to price options) with respect to volatility. In
the above example, the vega of the July 50 call, with XYZ at 50, can be computed to
be 0.098 - very near the value of 0.10 that one arrived at by inspection.
Vega also has a direct relationship with the price of a put. That is, as implied
volatility rises, the price of a put will rise as well.
Example: Using the same criteria as in the last example, suppose that XYZ is trading
at 50, that July is three months away, that short-term interest rates are 5%, and that
there is no dividend. In that case, the following theoretical put and call prices would
apply at the stated implied volatilities:

View File

@@ -0,0 +1,38 @@
Cl,opter 32: Structured Products 637
:don. The PERCS is equivalent to a covered write of a long-term call option, which is
imbedded in the PERCS value. Although there are not many PERCS trading at the
current time, that number may grow substantially in the future.
Any strategies that pertain to covered call writing will pertain to PER CS as well.
Conventional listed options can be used to protect the PERCS from downside risk,
to remove the limited upside profit potential, or to effectively change the price at
which the PERCS is redeemable. Ratio writes can be constructed by selling a listed
call. Shorting PERCS creates a security that is similar to a long put, which might be
quite expensive if there is a significant amount of time remaining until maturity of
the PERCS.
Neutral traders and hedgers should be aware that a PERCS has a delta of its
own, which is equal to one minus the delta of the imbedded call option. Thus, hedg­
ing PERCS with common stock requires one to calculate the PERCS delta.
Finally, the implied value of the call option that is imbedded with the PERCS
can be calculated quite easily. That information is used to determine whether the
PERCS is fairly priced or not. The serious outright buyer as well as the option strate­
gist should make this calculation, since a PERCS is a security that is option-related.
Either of these investors needs to know if he is making an attractive investment, and
calculating the valuation of the imbedded call is the only way to do so.
OTHER STRUCTURED PRODUCTS
EXCHANGE-TRADED FUNDS
Other listed products exist that are simpler in nature than those already discussed,
but that the exchanges sometimes refer to as structured products. They often take
the form of unit trusts and mutual funds. The general term for these products is
Exchange-Traded Funds (ETFs). In a unit trust, an underwriter (Merrill Lynch, for
example) packages together 10 to 12 stocks that have similar characteristics; perhaps
they are in the same industry group or sector. The underwriter forms a unit trust with
these stocks. That is, the shares are held in trust and the resulting entity - the unit
trust - can actually be traded as shares of its own. The units are listed on an exchange
and trade just like stocks.
Example: One of the better-known and popular unit trusts is called the Standard &
Poor's Depository Receipt{SPDR). It is a unit trust that exactly matches the S&P 500
index, divided by 10. Th&-SPDR unit trust is affectionately called Spiders (or
Spyders). It trades on the AMEX under the symbol SPY. If the S&P 500 index itself
is at 1,400, for example, then SPY will be trading near 140. Unit trusts are very active,
mostly because they allow any investor to buy an index fund, and to move in and out
of it at will. The bid-asked spread differential is very tight, due to the liquidity of the

View File

@@ -0,0 +1,38 @@
558 Part V: Index Options and Futures
That is, he would buy back the ones he is short and sell the next series of futures. For
S&P 500 futures, this would mean rolling out 3 months, since that index has futures
that expire every 3 months. For the XMI futures and OEX index options, there are
monthly expirations, so one would only have to roll out 1 month if so desired.
It is a simple matter to determine if the roll is feasible: Simply compare the fair
value of the spread between the two futures in question. If the current market is
greater than the theoretical value of the spread, then a roll makes sense if one is long
stocks and short futures. If an arbitrageur had initially established his arbitrage when
futures were underpriced, he would be short stocks and long futures. In that case he
would look to roll forward to another month if the current market were less than the
theoretical value of the spread.
Example: With the S&P 500 Index at 416.50, the hedger is short the March future
that is trading at 417.50. The June future is trading at 421.50. Thus, there is a 4-point
spread between the March and June futures contracts.
Assume that the fair value formula shows that the fair value premium for the
March series is 35 cents and for the June series is 3.25. Thus, the fair value of the
spread is 2.90, the difference in the fair values.
Consequently, with the current market making the spread available at 4.00, one
should consider buying back his March futures and selling the June futures. The
rolling forward action may be accomplished via a spread order in the futures, much
like a spread order in options. This roll would leave the hedge established for anoth­
er 3 months at an overpriced level.
Another way to close the position is to hold it to expiration and then sell out the
stocks as the cash-based index products expire. If one were to sell his entire stock
holding at the time the futures expire, he would be getting out of his hedge at exact­
ly parity. That is, he sells his stocks at exactly the last sale of the index, and the futures
expire, being marked also to the last sale of the index.
For settlement purposes of index futures and options, the S&P 500 Index and
many other indices calculate the "last sale" from the opening prices of each stock on
the last day of trading. For some other indices, the last sale uses the closing price of
each stock.
Example: In a normal situation, if the S&P 500 index is trading at 415, say, then that
represents the index based on last sales of the stocks in the index. If one were to
attempt to buy all the stocks at their current offering price, however, he would prob­
ably be paying approximately another 50 cents, or 415.50, for his market basket.
Similarly, if he were to sell all the stocks at the current bid price, then he would sell
the market basket at the equivalent of approximately 414.50.

View File

@@ -0,0 +1,20 @@
8. Realized Volatility Falls, Implied
Volatility Remains Constant
This volatility shift can be marked by a volatility convergence, divergence,
or crossover. Exhibit 14.9 shows the realized volatility falling from around
30 percent to about 23 percent while IV hovers around 25. The crossover
here occurs around the middle of February.
EXHIBIT 14.9 Realized volatility falls, implied volatility remains constant.
Source : Chart courtesy of iVolatility.com
The relative size of this volatility change makes the interpretation of the
chart difficult. The last half of September saw around a 15 percent decline
in realized volatility. The middle of October saw a one-day jump in realized
of about 15 points. Historical volatility has had several dynamic moves that
were larger and more abrupt than the seven-point decline over this six-week
period. This smaller move in realized volatility is not necessarily an
indication of a volatility event. It could reflect some complacency in the
market. It could indicate a slow period with less trading, or it could simply
be a natural contraction in the ebb and flow of volatility causing the
calculation of recent stock-price fluctuations to wane.
What is important in this interpretation is how the options market is
reacting to the change in the volatility of the stock—where the rubber hits

View File

@@ -0,0 +1,37 @@
Cl,apter 2: Covered Call Writing 45
To make a true comparison between the two covered writes, one must look at
what happens with the stock between 40 and 50 at expiration. The in-the-money
write attains its maximum profit anywhere within that range. Even a 5-point decline
by the underlying stock at expiration would still leave the in-the-money writer with
his maximum profit. However, realizing the maximum profit potential with an out-of
the-money covered write always requires a rise in price by the underlying stock. This
further illustrates the more conservative nature of the in-the-money write. It should
be noted that in-the-money writes, although having a smaller profit potential, can still
be attractive on a percentage return basis, especially if the write is done in a margin
account.
One can construct a more aggressive position by writing an out-of-the-money
call. One's outlook for the underlying stock should be bullish in that case. If one is
neutral or moderately bearish on the stock, an in-the-money covered write is more
appropriate. If one is truly bearish on a stock he owns, he should sell the stock instead
of establishing a covered write.
THE TOTAL RETURN CONCEPT
OF COVERED WRITING
When one writes an out-of-the-money option, the overall position tends to reflect
more of the result of the stock price movement and less of the benefits of writing the
call. Since the premium on an out-of-the-money call is relatively small, the total posi­
tion will be quite susceptible to loss if the stock declines. If the stock rises, the posi­
tion will make money regardless of the result in the option at expiration. On the other
hand, an in-the-money write is more of a "total" position - taking advantage of the
benefit of the relatively large option premium. If the stock declines, the position can
still make a profit; in fact, it can even make the maximum profit. Of course, an in­
the-money write will also make money if the stock rises in price, but the profit is not
generally as great in percentage terms as is that of an out-of-the-money write.
Those who believe in the total return concept of covered writing consider both
downside protection and maximum potential return as important factors and are
willing to have the stock called away, if necessary, to meet their objectives. When
premiums are moderate or small, only in-the-money writes satisfy the total return
philosophy.
Some covered writers prefer never to lose their stock through exercise, and as
a result will often write options quite far out-of-the-money to minimize the chances
of being called by expiration. These writers receive little downside protection and, to
make money, must depend almost entirely on the results of the stock itself. Such a

View File

@@ -0,0 +1,37 @@
198 •   TheIntelligentOptionInvestor
time to take a larger position and to use more leverage is when the market is
pricing a stock as if it were almost certain that a company will face a worst-case
future when you consider this worst-case scenario to be relatively unlikely. In
this illustration, if the stock price were to fall by 50 percent—to the $8 per share
level—while my assessment of the value of the company remained unchanged
(worst, likely, and best case of $6, $25, and $37, respectively), I would think I
had the margin of safety necessary to commit a larger proportion of my portfo-
lio to the investment and add more investment leverage. With the stock sitting
at $8 per share, my risk ($8 $6 = $2) is low and unlikely to be realized while
my potential return is large and much closer to being assured. With the stocks
present price of $16 per share, my risk ($16 $6 = $10) is large and when bad-
case scenarios are factored in along with the worst-case scenario, more likely
to occur.
Thinking of margins of safety from this perspective, it is obvious that
one should not frame them in terms of arbitrary levels (e.g., “I have a rule
to only buy stocks that are 30% or lower than my fair value estimate. ”), but
rather in terms informed by an intelligent valuation range. In this example,
a 36 percent margin of safety is sufficient for me to commit a small
proportion of my portfolio to an unlevered investment, but not to go “all
in. ” For a concentrated, levered position in this investment, I would need a
margin of safety approaching 76 percent (= ($25 $6)/$25) and at least over
60 percent (= ($25 - $10)/$25).
When might such a large margin of safety present itself? Just when
the market has lost all hope and is pricing in disaster for the company.
This is where the contrarianism comes into play. The best time to make
a levered investment in a company with high levels of operational lever -
age is when the rest of the market is mainly concerned about the possible
negative effects of that operational leverage. For example, during a reces-
sion, consumer demand drops and idle time at factories increases. This
has a quick and often very negative effect on profitability for companies
that own the idle factories, and if conditions are bad enough or look to
have no near-term (i.e., within about six months) resolution, the price of
those companies stocks can plummet. Market prices often fall so low as to
imply, from a valuation perspective, that the factories are likely to remain
idled forever. In these cases, I believe that not using investment leverage in
this case may carry with it more real risk than using investment leverage

View File

@@ -0,0 +1,45 @@
O.,ter 3: Call Buying
TABLE 3-5.
Original and spread positions compared.
Stock Price Long Call
at Expiration Result
25 -$300
30 - 300
33 - 300
35 - 300
38 0
40 + 200
45 + 700
FIGURE 3-2.
Companion: original call purchase vs. spread.
§
~ +$200
·5..
~
al
tJ)
.3
0
:1:
e
c.. -$300
Stock Price at Expiration
Spread
Result
-$300
- 300
0
+ 200
+ 200
+ 200
+ 200
115
With these prices, a 1-point debit would be required to roll down. That is, selling 2
October 35 calls would bring in $300 ($150 each), but the cost of buying the October
30 call is $400. Thus, the transaction would have to be done at a cost of $100, plus
commissions. With these prices, the break-even point after rolling down would be 34,
still well below the original break-even price of 38. The risk has now been increased
by the additional 1 point spent to roll down. If XYZ should drop below 30 at October
expiration, the investor would have a total loss of 4 points plus commissions. The
maximum loss with the original long October 35 call was limited to 3 points plus a
smaller amount of commissions. Finally, the maximum amount of money that the

View File

@@ -0,0 +1,34 @@
312 Part Ill: Put Optian Strategies
3½ points. Thus, if XYZ should reverse direction and be within 3½ points of the
striking price - that is, anywhere below 48½ - at expiration, the position will pro­
duce a profit. In fact, if XYZ should be below 45 at expiration, the entire bear
spread will expire worthless and the strategist will have made a 3½-point profit.
Finally, this repurchase of the put releases the margin requirement for the naked
put, and will generally free up excess funds so that a new straddle position can be
established in another stock while the low-requirement bear spread remains in
place.
In summary, this type of follow-up action is broader in purpose than any of the
simpler buy-back strategies described earlier. It will limit the writer's loss, but not
prevent him from making a profit. Moreover, he may be able to release enough mar­
gin to be able to establish a new position in another stock by buying in the uncov­
ered puts at a fractional price. This would prevent him from tying up his money
completely while waiting for the original straddle to reach its expiration date. The
same type of strategy also works in a downward market. If the stock falls after the
straddle is written, one can buy the put at the next lower strike to limit the down­
side risk, while still allowing for profit potential if the stock rises back to the striking
price.
EQUIVALENT STOCK POSITION FOLLOW-UP
Since there are so many follow-up strategies that can be used with the short straddle,
the one method that summarizes the situation best is again the equivalent stock posi­
tion (ESP). Recall that the ESP of an option position is the multiple of the quantity
times the delta times the shares per option. The quantity is a negative number if it is
referring to a short position. Using the above scenario, an example of the ESP
method follows:
Example: As before, assume that the straddle was originally sold for 7 points, but the
stock rallied. The following prices and deltas exist:
XYZ common, 50;
XYZ Jan 45 call, 7; delta, .90;
XYZ Jan 45 put, l; delta, - .10; and
XYZ Jan 50 call, 3; delta, .60.
Assume that 8 straddles were sold initially and that each option is for 100 shares of
XYZ. The ESP of these 8 short straddles can then be computed:

View File

@@ -0,0 +1,36 @@
796 Part VI: Measuring and Trading Volatility
move was needed to register a 4-standard deviation move. To see a specific example
of how this works in actual practice, look carefully at the chart of IBM in Figure 38-
4, the one that encompasses the crash of '87. Don't you think it's a little strange that
the chart doesn't show any moves of greater than minus 4.0 standard deviations? The
reason is that IBM's historical volatility had already increased so much in the days
preceding the crash day itself, that when IBM fell on the day of the crash, its move
was less than minus 4.0 standard deviations. (Actually, its one-day move was greater
than -4 standard deviations, but the 30-day move - which is what the graphs in Figure
38-3 and 38-4 depict - was not.)
STOCK PRICE DISTRIBUTION SUMMARY
One can say with a great deal of certainty that stocks do not conform to the normal
distribution. Actually, the normal distribution is a decent approximation of stock
price movement rrwst of the time, but it's these "outlying" results that can hurt any­
one using it as a basis for a nonvolatility strategy.
Scientists working on chaos theo:ry have been trying to get a better handle on
this. An article in Scientific American magazine ("A Fractal Walk Down Wall Street,"
Februa:ry 1999 issue) met some criticism from followers of Elliot Wave theo:ry, in that
they claim the article's author is purporting to have "invented" things that R. N.
Elliott discovered years ago. I don't know about that, but I do know that the article
addresses these same points in more detail. In the article, the author points out that
chaos theo:ry was applied to the prediction of earthquakes. Essentially, it concluded
that earthquakes can't be predicted. Is this therefore a useless analysis? No, says the
author. It means that humans should concentrate on building stronger buildings that
can withstand the earthquakes, for no one can predict when they may occur. Relating
this to the option market, this means that one should concentrate on building strate­
gies that can withstand the chaotic movements that occasionally occur, since chaotic
stock price behavior can't be predicted either.
It is important that option traders, above all people, understand the risks of
making too conservative an estimate of stock price movement. These risks are espe­
cially great for the writer of an option (and that includes covered writers and spread­
ers, who may be giving away too much upside by writing a call against long stock or
long calls). By quantifying past stock price movements, as has been done in this chap­
ter, my aim is to convince you that "conventional" assumptions are not good enough
for your analyses. This doesn't mean that it's okay to buy overpriced options just
because stocks can make large moves with a greater frequency than most option

View File

@@ -0,0 +1,38 @@
Chapter 29: Introduction to Index Option Products and Futures 519
Assuming the strategist did not anticipate assignment and therefore did not
exercise his long calls, he has several choices after receiving an assignment notice the
next morning. First, he could do nothing. This would be an overly aggressive bullish
stance for someone who was previously in a hedged position, but it is sometimes
done. The strategist who takes this aggressive tack is banking on the fact that the sell­
ing after the assignment will be temporary, and the market will rebound thereafter,
giving him the opportunity to close out his remaining longs at favorable prices. This
is an overly aggressive strategy and is not recommended.
The most prudent approach to take when one receives an early assignment on
a cash-based option is to immediately try to do something to hedge the remaining
position. The simplest thing to do is to buy or sell futures, depending on whether the
assignment was on a put or call. If one was assigned on a put, a portion of the bull­
ishness (short puts are bullish) of one's position has been removed. Therefore, one
might buy futures to quickly add some bullishness to the remaining position.
Generally, if one were assigned early on calls, part of the bearishness of his position
would have been removed - short calls being bearish - and he might therefore sell
futures to add bearishness to his remaining position. Once hedged, the position can
be removed during that trading day, if desired; by trading out of the hedge estab­
lished that morning.
One should receive this assignment notice early in the morning, so he can
immediately hedge his position in the overnight markets. If he waits until the day ses­
sion opens, he might use futures or options to hedge. One should be particularly
careful about placing market orders in an opening option rotation, especially on index
options after a severe downside move has occurred the previous day. Market makers
are very nervous and are not willing to sell puts as protection to the public in that sit­
uation. Consequently, puts are notoriously overpriced after a large down day in the
stock market. One should refrain from buying put options in the opening rotation in
such a case. In the future, it is possible that comparable situations may exist on the
upside. To date, however, all gaps and severe mispricing anomalies have been on the
bearish side of the market, the downside.
CONCLUSION
The introduction of index products has opened some new areas for option strategists.
The ideas presented in this chapter form a foundation for exploring this new realm
of option strategies. Many traders are reluctant to trade futures options because
futures seem too foreign. Such should not be the case. By trading in futures options,
one can avail himself of the same strategies available in stock option. Moreover, he
may be able to take advantage of certain features of futures and futures options that

View File

@@ -0,0 +1,36 @@
182 Part II: Call Option Strategies
TABLE 7-3.
Lowering the break-even price on common stock.
XYZ Price at Profit on Profit on Short Profit on long Total
Expiration Stock October 45's October 40 Profit
35 -$1,300 +$400 -$400 -$1,300
38 - 1,000 + 400 - 400 - 1,000
40 800 + 400 - 400 800
42 600 + 400 - 200 400
43 500 + 400 - 100 200
44 400 + 400 0 0
45 300 + 400 + 100 + 200
48 0 - 200 + 400 + 200
50 + 200 - 600 + 600 + 200
tion. Below 40, the two strategies produce the same result. Finally, between 40 and
50, the new position outperforms the original stockholder's position.
In summary, then, the stockholder stands to gain much and gives away very lit­
tle by adding the indicated options to his stock position. If the stock stabilizes at all -
anywhere between 40 and 50 in the example above - the new position would be an
improvement. Moreover, the investor can break even or make profits on a small rally.
If the stock continues to drop heavily, nothing additional will be lost except for option
commissions. Only if the stock rallies very sharply will the stock position outperform
the total position.
This strategy- combining a covered write and a bull spread - is sometimes used
as an initial ( opening) trade as well. That is, an investor who is considering buying
XYZ at 42 might decide to buy the October 40 and sell two October 45's (for even
money) at the outset. The resulting position would not be inferior to the outright pur­
chase of XYZ stock, in terms of profit potential, unless XYZ rose above 46 by October
expiration.
Bull spreads may also be used as a "substitute" for covered writing. Recall from
Chapter 2 that writing against warrants can be useful because of the smaller invest­
ment required, especially if the warrant was in-the-money and was not selling at
much of a premium. The same thinking applies to call options. If there is an in-the­
money call with little or no time premium remaining in it, its purchase may be used
as a substitute for buying the stock itself Of course, the call will expire, whereas the
stock will not; but the profit potential of owning a deeply in-the-money call can be

View File

@@ -0,0 +1,38 @@
688 Part V: Index Options and Futures
Later, one can use the dollars per point to obtain actual dollar cost. Dollars per point
would be $50 for soybeans options, $100 for stock or index options, $400 for live cat­
tle options, $375 for coffee options, $1,120 for sugar options, etc. In this way, one
does not have to get hung up in the nomenclature of the futures contract; he can
approach everything in the same fashion for purposes of analyzing the position. He
will, of course, have to use proper nomenclature to enter the order, but that comes
after the analysis is done.
RATIO SPREADING THE CALLS
Returning to the subject at hand - spreads that capture this particular mispricing
phenomenon of futures options - recall that the other strategy that is attractive in
such situations is the ratio call spread. It is established with the maximum profit
potential being somewhat above the current futures price, since the calls that are
being sold are out-of-the-money.
Example: Again using the January soybean options of the previous few examples,
suppose that one establishes the following ratio call spread. Using the calls' deltas
(see Table 34-2), the following ratio is approximately neutral to begin with:
Buy 2 January bean 600 calls at 11
Sell 5 January bean 650 calls at 31/2
Net position:
22 DB
171/2 CR
41/2 Debit
Figure 34-2 shows the profit potential of the ratio call spread. It looks fairly typ­
ical for a ratio spread: limited downside exposure, maximum profit potential at the
strike of the written calls, and unlimited upside exposure.
Since this spread is established with both options out-of-the-money, one needs
some upward movement by January soybean futures in order to be profitable.
However, too much movement would not be welcomed (although follow-up strate­
gies could be used to deal with that). Consequently, this is a moderately bullish strat­
egy; one should feel that the underlying futures have a chance to move somewhat
higher before expiration.
Again, the analyst should treat this position in terms of points, not dollars or
cents of soybean movement, in order to calculate the significant profit and loss
points. Refer to Chapter 11 on ratio call spreads for the original explanation of these
formulae for ratio call spreads:
Maximum downside loss = Initial debit or credit
= -4½ (it is a debit)

View File

@@ -0,0 +1,41 @@
Chapter 2: Covered Call Writing
Return if exercised - margin
Downside break-even point cash
Downside break-even point - margin
XYZ
7.9%
46.3
47.6
63
AAA
16.2%
44.9
46.1
Seeing these calculations, the XYZ stockholder may feel that it is not advisable to
write against his stock, or he may even be tempted to sell XYZ and buy AAA in order
to establish a covered write. Either of these actions could be a mistake.
First, he should compute what his returns would be, at current prices, from
writing against the XYZ he already owns. Since the stock is already held, no stock buy
commissions would be involved. This would reduce the net investment shown below
by the stock purchase commissions, or $345, giving a total net investment (cash) of
$23,077. In theory, the stockholder does not really make an investment per se; after
all, he already owns the stock. However, for the purposes of computing returns, an
investment figure is necessary. This reduction in the net investment will increase his
profit by the same amount - $345 - thus, bringing the profit up to $1,828.
Consequently, the return if exercised (cash) wpuld be 7.9% on XYZ stock already
held. On margin, the return would increase to 11.3% after eliminating purchase com­
missions. This return, assumed to be for a 6-month period, is well in excess of 1 % per
TABLE 2-17.
Summary of covered writing returns, XYZ and AAA.
XYZ AAA
Buy 500 shares at 50 $25,000 $25,000
Plus stock commissions + 345 + 345
Less option premiums received - 2,000 - 3,000
Plus option sale commissions + 77 + 91
Net investment-cash $23,422 $22,436
Sell 500 shares at 50 $25,000 $25,000
Less stock sale commissions 345 345
Dividend received + 250 0
Less net investment - 23,422 - 22,436
Net profit $ 1,483 $ 2,219
Return if exercised-cash 6.3% 9.9%

View File

@@ -0,0 +1,38 @@
Chapter 34: Futures and Futures Options 691
ridiculously far out-of-the-money options, as one is wasting his theoretical advantage
if the futures do not have a realistic chance to climb to the striking price of the writ­
ten options. Finally, do not attempt to use overly large ratios in order to gain the most
theoretical advantage. This is an important concept, and the next example illustrates
it well.
Example: Assume the same pricing pattern for January soybean options that has
been the basis for this discussion. January beans are trading at 583. The (novice)
strategist sees that the slightly in-the-money January 575 call is the cheapest and the
deeply out-of-the-money January 675 call is the most expensive. This can be verified
from either of two previous tables: the one showing the actual price as compared to
the "theoretical" price, or Table 34-2 showing the implied volatilities.
Again, one would use the deltas (see Table 34-2) to create a neutral spread. A
neutral ratio of these two would involve selling approximately six calls for each one
purchased.
Buy 1 January bean 575 call at 191/z
Sell 6 January bean 675 calls at 21/4
Net position:
191/z DB
131/z CR
6 Debit
Figure 34-3 shows the possible detrimental effects of using this large ratio.
While one could make 94 points of profit if beans were at 675 at January expiration,
he could lose that profit quickly if beans shot on through the upside break-even
point, which is only 693.8. The previous formulae can be used to verify these maxi­
mum profit and upside break-even point calculations. The upside break-even point
is too close to the striking price to allow for reasonable follow-up action. Therefore,
this would not be an attractive position from a practical viewpoint, even though at
first glance it looks attractive theoretically.
It would seem that neutral spreading could get one into trouble if it "recom­
mends" positions like the 6-to-l ratio spread. In reality, it is the strategist who is get­
ting into trouble if he doesn't look at the whole picture. The statistics are just an aid
- a tool. The strategist must use the tools to his advantage. It should be pointed out
as well that there is a tool missing from the toolkit at this point. There are statistics
that will clearly show the risk of this type of high-rati<,Yspread. In this case, that tool
is the gamma of the option. Chapter 40 covers the -Lise of gamma and other more
advanced statistical tools. This same example is expanded in that chapter to include
the gamma concept.

View File

@@ -0,0 +1,32 @@
for the move to reverse itself. If she didnt have the trade on now, would she
sell ten 65 puts at 1.07 with Johnson & Johnson at $65? Based on her
original intention, unless she believes strongly now that a breakout through
$65 with follow-through momentum is about to take place, she will likely
take the money and run.
Stacie also must handle this trade differently from Brendan in the event
that the trade is a loser. Her trade has a higher delta. An adverse move in the
underlying would affect Stacies trade more than it would Brendans. If
Johnson & Johnson declines, she must be conscious in advance of where
she will cover.
Stacie considers both how much she is willing to lose and what potential
stock-price action will cause her to change her forecast. She consults a
stock chart of Johnson & Johnson. In this example, well assume there is
some resistance developing around $64 in the short term. If this resistance
level holds, the trade becomes less attractive. The at-expiration breakeven is
$63.25, so the trade can still be a winner if Johnson & Johnson retreats. But
Stacie is looking for the stock to approach $65. She will no longer like the
risk/reward of this trade if it looks like that price rise wont occur. She
makes the decision that if Johnson & Johnson bounces off the $64 level
over the next couple weeks, she will exit the position for fear that her
outlook is wrong. If Johnson & Johnson drifts above $64, however, she will
ride the trade out.
In this example, Stacie is willing to lose 1.00 per contract. Without taking
into account theta or vega, that 1.00 loss in the option should occur at a
stock price of about $63.28. Theta is somewhat relevant here. It helps
Stacies potential for profit as time passes. As time passes and as the stock
rises, so will theta, helping her even more. If the stock moves lower (against
her) theta helps ease the pain somewhat, but the further in-the-money the
put, the lower the theta.
Vega can be important here for two reasons: first, because of how implied
volatility tends to change with market direction, and second, because it can
be read as an indication of the markets expectations.

View File

@@ -0,0 +1,38 @@
Cl,apter 24: Ratio Spreads Using Puts 359
expire worthless and the result would be a loss of commissions. However, there is
downside risk. If XYZ should fall by a great deal, one would have to pay much more
to buy back the two short puts than he would receive from selling out the one long
put. The maximum profit would be realized if XYZ were at 45 at expiration, since the
short puts would expire worthless, but the long January 50 put would be worth 5
points and could be sold at that price. Table 24-1 and Figure 24-1 summarize the
position. Note that there is a range within which the position is profitable - 40 to 50
in this example. If XYZ is above 40 and below 50 at January expiration, there will be
some profit, before commissions, from the spread. Below 40 at expiration, losses will
be generated and, although these losses are limited by the fact that a stock cannot
decline in price below zero, these losses could become very large. There is no upside
risk, however, as was pointed out earlier. The following formulae summarize the sit­
uation for any put ratio spread:
Maximum upside risk
Maximum profit
potential
= Net debit of spread (no upside risk if done for
a credit)
= Striking price differential x Number of long
puts - Net debit (or plus net credit)
Downside break-even price = Lower strike price - Maximum profit potential +
Number of naked puts
The investment required for the put ratio spread consists of the collateral
requirement necessary for a naked put, plus or minus the credit or debit of the entire
position. Since the collateral requirement for a naked option is 20% of the stock
TABLE 24-1.
Ratio put spread.
XYZ Price at Long January 50 Short 2 January 45 Total
Expiration Put Profit Put Profit Profit
20 +$2,600 -$4,600 -$2,000
30 + 1,600 - 2,600 - 1,000
40 + 600 600 0
42 + 400 200 + 200
45 + 100 + 400 + 500
48 200 + 400 + 200
50 400 + 400 0
60 400 + 400 0

View File

@@ -0,0 +1,32 @@
164 •   TheIntelligentOptionInvestor
because of their lack of appreciation for the fact that the sword of lever -
age cuts both ways. Certainly an option investor cannot be considered an
intelligent investor without having an understanding and a deep sense
of respect for the simultaneous power and danger that leverage conveys.
New jargon introduced in this chapter includes the following:
Lambda
Notional exposure
Investment Leverage
Commit the following definition to memory:
Investment leverage is the boosting of investment returns calcu-
lated as a percentage by altering the amount of ones own capital
at risk in a single investment.
Investment leverage is inextricably linked to borrowing money—this
is what I mean by the phrase “altering the amount of ones own capital at
risk. ” In this way, it is very similar to financial leverage. In fact, in my mind,
the difference between financial and investment leverage is that a company
uses financial leverage to fund projects that will produce goods or provide
services, whereas in the case of investing leverage, it is used not to produce
goods or services but to amplify the effects of a speculative position.
Frequently people think of investing leverage as simply borrowing
money to invest. However, as I mentioned earlier, you can invest in options
for a lifetime and never explicitly borrow money in the process. I believe
that the preceding definition is broad enough to handle both the case of
investment leverage generated through explicit borrowing and the case of
leverage generated by options.
Lets take a look at a few example investments—unlevered, levered
using debt, and levered using options.
Unlevered Investment
Lets say that you buy a stock for exactly $50 per share, expecting that its intrinsic
value is closer to $85 per share. Over the next year, the stock increases by $5,
or 10 percent in value. Y our unrealized percentage gain on this investment is

View File

@@ -0,0 +1,31 @@
Dividends and Option Pricing
The preceding discussion demonstrated how dividends affect stock traders.
Theres one problem: were option traders! Option holders or writers do not
receive or pay dividends, but that doesnt mean dividends arent relevant to
the pricing of these securities. Observe the behavior of a conversion or a
reversal before and after an ex-dividend date. Assuming the stock opens
unchanged on the ex-date, the relationship of the price of the synthetic stock
to the actual stock price will change. Lets look at an example to explore
why.
At the close on the day before the ex-date of a stock paying a $0.25
dividend, a trader has an at-the-money (ATM) conversion. The stock is
trading right at $50 per share. The 50 puts are worth 2.34, and the 50 calls
are worth 2.48. Before the ex-date, the trader is
Long 100 shares at $50
Long one 50 put at 2.34
Short one 50 call at 2.48
Here, the trader is long the stock at $50 and short stock synthetically at
$50.14—50 + (2.48 2.34). The trader is synthetically short $0.14 over the
price at which he is long the stock.
Assume that the next morning the stock opens unchanged. Since this is
the ex-date, that means the stock opens at $49.75—$0.25 lower than the
previous days close. The theoretical values of the options will change very
little. The options will be something like 2.32 for the put and 2.46 for the
call.
After the ex-date, the trader is
Long 100 shares at $49.75
Long one 50 put at 2.32
Short one 50 call at 2.46
Each option is two cents lower. Why? The change in the option prices is
due to theta. In this case, its $0.02 for each option. The synthetic stock is
still short from an effective price of $50.14. With the stock at $49.75, the

View File

@@ -0,0 +1,27 @@
objectives are met more efficiently by buying the spread. The goal is to
profit from the delta move down from $80 to $75. Exhibit 9.8 shows the
differences between the greeks of the outright put and the spread when the
trade is put on with ExxonMobil at $80.55.
EXHIBIT 9.8 ExxonMobil put vs. bear put spread (ExxonMobil @
$80.55).
80 Put7580 Put
Delta 0.4450.300
Gamma+0.080+0.041
Theta 0.0180.006
Vega +0.110+0.046
As in the call-spread examples discussed previously, the spread delta is
smaller than the outright puts. It appears ironic that the spread with the
smaller delta is a better trade in this situation, considering that the intent is
to profit from direction. But it is the relative differences in the greeks
besides delta that make the spread worthwhile given the traders goal.
Gamma, theta, and vega are proportionately much smaller than the delta in
the spread than in the outright put. While the spreads delta is two thirds
that of the put, its gamma is half, its theta one third, and its vega around 42
percent of the puts.
Retracements such as the one called for by the trader in this example can
happen fast, sometimes over the course of a week or two. Its not
necessarily bad if this move occurs quickly. If ExxonMobil drops by $5
right away, the short delta will make the position profitable. Exhibit 9.9
shows how the spread position changes as the stock declines from $80 to
$75.
EXHIBIT 9.9 7580 bear put spread as ExxonMobil declines.

View File

@@ -0,0 +1,36 @@
126 Part II: Call Option Strategies
Generally, the underlying stock selected for the reverse hedge should be
volatile. Even though option premiums are larger on these stocks, they can still be
outdistanced by a straight-line move in a volatile situation. Another advantage of uti­
lizing volatile stocks is that they generally pay little or no dividends. This is desirable
for the reverse hedge, because the short seller will not be required to pay out as
much.
The technical pattern of the underlying stock can also be useful when selecting
the position. One generally would like to have little or no technical support and
resistance within the loss area. This pattern would facilitate the stock's ability to make
a fairly quick move either up or down. It is sometimes possible to find a stock that is
in a wide trading range, frequently swinging from one side of the range to the other.
If a reverse hedge can be set up that has its loss area well within this trading range,
the position may also be attractive.
Example: The XYZ stock in the previous example is trading in the range 30 to 50,
perhaps swinging to one end and then the other rather frequently. Now the reverse
hedge example position, which would make profits above 46 or below 34, would
appear more attractive.
FOLLOW-UP ACTION
Since the reverse hedge has a built-in limited loss feature, it is not necessary to take
any follow-up action to avoid losses. The investor could quite easily put the position
on and take no action at all until expiration. This is often the best method of follow­
up action in this strategy.
Another follow-up strategy can be applied, although it has some disadvantages
associated with it. This follow-up strategy is sometimes known as trading against the
straddle. When the stock moves far enough in either direction, the profit on that side
can be taken. Then, if the stock swings back in the opposite direction, a profit can
also be made on the other side. Two examples \vill show how this type of follow-up
strategy works.
Example 1: The XYZ stock in the previous example quickly moves down to 32. At
that time, an 8-point profit could be taken on the short sale. This would leave two
long calls. Even if they expired worthless, a 6-point loss is all that would be incurred
on the calls. Thus, the entire strategy would still have produced a profit of 2 points.
However, if the stock should rally above 40, profits could be made on the calls as well.
A slight variation would be to sell one of the calls at the same time the stock profit is
taken. This would result in a slightly larger realized profit; but if the stock rallied back

View File

@@ -0,0 +1,42 @@
614 Part V: Index Options and Futurei
retical cash value. He is not too eager to sell at such a discount, but he realizes tha
he has a lot of exposure between the current price and the guarantee price of 10.
He might consider writing a listed call against his position. That would conver
it into the equivalent of a bull spread, since he already holds the equivalent of a lonf
call via ownership of the structured product. Suppose that he quotes the $SP)
options that trade on the CBOE and finds the following prices for 6-month options
expiring in December:
$SPX: 1,200
Option
December 1,200 call
December 1,250 call
December 1,300 call
Price
85
62
43
Suppose that he likes the sale of the December 1,250 call for 62 points. How
many should he sell against his position in order to have a proper hedge?
First, one must compute a multiplier that indicates how many shares of the
structured product are equivalent to one "share" of the $SPX. That is done in the
simple case by dividing the striking price by the guarantee price:
Multiplier = Striking price/ Base price
= 700 / 10 = 70
This means that buying 70 shares of the structured product is equivalent to
being long one share of $SPX. To verify this, suppose that one had bought 70 shares
of the structured product initially at a price of 10, when $SPX was at 700. Later,
assume that $SPX doubles to 1,400. With the simple structure of this product, which
has a 100% participation rate and no adjustment factor, it should also double to 20.
So 70 shares bought at 10 and sold at 20 would produce a profit of $700. As for $SPX,
one "share" bought at 700 and later sold at 1,400 would also yield a profit of $700.
This verifies that the 70-to-l ratio is the correct multiplier.
This multiplier can then be used to figure out the current equivalent structured
product position in terms of $SPX. Recall that the investor had bought 15,000 shares
initially. Since the multiplier is 70-to-l, these 15,000 shares are equivalent to:
$SPX equivalent shares = Shares of structured product held/ Multiplier
= 15,000 / 70 = 214.29
That is, owning this structured product is the equivalent of owning 214+ shares
of $SPX at current prices. Since an $SPX call option is an option on 100 "shares" of
$SPX, one would write 2 calls (rounding off) against his structured profit position.
Since the SPX December 1,250 calls are selling for 62, that would bring in $12,400
less commissions.

View File

@@ -0,0 +1,34 @@
Chapter 35: Futures Option Strategies for Futures Spreads 719
Initial Final Net Profit/
Position Price Price Loss
Bought 5 calls 6.40 0 -$13,440
Bought 5 puts 4.25 10.00 + 12,075
Sold 3 heating oil futures .7100 .6400 + 8,820
Bought 3 unleaded gas futures .5700 .5200 - 6,300
Total profit: +$ 1,155
In the final analysis, the fact that the intermarket spread collapsed to zero actu­
ally aided the option strategy, since the puts were the in-the-money option at expira­
tion. This was not planned, of course, but by being long the options, the strategist was
able to make money when volatility appeared.
INTRAMARKET SPREAD STRATEGY
It should be obvious that the same strategy could be applied to an intramarket spread
as well. If one is thinking of spreading two different soybean futures, for example, he
could substitute in-the-money options for futures in the position. He would have the
same attributes as shown for the intermarket spread: large potential profits if volatil­
ity occurs. Of course, he could still make money if the intramarket spread widens, but
he would lose the time value premium paid for the options.
SPREADING FUTURES AGAINST STOCK SECTOR INDICES
This concept can be carried one step further. Many futures contracts are related to
stocks - usually to a sector of stocks dealing in a particular commodity. For example,
there are crude oil futures and there is an Oil & Gas Sector Index (XOI). There are
gold futures and there is a Gold & Silver Index (XAU). If one charts the history of
the commodity versus the price of the stock sector, he can often find tradeable pat­
terns in terms of the relationship between the two. That relationship can be traded
via an intermarket spread using options.
For example, if one thought crude oil was cheap with respect to the price of oil
stocks in general, he could buy calls on crude oil futures and buy puts on the Oil &
Gas (XOI) Index. One would have to be certain to determine the number of options
to trade on each side of the spread, by using the ratio that was presented in Chapter
31 on inter-index spreading. (In fact, this formula should be used for futures inter­
market spreading if the two underlying futures don't have the same terms.) Only now,
there is an extra component to add if options are used - the delta of the options:

View File

@@ -0,0 +1,38 @@
72 Part II: Call Option Strategies
The covered writer of the January 50 would, at this time, have a small unrealized loss
of one point in his overall position: His loss on the common stock is 6 points, but he
has a 5-point gain in the January 50 call. (This demonstrates that prior to expiration,
a loss occurs at the "break-even" point.) If the stock should continue to fall from
these levels, he could have a larger loss at expiration. The call, selling for one point,
only affords one more point of downside protection. If a further stock price drop is
anticipated, additional downside protection can be obtained by rolling down. In this
example, if one were to buy back the January 50 call at 1 and sell the January 45 at
4, he would be rolling down. This would increase his protection by another three
points - the credit generated by buying the 50 call at 1 and selling the 45 call at 4.
Hence, his downside break-even point would be 42 after rolling down.
Moreover, if the stock were to remain unchanged - that is, if XYZ were exactly
45 at January expiration - the writer would make an additional $300. If he had not
rolled down, the most additional income that he could make, if XYZ remained
unchanged, would be the remaining $100 from the January 50 call. So rolling down
gives more downside protection against a further drop in stock price and may also
produce additional income if the stock price stabilizes.
In order to more exactly evaluate the overall effect that was obtained by rolling
down in this example, one can either compute a profit table (Table 2-21) or draw a
net profit graph (Figure 2-3) that compares the original covered write with the
rolled-down position.
Note that the rolled-down position has a smaller maximum profit potential than
the original position did. This is because, by rolling down to a January 45 call, the
writer limits his profits anywhere above 45 at expiration. He has committed himself
to sell stock 5 points lower than the original position, which utilized a January 50 call
and thus had limited profits above 50. Rolling down generally reduces the maximum
TABLE 2·21.
Profit table.
XYZ Price at Profit from Profit from
Expiration January 50 Write Rolled Position
40 -$500 -200
42 - 300 0
45 0 +300
48 + 300 +300
50 + 500 +300
60 + 500 +300

View File

@@ -0,0 +1,32 @@
Chapter 39: Volatility Trading Techniques 837
buying a straddle, ask the question, "Has this stock been able to move far
enough, with great enough frequency, to make this straddle purchase prof­
itable?") Use histograms to ensure that the past distribution of stock prices
is smooth, so that an aberrant, nonrepeatable move is not overly influenc­
ing the results.
Each criterion from Step 1 would produce a different list of viable volatility
trading candidates on any given day. If a particular candidate were to appear on more
than one of the lists, it might be the best situation of all.
TRADING THE VOLATILITY SKEW
In the early part of this chapter, it was mentioned that there are two ways in which
volatility predictions could be "wrong." The first was that implied volatility was out of
line. The second is that individual options on the same underlying instrument have
significantly different implied volatilities. This is called a volatility skew, and presents
trading opportunities in its own right.
DIFFERING IMPLIED VOLATILITIES ON THE SAME UNDERLYING SECURITY
The implied volatility of an option is the volatility that one would have to use as input
to the Black-Scholes model in order for the result of the model to be equal to the
current market price of the option. Each option will thus have its own implied volatil­
ity. Generally, they will be fairly close to each other in value, although not exactly the
same. However, in some cases, there will be large enough discrepancies between the
individual implied volatilities to warrant the strategist's attention. It is this latter con­
dition of large discrepancies that will be addressed in this section.
Example: XYZ is trading at 45. The following option prices exist, along with their
implied volatilities:
Actual Implied
Option Price Volatility
January 45 call 2.75 41%
January 50 call 1.25 47%
January 55 call 0.63 53%
February 45 call 3.50 38%
February 50 call 4.00 45%

View File

@@ -0,0 +1,97 @@
693
Index
Market(s):
agricultural, 351
bear (see Bear market)
bull (see Bull market)
correlated, leverage reduction and, 562
excitement and, 585
exiting position and, 584585
free, 357
housing (see Housing market)
nonrandom prices and, 587
planned trading approach and, 560
trading results and, 317
Market characteristic adjustments, trend-following
systems and, 251252
Market direction, 449
Market hysteria, 585
Market-if-touched (MIT) order, 18
Market observations. See Rules, trading
Market opinion:
appearances and, 582583
change of, 204
Market order, 16
Market patterns, trading rules and, 572573
Market Profile trading technique, 585
Market psychology, shift in, 429
Market response analysis, 403411
isolated events and, 409410
limitations of, 410411
repetitive events and, 403410
stock index futures response to employment
reports, 408409
T -Note futures response to monthly U.S.
employment report, 404407
Market Sense and Nonsense: How the Markets Really Work,
319
Market statistics, balance table and, 373374
Market wizard lessons, 575587
Market Wizards books, 575, 579, 580, 581, 585, 586
MAR ratio, 330, 335
MBSs. See Mortgage-backed securities (MBSs)
McKay, Randy, 576, 581, 583
Measured moves (MM), 190193
Measures of dispersion, 597599
Mechanical systems. See T echnical trading systems
Metals. See Copper; Gold market
Method:
determination of, 576
development of, 576
Limited-risk spread, 446448
Limit order, 17
“Line” (close-only) charts, 4042
Linearity, transformations to achieve, 666669
Linearly weighted moving average (LWMA),
239240
Linked-contract charts, 4556
comparing the series, 48
continuous (spread-adjusted) price series, 47
creation of, methods for, 4648
nearest futures, 4647
nearest vs. continuous futures, 3940, 4851,
5256
necessity of, 4546
Linked contract series: nearest futures versus
continuous futures, 3940
Link relative method, seasonal index, 394396
Liquidation information, 564
Live cattle. See Cattle
Livestock markets, 287. See also Cattle; Hog
production
Long call (at-the-money) trading strategy, 491492
Long call (out-of-the-money) trading strategy,
493494
Long futures trading strategy, 489490
Long put (at-the-money), 503504
Long put (in-the-money), 506508
Long put (out-of-the-money), 504506
Long straddle, 515516
Long-term implications versus short-term response,
432435
Long-term moving average, reaction to, 181182
Look-back period, 173
Losing period adjustments, planned trading
approach and, 562563
Losing trades, overlooking, 313
Losses:
partial, taking, 583
temporary large, 245
Loyalty/disloyalty, 583584
Lumber, inflation and, 384
“Magic number” myth, 170
Managers:
comparison of two, 320322
negative Sharpe ratios and, 325
MAR. See Minimum acceptable return (MAR)
Margins, 19

View File

@@ -0,0 +1,19 @@
Long ATM Call
Kim is a trader who is bullish on the Walt Disney Company (DIS) over the
short term. The time horizon of her forecast is three weeks. Instead of
buying 100 shares of Disney at $35.10 per share, Kim decides to buy one
Disney March 35 call at $1.10. In this example, March options have 44
days until expiration. How can Kim profit from this position? How can she
lose?
Exhibit 4.1 shows the profit and loss (P&(L)) for the call at different time
periods. The top line is when the trade is executed; the middle, dotted line is
after three weeks have passed; and the bottom, darker line is at expiration.
Kim wants Disney to rise in price, which is evident by looking at the graph
for any of the three time horizons. She would anticipate a loss if the stock
price declines. These expectations are related to the positions delta, but that
is not the only risk exposure Kim has. As indicated by the three different
lines in Exhibit 4.1 , the call loses value over time. This is called theta risk .
She has other risk exposure as well. Exhibit 4.2 lists the greeks for the DIS
March 35 call.
EXHIBIT 4.1 P&(L) of Disney 35 call.
EXHIBIT 4.2 Greeks for 35 Disney call.

View File

@@ -0,0 +1,31 @@
Cl,apter 1: Definitions 9
TABLE 1-2.
Comparison of XYZ stock and call prices.
XYZ July 45 XYZ Stock Over
Striking Price + Coll Price Price Parity
(45 + 45 1/2) 1/2
(45 + 21/2 47 ) 1/2
(45 + 51/2 50 ) ½
(45 + 151/2 60 ) 1/2
FACTORS INFLUENCING THE PRICE OF AN OPTION
An option's price is the result of properties of both the underlying stock and the terms
of the option. The major quantifiable factors influencing the price of an option are
the:
1.. price of the underlying stock,
2. striking price of the option itself,
3. time remaining until expiration of the option,
4. volatility of the underlying stock,
5. current risk-free interest rate (such as for 90-day Treasury bills), and
6. dividend rate of the underlying stock.
The first four items are the major determinants of an option's price, while the latter
two are generally less important, although the dividend rate can be influential in the
case of high-yield stock.
THE FOUR MAJOR DETERMINANTS
Probably the most important influence on the option's price is the stock price,
because if the stock price is far above or far below the striking price, the other fac­
tors have little influence. Its dominance is obvious on the day that an option expires.
On that day, only the stock price and the striking price of the option determine the
option's value; the other four factors have no bearing at all. At this time, an option is
worth only its intrinsic value.
Example: On the expiration day in July, with no time remaining, an XYZ July 50 call
has the value shown in Table 1-3; each value depends on the stock price at the time.

Some files were not shown because too many files have changed in this diff Show More