สรุปผลตอบแทน options เดือนมิถุนายน 2026
สัญญา options ที่ดีที่สุดในเดือนมิถุนายน 2026 ให้ผลตอบแทน 495x ขณะที่การขายสัญญาเดียวกันทำให้ขาดทุน 494,000 dollars จากเงินลงทุนหนึ่งพันดอลลาร์
การซื้อขาย options ที่ดีที่สุดเพียงรายการเดียวในเดือนมิถุนายน 2026 คืออะไร และเงินหนึ่งพันดอลลาร์ที่ลงทุนไปจะมีมูลค่าเพิ่มขึ้นเป็นเท่าใด คำตอบที่แท้จริงประกอบด้วยสี่ส่วน ได้แก่: ผลตอบแทนสูงสุด (jackpot); รายการซื้อขาย penny print จำนวนสองสัญญาที่เป็นหัวใจสำคัญของพาดหัวข่าว; รายการขาดทุนเกือบทั้งหมดจำนวนเก้าพันรายการที่เกิดขึ้นรอบๆ รายการนั้น; และรายการเทรดที่ตรงกันข้ามกัน หรือการขาย (selling) ในสิ่งที่ผู้ชนะซื้อ ซึ่งทำให้เงินค่า premium หนึ่งพันดอลลาร์กลายเป็นผลขาดทุนระดับหกหลัก ข้อมูลทั้งหมดนี้เป็นการคำนวณย้อนหลังจากข้อมูลบันทึกการซื้อขาย (tape) การวัดผลการเทรดแบบ hindsight-optimal คือการวัดสิ่งที่เกิดขึ้นจริงในเดือนนั้น ไม่ใช่กลยุทธ์ที่ใครจะสามารถนำไปใช้ได้ ทุกตัวเลขเป็นผลลัพธ์จากการสืบค้นข้อมูล (query) ที่ถูกบันทึกไว้ คุณสามารถขยายแถบข้อมูลเพื่อดูคำสั่ง SQL ที่แม่นยำได้
เดือนมิถุนายน 2026 ผันผวนเพียงใด?
การที่ออปชันทำกำไรได้หนึ่งร้อยเท่า จำเป็นต้องอาศัยเดือนที่ตลาดผันผวนอย่างรุนแรงหรือไม่? ข้อมูลเดือนมิถุนายนชี้ว่าไม่ คณะทำงานคำนวณข้อมูลทุกเดือนของปี 2026 ด้วยวิธีเดียวกัน คือวัดจากราคาเปิดถึงราคาปิดในช่วงเวลาทำการปกติ และวัดช่วงความผันผวนจากราคาสูงสุดถึงราคาต่ำสุดเป็นเปอร์เซ็นต์ของราคาเปิด สำหรับ SPY และ NVDA ซึ่งเป็นหุ้นหลักที่ทำกำไรได้ โดยในเดือนมิถุนายนมีจำนวนเซสชันทั้งหมด 21 เซสชัน
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT toString(toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York')))) AS period_start,
round((argMaxIf(toFloat64(close), window_start, ticker = 'SPY' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / argMinIf(toFloat64(open), window_start, ticker = 'SPY' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS spy_month_pct,
round((maxIf(toFloat64(high), ticker = 'SPY' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - minIf(toFloat64(low), ticker = 'SPY' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / argMinIf(toFloat64(open), window_start, ticker = 'SPY' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) * 100, 1) AS spy_range_pct,
round((argMaxIf(toFloat64(close), window_start, ticker = 'NVDA' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / argMinIf(toFloat64(open), window_start, ticker = 'NVDA' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS nvda_month_pct,
round((maxIf(toFloat64(high), ticker = 'NVDA' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - minIf(toFloat64(low), ticker = 'NVDA' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / argMinIf(toFloat64(open), window_start, ticker = 'NVDA' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) * 100, 1) AS nvda_range_pct,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), ticker = 'SPY') AS trading_days
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'NVDA')
AND window_start >= toDateTime('2026-01-01 05:00:00') AND window_start < toDateTime('2026-07-01 04:00:00')
GROUP BY period_start
HAVING uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), ticker = 'SPY') >= 17
ORDER BY period_start ASCSPY ปิดเดือนมิถุนายนโดยมีราคาเปลี่ยนแปลงจากราคาเปิด -1.2% ภายใต้ช่วงความผันผวน 5.8% ซึ่งแคบกว่าเดือนมีนาคม (8.7%) หรือเมษายน (11.4%) ในขณะที่ความผันผวนที่แท้จริงเกิดขึ้นในระดับถัดลงมา โดย NVDA ปิดตลาดห่างจากราคาเปิดในเดือนมิถุนายน -7.4% หลังจากเคลื่อนที่อยู่ในช่วงความผันผวน 19.7% (สรุปภาพรวมตลาดเดือนมิถุนายน 2026 มีข้อมูลภาพรวมของทั้งตลาด) การทำกำไรหนึ่งร้อยเท่าไม่จำเป็นต้องอาศัยเดือนที่ตลาดดิ่งเหว เพียงแค่มีหุ้นขนาดใหญ่ตัวเดียวที่ราคาตกลงอย่างรุนแรงภายในสองสัปดาห์ก็เพียงพอแล้ว
อัตราส่วนกำไรสูงสุดประจำเดือน
ขอบเขตข้อมูล: สัญญาซื้อขายทั้งหมดใน 6 สินทรัพย์หลักที่มีสภาพคล่องสูง โดยมีจำนวนการซื้อขายอย่างน้อยห้าสิบครั้งในเดือนมิถุนายน — 30951 สัญญา — โดยคำนวณราคาตั้งแต่ราคาแรกของวันที่หนึ่งมิถุนายนจนถึงราคาล่าสุดจากทั้งสองฝั่ง: คำนวณจากมูลค่าที่ซื้อ ณ ราคาแรกเทียบกับราคาล่าสุด และคำนวณจากมูลค่าที่ต้องจ่ายหากขายด้วยพรีเมียมหนึ่งพันดอลลาร์
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT ticker AS contract,
substring(ticker, -9, 1) = 'P' AS is_put,
round(first_px, 2) AS first_price,
round(last_px, 2) AS last_price,
round(last_px / first_px, 1) AS multiple,
toUInt32(floor(1000 / (first_px * 100))) AS contracts_for_a_thousand,
round(floor(1000 / (first_px * 100)) * last_px * 100, 0) AS bought_end_value_usd,
round(1000 * (last_px / first_px) - 1000, 0) AS sold_net_loss_usd,
trades
FROM (
SELECT ticker,
toFloat64(argMin(price, (sip_timestamp, price))) AS first_px,
toFloat64(argMax(price, (sip_timestamp, price))) AS last_px,
count() AS trades
FROM global_markets.options_trades
WHERE ((startsWith(ticker, 'O:MU') AND length(ticker) = 19) OR (startsWith(ticker, 'O:NVDA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:TSLA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:SPY') AND length(ticker) = 20) OR (startsWith(ticker, 'O:QQQ') AND length(ticker) = 20) OR (startsWith(ticker, 'O:AAPL') AND length(ticker) = 21))
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
GROUP BY ticker
HAVING count() >= 50 AND argMin(price, (sip_timestamp, price)) > 0
)
ORDER BY multiple DESC, contract ASC
LIMIT 5สัญญาที่ทำกำไรสูงสุดคือ put option: O:NVDA260629P00200000 โดยราคาแรกอยู่ที่ $0.01 และราคาล่าสุดอยู่ที่ $4.95 — คิดเป็นอัตราส่วน 495x ข้อมูลระบุว่าเป็น NVDA put option ที่ราคา strike $200 หมดอายุวันที่ 29 มิถุนายน การใช้เงินหนึ่งพันดอลลาร์ซื้อ ณ ราคาแรกจะได้มา 1000 สัญญา และเมื่อราคาล่าสุดมาถึง สถานะนี้จะมีมูลค่า $495000 ราคาหุ้น NVDA ปรับตัวลดลงอย่างหนักในช่วงครึ่งหลังของเดือนมิถุนายน — รายละเอียดการดิ่งลงของราคา แสดงข้อมูลการลดลงในแต่ละวัน — และสัญญานี้คือการใช้ leverage เพื่อทำกำไรจากการลดลงดังกล่าว การคาดการณ์ล่วงหน้าได้นั้นเป็นสิ่งที่ไม่มีตารางข้อมูลใดขายให้คุณได้ ส่วนรายละเอียดเชิงลึกของราคาแรกจะอยู่ในส่วนถัดไปด้านล่าง
สัญญาอื่น ๆ ที่ติดอันดับ
สัญญาที่ติดอันดับทั้งห้าเป็น put option ทั้งหมด — โดยคอลัมน์ is_put คือหลักฐานยืนยัน — และแม้แต่อัตราส่วนที่ต่ำที่สุดก็ยังสูงกว่าสิบเท่า ในแถวที่สองคือ AAPL put option ที่ราคา strike $240 หมดอายุวันที่ 24 กรกฎาคม โดยราคาเคลื่อนที่จาก $0.01 ไปยัง $0.34 คิดเป็นอัตราส่วน 34x และยังมีสถานะค้างอยู่เมื่อสิ้นเดือน (เนื่องจากเป็นสัญญาที่หมดอายุในเดือนกรกฎาคม ราคาล่าสุดจึงเป็นราคาประเมิน ไม่ใช่ราคา settlement) แถวที่สามคือ MU put option ที่ราคา strike $100 หมดอายุวันที่ 10 กรกฎาคม ทำอัตราส่วนได้ 20x และมีสถานะค้างไปจนถึงเดือนกรกฎาคมเช่นกัน ส่วนแถวที่สี่และห้าคือ TSLA put option ที่ราคา strike $397.50 และ QQQ put option ที่ราคา strike $707 ซึ่งทั้งคู่หมดอายุวันที่ 10 มิถุนายน โดยทำอัตราส่วนได้ 12.5x และ 11.7x จากการปรับตัวลดลงในช่วงต้นเดือน สรุปคือทั้งห้าสัญญาคือการเดิมพันว่าราคาจะลดลง
การขาย: วิธีที่เงินหนึ่งพันดอลลาร์กลายเป็นลบครึ่งล้าน
การซื้อหุ้นผู้ชนะมีความเสี่ยงเพียงหนึ่งพันดอลลาร์ แต่การขายเพื่อรับค่า Premium จำนวนหนึ่งพันดอลลาร์เท่ากันนั้น คือการรับความเสี่ยงจากการเคลื่อนที่ของราคา คอลัมน์ sold_net_loss_usd แสดงข้อมูลทุกแถวในมุมมองของผู้ขาย โดยไม่คำนวณ Margin, การถูก Assign และการถูกบังคับซื้อคืน การขาย 1000 สัญญา ที่ราคา $0.01 ทำให้ได้รับเงินหนึ่งพันดอลลาร์ แต่ราคาล่าสุดระบุว่าสถานะนี้ทำให้ผู้ขายขาดทุนสุทธิ $494,000 โดยมีมูลค่าปัจจุบันอยู่ที่ $495000 กรณีที่เลวร้ายที่สุดของผู้ซื้อคือราคาของตั๋ว แต่กรณีที่เลวร้ายที่สุดของผู้ขายคือการเคลื่อนที่ของราคา ซึ่งการเคลื่อนที่ครั้งใหญ่ที่สุดในเดือนมิถุนายนคือห้าร้อยตั๋ว
ปัญหาจากการบันทึกราคาแบบ penny print
ตัวคูณ 495x มาจากไหน? ข้อมูลด้านล่างนี้ได้สรุปรายการซื้อขายทั้งหมดของผู้ชนะในช่วงเดือนมิถุนายนไว้ในแถวเดียว ซึ่งประกอบด้วยราคาที่บันทึกครั้งแรก ราคาครั้งที่สอง และจำนวนการบันทึกราคาแบบ penny print ทั้งหมดที่เคยเกิดขึ้น
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
toString(toDate(min(sip_timestamp))) AS first_print_date,
formatDateTime(toTimeZone(min(sip_timestamp), 'America/New_York'), '%H:%i:%S') AS first_print_et,
round(anyIf(price, rn = 1), 2) AS first_price,
toUInt64(anyIf(size, rn = 1)) AS first_print_contracts,
countIf(price <= 0.011) AS penny_prints_in_june,
toUInt64(sumIf(size, price <= 0.011)) AS penny_contracts_in_june,
round(anyIf(price, rn = 2), 2) AS second_price,
toUInt32(dateDiff('second', min(sip_timestamp), anyIf(sip_timestamp, rn = 2))) AS seconds_to_second_print,
round(argMax(price, (sip_timestamp, price)), 2) AS month_last_price,
round(argMax(price, (sip_timestamp, price)) / anyIf(price, rn = 2), 1) AS second_print_multiple_to_last,
round(floor(1000 / (anyIf(price, rn = 2) * 100)) * argMax(price, (sip_timestamp, price)) * 100, 0) AS thousand_at_second_print_end_usd
FROM (
SELECT sip_timestamp, toFloat64(price) AS price, size,
row_number() OVER (ORDER BY sip_timestamp, price) AS rn
FROM global_markets.options_trades
WHERE ticker = 'O:NVDA260629P00200000'
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
)สัญญาดังกล่าวไม่มีการซื้อขายในรายการของเดือนมิถุนายนจนกระทั่งถึง 2026-06-15 โดยการบันทึกราคาครั้งแรกที่เวลา 09:49:30 ET คือ 2 contracts ที่ราคา $0.01 หรือคิดเป็นค่า premium ประมาณสองดอลลาร์ การบันทึกราคาครั้งถัดไปในอีก 101 วินาทีต่อมาคือ $2.44 และหลังจากนั้นไม่มีการบันทึกราคาที่ระดับ penny อีกเลย (มีเพียง 1 penny print จำนวน 2 contracts ตลอดทั้งเดือน) ขนาดสถานะหนึ่งพันสัญญาที่พาดหัวข่าวระบุไว้นั้น สูงกว่าขนาดที่มีการซื้อขายจริงที่ราคานั้นถึงห้าร้อยเท่า หากพิจารณาจากการเข้าซื้อที่ราคาครั้งที่สอง เงินหนึ่งพันดอลลาร์จะกลายเป็น $1980 เมื่อถึงการบันทึกราคาครั้งสุดท้ายของเดือน ซึ่งคิดเป็น 2x ไม่ใช่ 495x การเคลื่อนที่ของราคาจากราคาครั้งที่สอง ซึ่งเพิ่มขึ้นประมาณสองเท่าภายในสองสัปดาห์ด้วยความผันผวนสูงนั้นเป็นเหตุการณ์ที่เกิดขึ้นจริงและสามารถทำกำไรได้ แต่ผลตอบแทนมหาศาลตามที่บันทึกไว้นั้นไม่ใช่เรื่องจริง
เส้นทางราคา: สิบเซสชันตั้งแต่เริ่มจดทะเบียนจนถึงวันหมดอายุ
หากคำสั่งซื้อขายที่เหลืออยู่ถูกจับคู่จนเต็ม ให้ถือครองไว้จนสิ้นสุด: ทุกเซสชันจะแสดงข้อมูลการซื้อขาย turnover, ราคาล่าสุด และมูลค่าปัจจุบันของสถานะ
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH (
SELECT (ticker, first_px)
FROM (
SELECT ticker,
toFloat64(argMin(price, (sip_timestamp, price))) AS first_px,
toFloat64(argMax(price, (sip_timestamp, price))) AS last_px,
count() AS trades
FROM global_markets.options_trades
WHERE ((startsWith(ticker, 'O:MU') AND length(ticker) = 19) OR (startsWith(ticker, 'O:NVDA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:TSLA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:SPY') AND length(ticker) = 20) OR (startsWith(ticker, 'O:QQQ') AND length(ticker) = 20) OR (startsWith(ticker, 'O:AAPL') AND length(ticker) = 21))
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
GROUP BY ticker
HAVING count() >= 50 AND argMin(price, (sip_timestamp, price)) > 0
)
ORDER BY last_px / first_px DESC, ticker ASC
LIMIT 1
) AS winner
SELECT toDate(sip_timestamp) AS date,
toUInt64(sum(size)) AS contracts_traded,
round(sum(toFloat64(price) * toFloat64(size)) * 100 / 1e6, 2) AS day_premium_usd_m,
round(toFloat64(argMax(price, (sip_timestamp, price))), 2) AS day_last_price,
round(floor(1000 / (winner.2 * 100)) * toFloat64(argMax(price, (sip_timestamp, price))) * 100, 0) AS position_value_usd,
round(100 * toFloat64(argMax(price, (sip_timestamp, price))) / max(toFloat64(argMax(price, (sip_timestamp, price)))) OVER (), 1) AS pct_of_peak
FROM global_markets.options_trades
WHERE ticker = winner.1
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
GROUP BY date
ORDER BY date ASCสัญญาถูกซื้อขายในทุก 10 เซสชันตลอดอายุสัญญา ตั้งแต่ 2026-06-15 จนถึงวันหมดอายุใน 2026-06-29 วันแรกปิดที่ $1.4 โดยมูลค่าที่บันทึกไว้คือ $140000 จากราคาเริ่มต้น ต่อมาทิศทางราคาเปลี่ยนไป: มูลค่า $287000 ใน 2026-06-17 ลดลงเหลือ $106000 ภายใน 2026-06-22 คิดเป็นการขาดทุนสะสมเกือบสองในสาม จุดสูงสุดที่ $745000 เกิดขึ้นใน 2026-06-26 หรือหนึ่งเซสชันก่อนวันหมดอายุ ราคาปิดสุดท้ายอยู่ที่ $495000 ซึ่งคิดเป็น 66.4% ของจุดสูงสุด แม้แต่การซื้อขายที่ดีที่สุดของเดือนนี้ยังปิดต่ำกว่าจุดสูงสุดของตัวเองอยู่หนึ่งในสาม Turnover: วันแรกมีการซื้อขายทั้งหมด 385 สัญญา ซึ่งใกล้เคียงกับขนาดสถานะที่คาดการณ์ไว้เมื่อรวมสามเซสชันแรกเข้าด้วยกัน ในขณะที่วันที่ซื้อขายสูงสุดคือ 2026-06-23 มีปริมาณการซื้อขาย 9718 สัญญา และมูลค่า premium อยู่ที่ $2.86 ล้าน ปริมาณการซื้อขายขนาดใหญ่เกิดขึ้นหลังจากราคาเริ่มเคลื่อนไหวแล้วเท่านั้น
อีกด้านหนึ่งของบัญชี
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
count() AS contracts_with_50_trades,
countIf(substring(ticker, -9, 1) = 'P') AS put_contracts,
countIf(last_px / first_px >= 100) AS up_100x_plus,
countIf(last_px / first_px >= 10) AS up_10x_plus,
countIf(last_px / first_px >= 10 AND substring(ticker, -9, 1) = 'P') AS up_10x_puts,
countIf(last_px / first_px >= 10 AND substring(ticker, -9, 1) = 'C') AS up_10x_calls,
countIf(last_px / first_px <= 0.1) AS down_90_pct_plus,
countIf(last_px / first_px <= 0.1 AND substring(ticker, -9, 1) = 'C') AS down_90_calls,
round(100.0 * countIf(last_px / first_px <= 0.1 AND substring(ticker, -9, 1) = 'C') / countIf(last_px / first_px <= 0.1), 1) AS down_90_call_share_pct,
countIf(last_px <= 0.02) AS ended_at_two_cents_or_less
FROM (
SELECT ticker,
toFloat64(argMin(price, (sip_timestamp, price))) AS first_px,
toFloat64(argMax(price, (sip_timestamp, price))) AS last_px,
count() AS trades
FROM global_markets.options_trades
WHERE ((startsWith(ticker, 'O:MU') AND length(ticker) = 19) OR (startsWith(ticker, 'O:NVDA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:TSLA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:SPY') AND length(ticker) = 20) OR (startsWith(ticker, 'O:QQQ') AND length(ticker) = 20) OR (startsWith(ticker, 'O:AAPL') AND length(ticker) = 21))
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
GROUP BY ticker
HAVING count() >= 50 AND argMin(price, (sip_timestamp, price)) > 0
)SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT ticker AS contract,
round(first_px, 2) AS first_price,
round(last_px, 2) AS last_price,
toUInt32(floor(1000 / (first_px * 100))) AS contracts_a_thousand_bought,
round(floor(1000 / (first_px * 100)) * last_px * 100, 0) AS ending_value_usd
FROM (
SELECT ticker,
toFloat64(argMin(price, (sip_timestamp, price))) AS first_px,
toFloat64(argMax(price, (sip_timestamp, price))) AS last_px,
count() AS trades
FROM global_markets.options_trades
WHERE ((startsWith(ticker, 'O:MU') AND length(ticker) = 19) OR (startsWith(ticker, 'O:NVDA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:TSLA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:SPY') AND length(ticker) = 20) OR (startsWith(ticker, 'O:QQQ') AND length(ticker) = 20) OR (startsWith(ticker, 'O:AAPL') AND length(ticker) = 21))
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
GROUP BY ticker
HAVING count() >= 50 AND argMin(price, (sip_timestamp, price)) > 0
)
WHERE last_px <= 0.02 AND floor(1000 / (first_px * 100)) >= 1
ORDER BY first_px DESC, contract ASC
LIMIT 1ตัวเลขที่อยู่คู่กับรางวัลแจ็กพอตคือ: จากสัญญาที่มีสภาพคล่องทั้งหมด 30951 สัญญา มีเพียง 1 เท่านั้นที่ทำกำไรได้หนึ่งร้อยเท่า — และมี 9385 ที่ขาดทุนร้อยละเก้าสิบหรือมากกว่า โดยมีสัญญาจำนวน 8949 จากทุกผลิตภัณฑ์ในตลาดที่มีราคาล่าสุดอยู่ที่สองเซนต์หรือน้อยกว่า การสุ่มเลือกจากข้อมูลชุดนี้พบว่า กลุ่มที่ขาดทุนร้อยละเก้าสิบมีจำนวนมากกว่ากลุ่มแจ็กพอตหลายพันเท่า กรณีที่ขาดทุนหนักที่สุดคือ: O:MU260612C01350000 ซึ่งเป็น MU call ที่ราคา strike $1,350 หมดอายุวันที่ 12 มิถุนายน โดยเปิดตลาดในเดือนมิถุนายนที่ราคา $10 และปิดที่ราคา $0.01 ส่งผลให้เงินหนึ่งพันดอลลาร์กลายเป็น $1
Calls หรือ puts: ฝั่งไหนเป็นผู้ชนะ?
ผลลัพธ์ทั้งสองด้านไม่สอดคล้องกัน ฝั่งที่ชนะคือ put ทั้งหมด: โดยทุกสัญญาในกลุ่ม ten-baggers จำนวน 14 สัญญา เป็น put (14 puts, 0 calls) จากจำนวนสัญญาในตลาดทั้งหมดที่มี put จำนวน 14994 จากทั้งหมด 30951 สัญญา ฝั่งที่ขาดทุนมีสัดส่วนใกล้เคียงกัน: จากการขาดทุนเกือบทั้งหมดจำนวน 9385 สัญญา พบว่าเป็น call จำนวน 4403 — หรือ 46.9% — โดยมี put เป็นส่วนใหญ่เพียงเล็กน้อย แม้การคาดการณ์ทิศทางจะถูกต้องในกลุ่มผู้ชนะรายใหญ่ แต่การคาดการณ์ทิศทางเพียงอย่างเดียวไม่สามารถช่วยใครได้เลย เนื่องจากมี put จำนวนหลายพันสัญญาที่ตกไปอยู่ในกลุ่มขาดทุน เนื่องจากคาดการณ์ strike ผิด หรือคาดการณ์สัปดาห์ที่หมดอายุผิด หรือผิดทั้งสองอย่าง
จุดที่มีการขาดทุนสะสมมากที่สุด
สินทรัพย์อ้างอิงใดที่ทำให้เกิดการขาดทุนจำนวนมาก? ไม่ใช่ชื่อของหุ้นที่เกิดการดิ่งลงของราคา
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
multiIf(startsWith(ticker, 'O:NVDA'), 'NVDA', startsWith(ticker, 'O:TSLA'), 'TSLA', startsWith(ticker, 'O:AAPL'), 'AAPL', startsWith(ticker, 'O:SPY'), 'SPY', startsWith(ticker, 'O:QQQ'), 'QQQ', 'MU') AS root,
count() AS contracts,
countIf(last_px / first_px <= 0.1) AS down_90_pct_plus,
round(100.0 * countIf(last_px / first_px <= 0.1) / count(), 1) AS pct_of_root_wiped,
round(100.0 * countIf(last_px / first_px <= 0.1) / sum(countIf(last_px / first_px <= 0.1)) OVER (), 1) AS share_of_all_down_90_pct,
countIf(last_px / first_px >= 10) AS up_10x_plus
FROM (
SELECT ticker,
toFloat64(argMin(price, (sip_timestamp, price))) AS first_px,
toFloat64(argMax(price, (sip_timestamp, price))) AS last_px,
count() AS trades
FROM global_markets.options_trades
WHERE ((startsWith(ticker, 'O:MU') AND length(ticker) = 19) OR (startsWith(ticker, 'O:NVDA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:TSLA') AND length(ticker) = 21) OR (startsWith(ticker, 'O:SPY') AND length(ticker) = 20) OR (startsWith(ticker, 'O:QQQ') AND length(ticker) = 20) OR (startsWith(ticker, 'O:AAPL') AND length(ticker) = 21))
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
GROUP BY ticker
HAVING count() >= 50 AND argMin(price, (sip_timestamp, price)) > 0
)
GROUP BY root
ORDER BY down_90_pct_plus DESC, root ASCQQQ เป็นสินทรัพย์ที่มีการขาดทุนสะสมมากที่สุด: มีการขาดทุนเกือบทั้งหมดจำนวน 2923 — คิดเป็น 31.1% ของการขาดทุนทั้งหมด — โดยมีสัญญาที่มีสภาพคล่องจำนวน 35.7% ถูกล้างมูลค่า เมื่อรวมกับ 24.7% ของ SPY จะพบว่าดัชนีหลักมีสัดส่วนมากกว่าครึ่งหนึ่งของการขาดทุนทั้งหมด อัตราการขาดทุนที่น้อยที่สุดสองอันดับแรกเป็นของ NVDA และ AAPL (21.8% และ 21.8%) โดยตัวแรกคือ NVDA ซึ่งเป็นสินทรัพย์อ้างอิงของหุ้นที่ทำกำไรได้สูงสุดในเดือนนี้ การขาดทุนสะสมจะเพิ่มขึ้นมากที่สุดในจุดที่ค่า premium ไม่มีการเคลื่อนไหว ในทางกลับกัน ข้อมูลชุดเดียวกันระบุว่า: QQQ สร้าง ten-baggers จำนวน 9 จากทั้งหมด 14 สัญญาของเดือนนี้ ส่วน SPY ที่มีสัญญาในกลุ่มขาดทุนจำนวน 2319 ได้สร้างการขาดทุนจำนวน 0
สิ่งที่ตารางนี้บอกเรา (และสิ่งที่บอกไม่ได้)
บทเรียนสี่ประการ Convexity คือเรื่องจริง: Option ที่มีราคาต่ำและ Out-of-the-money จะมีมูลค่าเพิ่มขึ้นอย่างมหาศาลเมื่อสินทรัพย์อ้างอิงเคลื่อนที่อย่างรวดเร็ว ซึ่งเป็นเหตุผลว่าทำไมตั๋วลอตเตอรี่จึงมีราคาเพียงไม่กี่สตางค์ ค่า Multiple ในพาดหัวข่าวจำเป็นต้องมีการตรวจสอบอย่างละเอียด: ค่า 495x ในเดือนมิถุนายน เกิดจากการทำรายการเพียงครั้งเดียวด้วยจำนวนสองล็อต แต่ผลตอบแทนที่ซื้อขายกันจริงนั้นอยู่ที่สองเท่า การกระจายตัวคือราคาที่ต้องจ่ายสำหรับ Convexity: มีหุ้นที่ทำกำไรได้สิบเท่าจำนวน 14 ตัว อยู่เคียงข้างกับหุ้นที่เกือบขาดทุนทั้งหมดจำนวน 9385 ตัว (สามารถอ่าน คำอธิบายเกี่ยวกับ market makers เพื่อดูว่าใครเป็นผู้ขายตั๋วเหล่านี้) และเราไม่สามารถซื้อขายข้อมูลย้อนหลังได้: ตั๋วที่ชนะรางวัลนั้นยังไม่มีอยู่จริงเมื่อวันที่ 1 มิถุนายน แต่มันเพิ่งปรากฏขึ้นในวันที่ 15 มิถุนายน ซึ่งการจะซื้อตั๋วใบนั้นได้หมายถึงต้องทราบทั้งทิศทางและจังหวะเวลาในช่วงสองสัปดาห์หลังจากนั้นตั้งแต่เช้าของวันที่ 1 มิถุนายน หน้าเพจนี้วัดผลสิ่งที่เกิดขึ้นในเดือนมิถุนายนเท่านั้น ไม่ได้เป็นการคาดการณ์สิ่งที่จะเกิดขึ้นในเดือนกรกฎาคม
คำถามที่พบบ่อย
การซื้อขาย options ที่ดีที่สุดในเดือนมิถุนายน 2026 คืออะไร?
จากการวัดราคาตั้งแต่ราคาแรกจนถึงราคาล่าสุดของสินทรัพย์ที่มีสภาพคล่องสูง 6 ประเภท พบว่า put option ของ NVDA ที่ราคา strike $200 ซึ่งจะหมดอายุในวันที่ 29 มิถุนายน 2026 มีราคาตั้งแต่ $0.01 ถึง $4.95 คิดเป็น multiple เท่ากับ 495x โดยอ้างอิงจากราคาแรกที่ซื้อขายเพียงสองลอตในราคา penny (ราคาถัดมาคือ $2.44)
การซื้อขาย options สามารถขาดทุนมากกว่าเงินที่ลงทุนได้หรือไม่?
สำหรับการซื้อ options นั้นไม่ได้: ผู้ซื้อสามารถขาดทุนได้สูงสุดเพียงเท่ากับค่า premium ที่จ่ายไป ส่วนการขาย options นั้นสามารถทำได้ — ข้อมูลในเดือนมิถุนายนแสดงให้เห็นว่าผู้ขายที่ได้รับค่า premium จำนวนหนึ่งพันดอลลาร์ ต้องเผชิญกับสภาวะขาดทุนถึง $494,000 ณ ราคาล่าสุด
ทำไม options ราคาถูกส่วนใหญ่จึงหมดอายุโดยไม่มีมูลค่า?
options ราคาถูกเป็นการคาดการณ์ผลลัพธ์ที่ตลาดมองว่ามีความเป็นไปได้น้อย นั่นคือการเคลื่อนไหวของราคาอย่างรุนแรงก่อนกำหนดเวลาที่ใกล้จะถึง ซึ่งในแต่ละเดือนมักไม่มีการเคลื่อนไหวเช่นนั้นเกิดขึ้น และมูลค่าของสัญญาจะลดลงตามกาลเวลา ในเดือนมิถุนายน 2026 สัญญาที่มีการซื้อขายอย่างคึกคักจำนวน 9385 จาก 30951 มีมูลค่าลดลงอย่างน้อยร้อยละเก้าสิบจากราคาแรก และ 8949 มีราคาซื้อขายล่าสุดอยู่ที่สองเซนต์หรือน้อยกว่านั้น
นักเทรดมืออาชีพจะสามารถทำกำไรได้ถึง 495x หรือไม่?
แทบจะเป็นไปไม่ได้เลยหากพิจารณาจากขนาดของคำสั่งซื้อขายที่ปรากฏ: มีสัญญาเพียง 2 เท่านั้นที่เคยซื้อขายที่ราคาเข้าซื้อ $0.01 และราคาได้ขยับไปที่ $2.44 ภายในเวลา 101 วินาที เงินหนึ่งพันดอลลาร์จากการซื้อขายครั้งที่สองมีมูลค่าประมาณ $1980 ณ ราคาล่าสุด — ถือเป็นการเทรดที่ดี แต่จะเป็นการทำกำไรที่เปลี่ยนชีวิตได้ก็ต่อเมื่อมองย้อนกลับไปเท่านั้น
หมายเหตุข้อมูล
หมายเหตุข้อมูลฉบับเต็ม
- การคำนวณฝั่งผู้ขายไม่ได้รวม Margin, การได้รับมอบหมายหุ้น (Assignment) และการถูกบังคับปิดสถานะ (Forced liquidation) โดยตั้งใจ: สถานะ Short ที่แท้จริงควรจะถูกปิดหรือได้รับมอบหมายหุ้นไปนานแล้วก่อนการบันทึกราคาครั้งล่าสุด ข้อมูลนี้เป็นการวัดการเคลื่อนที่ของราคา ไม่ใช่รายงานจากโบรกเกอร์
- เป็นการวิเคราะห์ย้อนหลัง ไม่ใช่คำแนะนำ: ตัวเลขทุกตัวถูกคำนวณหลังจากเหตุการณ์เกิดขึ้นแล้วจากรายการซื้อขายที่บันทึกไว้
- เป็นการวัดระยะทางจากราคาแรกถึงราคาล่าสุด ไม่ใช่รายงานการทำรายการ: ด้วยเหตุนี้ข้อมูลจึงถูกระบุเป็นจำนวนเท่า (Multiples) ไม่ใช่ผลตอบแทน (Returns)
- ข้อควรระวังเรื่องราคาต่ำสุด (Penny caveat) ใช้กับทุกกรณี: แถวใดก็ตามที่มีราคาเริ่มต้นเพียงหนึ่งเซนต์ (ผู้ชนะ และผู้ชนะอันดับสองของ AAPL) จะมีความเปราะบางในลักษณะเดียวกัน
- ขอบเขตข้อมูล (Universe): หุ้นหลัก 6 ตัว ได้แก่ MU, NVDA, TSLA, SPY, QQQ, AAPL — ใช้เฉพาะสัญลักษณ์มาตรฐานของ OCC เท่านั้น (ไม่รวมสัญญาที่มีการปรับปรุงเนื่องจากความยาวสัญลักษณ์) โดยต้องมีการซื้อขายตั้งแต่ 50 รายการขึ้นไปในเดือน มิถุนายน และมีราคาเริ่มต้นที่ไม่ใช่ศูนย์
ระเบียบวิธี
- ระยะเวลา: 1–30 มิถุนายน 2026; ข้อมูลเวลาถูกจัดเก็บในรูปแบบ UTC และกรองด้วยขอบเขต UTC ดั้งเดิม แผงข้อมูลการปรับเทียบ (calibration panel) คือบล็อกฐานข้อมูลอ้างอิง ซึ่งใช้วิธีการคำนวณแบบเดียวกันโดยย้อนดูข้อมูลตลอดทั้งปี 2026
- ต่อหนึ่งสัญญา: ราคาแรกคือการซื้อขายที่มีการบันทึกเวลา SIP เร็วที่สุดในเดือนมิถุนายน และราคาสุดท้ายคือการซื้อขายที่มีการบันทึกเวลาล่าสุด หากราคาเท่ากันจะตัดสินด้วยราคาที่กำหนดไว้ล่วงหน้า สำหรับค่าทวีคูณ (multiples) จะใช้ค่าสุดท้ายแทนค่าแรก ซึ่งคำนวณผ่านการสืบค้นข้อมูล (in-query)
- แผงข้อมูลเส้นทางรายวัน (daily-path panel) จะคำนวณหาผู้ชนะใหม่จากการสแกนลำดับเดียวกันในทุกการสร้างข้อมูล (generation) โดยการบันทึกข้อมูลขาเข้าจะยึดตามสัญลักษณ์ (symbol) และใช้ขอบเขตข้อมูลที่คงไว้หากข้อมูลทั้งสองไม่ตรงกัน
- การสร้างข้อมูลทำผ่านเส้นทางอ่านอย่างเดียว (read-only path) แบบกลุ่ม (batch) เท่านั้น หน้าเว็บนี้ไม่มีการสืบค้นข้อมูลแบบเรียลไทม์ สถานะของคลังข้อมูล ณ วันที่ 12 กรกฎาคม 2026
ทุกแผงข้อมูลคือวัตถุที่จัดเก็บไว้หนึ่งชุด ซึ่งประกอบด้วย กราฟ ตาราง และ SQL ท่านสามารถตรวจสอบบัญชีแยกประเภทด้วยตนเองได้บนเทอร์มินัล Strasmore