ตั้งค่า slippage บน Solana เลือกตัวเลขให้ถูกกับพูล
ตั้งค่า slippage แคบไปสวอปจะย้อนกลับ กว้างไปบอทแซนด์วิชจะเก็บส่วนต่าง เลือกตัวเลขจากความลึกของพูล เส้นทาง และจำนวนกระเป๋าเงินที่รันพร้อมกัน

เวลาจะกดสวอปบน Solana มีตัวเลขหนึ่งตัวที่คุณควรตัดสินใจเองแทนการปล่อยตามค่าเริ่มต้น ถ้าตั้งค่า slippage แคบเกินไป ธุรกรรมจะย้อนกลับบนเชน เสียค่าธรรมเนียมเครือข่ายไปเปล่า ๆ โดยไม่ได้โทเคน ถ้ากว้างเกินไป บอทที่เฝ้าพูลอยู่จะเก็บส่วนต่างไปแทน
ประโยคที่ว่า "ตั้ง 0.5% ใช้ได้ทุกกรณี" ซึ่งลอกกันต่อ ๆ มาจาก Discord เป็นทางลัดที่มักง่ายทันทีที่ออกนอกคู่ SOL/USDC ค่าที่เหมาะมาจากสามอย่าง ขนาดคำสั่งเทียบกับพูล ความผันผวนของโทเคนช่วงที่ผ่านมา และแรงกดดันจากบอทบนพูลนั้น
บทความนี้ไล่ตั้งแต่ slippage กันอะไรได้จริง ตัวเลขไหนเหมาะกับโทเคนแบบไหน ไปจนถึงเหตุผลที่เพดานค่าเดียวแทบไม่เคยช่วยได้ทุกกระเป๋าเงินในเครื่องมือสวอปหลายกระเป๋าเงิน
slippage คืออะไร และต่างจาก price impact ตรงไหน
slippage คือช่วงราคาที่ยอมให้ขยับได้ก่อนที่สวอปจะยกเลิกตัวเองอัตโนมัติ เหมือนบอกไว้ว่าจะซื้อขนมปังที่ 3 ดอลลาร์ แต่ถ้าเกิน 3 ดอลลาร์ 30 เซนต์เมื่อไรให้ยกเลิก ยิ่งแคบยิ่งคุมราคาเข้ม ยิ่งกว้างยิ่งมีโอกาสที่สวอปจะสำเร็จ แลกกับความเสี่ยงที่จะได้ราคาแย่ลง
ไม่ว่าจะสวอปบน Jupiter, Raydium, Orca หรือ Meteora ขีดจำกัดนี้แสดงเป็นเปอร์เซ็นต์บนหน้าจอ คุณบอกเชนว่า ถ้าจำนวนโทเคนที่จะได้รับต่ำกว่าขีดต่ำสุดที่ตั้งไว้ ให้ยกเลิกทั้งรายการ ถ้าพูลขยับจนทะลุขีดนั้น คุณจะไม่ได้โทเคนเลยแต่ยังเสียค่าธรรมเนียมเครือข่าย เอกสารทางการของ Solana เรื่องธุรกรรม ระบุไว้ทั้งสองส่วน ธุรกรรมสำเร็จหรือย้อนกลับทั้งก้อน และค่าธรรมเนียมถูกหักทั้งสองทาง
คนมักสับสนระหว่าง slippage กับ price impact แต่สองคำนี้ตอบคนละคำถาม price impact คือสิ่งที่คำสั่งของคุณเองทำกับพูล คำนวณล่วงหน้าได้ก่อนเซ็น ส่วน slippage คือกันชนเผื่อทุกอย่างที่อยู่นอกการควบคุม ระหว่างวินาทีที่เห็นราคาเสนอกับวินาทีที่ธุรกรรมลงเชน
สูตรคร่าว ๆ คือ slippage เท่ากับ price impact บวกส่วนเผื่ออีกนิด ขนาดของส่วนเผื่อขึ้นกับพูลที่เทรด คู่ SOL/USDC ที่ลึกใช้ 0.1% ถึง 0.2% ก็พอ ส่วนมีมคอยน์ที่เพิ่งออกอาจต้องเผื่อถึง 2% ถึง 5%
การตรวจ slippage เกิดบนเชน ไม่ใช่บนหน้าจอกระเป๋าเงิน อะไรก็ตามที่ทำให้ราคาขยับระหว่างตอนเห็นราคาเสนอกับตอนที่ธุรกรรมลงเชน ล้วนกินโควตาที่ตั้งไว้
แคบไปคือย้อนกลับ กว้างไปคือบอทแซนด์วิช
สมมติตั้ง slippage ไว้ที่ 0.1% กับโทเคนที่วิ่งเร็ว ครึ่งวินาทีระหว่างราคาเสนอกับการลงเชน ราคาขยับไป 0.12% ขีดต่ำสุดที่ตั้งไว้ถูกทะลุและสวอปถูกยกเลิก ค่าธรรมเนียมเป็นแค่ส่วนเล็ก ต้นทุนจริงคือจังหวะที่หลุดมือ ถ้าภายในสองนาทีถัดมาราคาวิ่งขึ้นอีก 8% เวลาที่หมดไปกับการปรับตัวเลขก็คือไม้ที่เสียไปทั้งไม้
อีกด้านก็แพงพอกัน เปิด slippage ไว้ 5% แล้วส่งคำสั่งซื้อด้วย 50 SOL บอทที่เฝ้าพูลจะอ่านคำสั่งของคุณก่อน มันเข้าซื้อนำหน้าคุณเพื่อดันราคาขึ้น ปล่อยให้สวอปของคุณเข้าที่ราคาที่ถูกดันขึ้นไปแล้ว จากนั้นขายทิ้งทันทีและเก็บส่วนต่างไป บนเชนรายการของคุณขึ้นว่าสำเร็จ เพราะราคาไม่เคยข้ามเพดานที่ตั้งไว้
บอทแซนด์วิชไล่ล่าคำสั่งก้อนใหญ่ที่เปิด slippage กว้าง ส่งคำสั่งใหญ่บนคู่ที่ลึกอย่าง SOL/USDC ด้วยเพดาน 5% เท่ากับประกาศว่ามีกำไรรออยู่ตรงนี้ บนพูลที่ลึกให้คุมเพดานไว้แคบ และอย่าดัน slippage ขึ้นไปที่ 50% ค่านั้นแปลว่ายอมซื้อที่ราคาไหนก็ได้ และไม่เคยเป็นคำตอบที่ถูกในสถานการณ์จริงสักแบบ
ความลึกของพูลเป็นตัวกำหนดตัวเลข

อย่ามอง slippage เป็นคำถามว่ายอมขาดทุนได้เท่าไร คำถามจริงคือคำสั่งของคุณจะดันราคาบนพูลนี้ไปเท่าไร ถ้าคำสั่งซื้อคิดเป็น 1% ของเงินในพูล price impact จะเล็กและตั้งเพดานแคบได้ ถ้าคิดเป็น 10% ของพูล เส้นโค้งราคาจะดันขึ้นอย่างน้อย 10% จากคำสั่งของคุณคนเดียว เพดานต้องครอบส่วนนั้นให้ได้
ก่อนคำสั่งก้อนใหญ่ การเปิดดูความลึกและการกระจายผู้ถือดีกว่าการเดาตัวเลขเอาเอง เครื่องมือสแนปช็อตผู้ถือโทเคน แสดงการกระจายของผู้ถือ ส่วน เครื่องมือเพิ่มและถอนสภาพคล่อง อ่านความลึกของพูลตามสถานะปัจจุบัน ถ้าคำว่าความลึกยังใหม่อยู่ ลองอ่านวิธีอ่านความลึกของ liquidity pool บน Solanaก่อน
ตั้งค่า slippage ตามสถานการณ์
ตัวเลขข้างล่างเป็นความเห็นจากการใช้งานจริง ไม่ใช่กฎของโปรโตคอล ให้อ่านคู่กับ price impact ที่ขึ้นสดบนหน้าจอเสมอ
| สถานการณ์ | slippage ที่แนะนำ | เหตุผล |
|---|---|---|
| stablecoin ต่อ stablecoin (USDC กับ USDT) | 0.1% ถึง 0.3% | พูลลึกมากและแทบไม่มีความผันผวน |
| SOL/USDC ขนาดเล็กถึงกลาง | 0.5% ถึง 1% | พูลลึก แต่แรงกดดันจากบอทแซนด์วิชมีจริง |
| SOL กับโทเคนขนาดกลาง เช่น JTO | 1% ถึง 2% | สภาพคล่องพอใช้ได้ แต่ราคาขยับ |
| SOL กับมีมคอยน์ที่ตั้งตัวแล้ว เช่น BONK, WIF | 2% ถึง 5% | ผันผวนสูง ความลึกระดับกลาง |
| SOL กับมีมคอยน์ที่เพิ่งย้ายออกจาก Pump.fun | 5% ถึง 15% | พูลบางมากและราคาแกว่งแรงทุกนาที |
ถ้าซื้อเข้าด้วยกระเป๋าเงินใบเดียว เครื่องมือสวอปกระเป๋าเงินเดียว เปิดช่อง slippage ให้พิมพ์ตัวเลขเองแทนการปล่อยให้ Auto เลือก และถ้าเส้นทางมีขา wSOL อยู่ด้วย เครื่องมือแปลง wSOL ห่อ SOL ให้ก่อนสวอป จึงเหลือการตรวจ slippage แค่รอบเดียวแทนที่จะเป็นสองรอบ
เส้นทางกำหนดตัวเลขมากกว่าตัวโทเคน
โทเคนตัวเดียวกันอาจต้องใช้ตัวเลขต่างกันสามแบบ ขึ้นกับว่าคำสั่งนั้นสำเร็จที่เส้นทางไหนจริง ๆ แต่ละเส้นทางตั้งราคาด้วยกลไกคนละอย่าง ค่าที่สมเหตุสมผลบนเส้นทางหนึ่งจึงกลายเป็นความประมาทบนอีกเส้นทางหนึ่ง
| เส้นทาง | ราคาถูกกำหนดอย่างไร | slippage เริ่มต้น | ผลกระทบคร่าว ๆ ของคำสั่งซื้อ 5 SOL |
|---|---|---|---|
| พูล AMM อย่าง Raydium | อัตราส่วนของสินทรัพย์สองฝั่ง (x คูณ y เท่ากับ k) | พูลลึก 0.5% ถึง 1% พูลบาง 3% ถึง 8% | ราว 1% ถ้าฝั่ง SOL มีประมาณ 500 SOL และราว 8% ถ้ามีประมาณ 60 SOL |
| เราเตอร์ Jupiter | ซอยคำสั่งกระจายไปหลายพูล | 0.3% ถึง 1% สำหรับคำสั่งขนาดกลางส่วนใหญ่ | ถ้าซอยไปสามพูล ผลกระทบรวมอาจลดเหลือราว 0.5% |
| bonding curve ของ Pump.fun | ทุกคำสั่งซื้อดันราคาถัดไปให้สูงขึ้น | 5% ถึง 15% | บน curve ที่เพิ่งเปิด 5 SOL ดันได้ราว 8% ถึง 12% |
ลองไล่ตัวอย่างเดียวให้ครบ ซื้อโทเคนตัวเดียวกันด้วย 5 SOL ผ่านพูล Raydium ที่ลึก ตั้ง 1% ก็สบาย ผ่าน Jupiter คำสั่งถูกซอยจนผลกระทบที่แสดงลดลง ตั้งแค่ 0.5% ก็ยังเข้าได้ แต่ถ้าเส้นทางเปลี่ยนวินาทีสุดท้าย ค่าประมาณจะคลาด จึงอย่าตั้งค่า slippage ไว้ที่ศูนย์
ส่วนเหรียญที่ยังอยู่บน bonding curve 5 SOL ก้อนเดิมดันราคาขึ้นด้วยตัวมันเอง ถ้าตั้งแคบกว่าผลกระทบของเส้นโค้งเอง มักจบที่การย้อนกลับ ซ้ำยังมีคำสั่งที่เข้าก่อนคุณในบล็อกเดียวกัน ซึ่งไต่เส้นโค้งขึ้นไปแล้ว พอเหรียญจบ curve มันจะย้ายไปพูลปกติ ซึ่งบทความเหรียญที่จบ curve แล้วไปเทรดบน PumpSwapอธิบายไว้ ส่วนความต่างของแต่ละเส้นทางอยู่ในการเทียบ Jupiter, Raydium และ Orca
โหมด Auto และกับดัก 0.5% ใช้ได้ทุกที่
โหมด Auto ของ Jupiter อ่านความผันผวนล่าสุดแล้วเลือกค่า slippage ให้ บนพูลลึกและคู่ stablecoin ค่าที่ได้มักสมเหตุสมผล ปัญหาอยู่ที่มีมคอยน์ที่เพิ่งย้ายออกจาก bonding curve ซึ่ง Auto มักกระโดดไปช่วง 5% ถึง 15% ทั้งที่ price impact จริงของคำสั่งอยู่แค่ 2% เพดานกว้างขนาดนั้นทำให้คุณกลายเป็นเป้าที่คุ้มค่าให้บอทแซนด์วิชเข้าโจมตี
สิ่งที่ Auto ไม่รู้มีสองอย่าง ขนาดคำสั่งของคุณ และความหนาแน่นของบอทบนพูลนั้น คนที่เทรดเองจึงมักตั้งได้ดีกว่า ส่วนวิธีที่บอทจ้องโทเคนใหม่อธิบายไว้ในsniper bot กับการสไนป์โทเคนใหม่
ประโยคที่ว่า 0.5% ใช้ได้ทุกที่ ก็มีปัญหาเดียวกัน คือไม่ดูขนาดคำสั่งและพูล กรณีเดียวที่มันใช้ได้จริงคือสวอป SOL/USDC ขนาดกลาง บนพูลลึก ผ่านเส้นทางที่ป้องกัน MEV นอกจากนั้นแทบพังทุกที่ บนมีมคอยน์ 0.5% ย้อนกลับ บนคำสั่งซื้อ 100K USDC ลำพัง price impact เองก็อาจเกิน 0.5% ไปแล้ว และบนการรันหลายกระเป๋าเงิน ใบท้าย ๆ ย้อนกลับไปราวครึ่งหนึ่ง
ก่อนเทรดแต่ละครั้งให้ถามตัวเองสามข้อ คุณกินพูลไปกี่เปอร์เซ็นต์ พูลนี้มีแรงกดดันจากบอทแค่ไหน และคุณรันกระเป๋าเงินกี่ใบ แล้วตั้งค่า slippage ตามคำตอบเหล่านั้น
หลายกระเป๋าเงิน เพดานเดียว

นึกภาพการเปิดตัวที่มีกระเป๋าเงิน 200 ใบพุ่งเข้าหาโทเคนตัวเดียวกัน ตัวจัดคิวสวอปหลายกระเป๋าเงิน รับเพดาน slippage ค่าเดียวแล้วใช้กับทุกใบในรอบนั้น กับดักคือพูลขยับระหว่างใบที่ 1 กับใบที่ 200
ตั้งแคบพอให้ใบแรกเข้าได้สวย ใบที่ 200 จะย้อนกลับ ตั้งกว้างพอให้ใบที่ 200 รอด ก็เท่ากับยกโอกาสแซนด์วิชให้บอทที่รออยู่ตรงใบแรก ทางออกมีสองทาง ออกแบบเพดานจากใบท้ายสุดแล้วยอมให้ใบแรก ๆ จ่ายแพงขึ้นนิดหน่อย หรือซอยรอบเป็นสองถึงสามชุด แล้วตั้งค่า slippage ใหม่จากพูลสดทุกชุด
ถ้าต้องซื้อโทเคนเดียวกันจากหลายกระเป๋าเงินภายในบล็อกเดียว เครื่องมือเทรดแบบบันเดิล อัดคำสั่งทั้งหมดเป็นบันเดิลเดียว ช่องเวลาที่บอท front-running ใช้โจมตีได้จึงหดลง
ทำไมถึงขึ้นว่า slippage tolerance exceeded
เมื่อ Phantom ขึ้นข้อความ slippage tolerance exceeded แปลว่าระหว่างตอนได้ราคาเสนอกับตอนที่ธุรกรรมลงเชน ราคาขยับทะลุขีดต่ำสุดที่ตั้งไว้ สวอปทำตามที่สั่งไว้เป๊ะ มันยกเลิกเพื่อกันไม่ให้คุณได้ราคาที่แย่กว่านั้น นี่คือกันชนที่ทำงานตามที่ออกแบบไว้
สาเหตุที่เจอบ่อยมีสามข้อ
- พูลบางหรือวิ่งเร็ว โทเคนที่เพิ่งเปิดขยับหลายเปอร์เซ็นต์ต่อบล็อก เพดานแบบที่ใช้กับ stablecoin ตามไม่ทัน ขีดต่ำสุดจึงถูกทะลุก่อนธุรกรรมจะจบ
- ราคาเสนอเก่า ถ้านั่งค้างที่หน้ายืนยันไม่กี่วินาที พูลก็เดินหน้าไปโดยไม่รอ ให้กดรีเฟรชราคาแล้วเซ็นทันที
- SOL ไม่พอจ่ายค่าธรรมเนียม ข้อนี้เป็นคนละเรื่องกับ slippage แต่สับสนกันง่าย ถ้ากระเป๋าเงินมี SOL ไม่พอจ่ายค่าธรรมเนียมเครือข่ายบวกค่าธรรมเนียมแพลตฟอร์ม ธุรกรรมจะล้มตั้งแต่ขั้นจำลอง และกระเป๋าเงินอาจขึ้นเป็นคำเตือนกว้าง ๆ แทนข้อความเรื่อง slippage
ทางแก้แทบไม่เคยเป็นการตั้งไปที่ 50% ให้ขยับเพดานทีละขั้นจนเข้ากับพูล กดรีเฟรชราคาเสนอ และถ้าเป็นไม้ที่ต้องจบในบล็อกเดียว ให้ใช้การรันแบบ atomic เพื่อบีบช่องว่างระหว่างราคาเสนอกับตอนที่คำสั่งเข้า ส่วนพารามิเตอร์ slippage นิยามไว้ในเอกสารสำหรับนักพัฒนาของ Jupiter
คำถามที่พบบ่อยเรื่องการตั้งค่า slippage
ควรตั้ง slippage เท่าไร ระหว่าง 1% กับ 5%
ขึ้นกับพูล ไม่มีกฎตายตัว บนคู่ที่ลึกและวอลุ่มสูง 0.5% ถึง 1% ก็เข้าได้และยังกันราคาแย่ให้ด้วย ส่วนโทเคนใหม่ พูลบาง หรือเหรียญที่ยังอยู่บน bonding curve ถ้าตั้ง 1% จะย้อนกลับซ้ำ ๆ ช่วงที่ใช้ได้จริงคือ 3% ถึง 5% ถ้าคำสั่งไหนต้องตั้งเกิน 5% ถึงจะผ่าน แปลว่าพูลบางมาก ให้ลดขนาดคำสั่งแทนการขยายเพดาน
slippage แบบ Auto ปลอดภัยไหม
สำหรับไม้ธรรมดาบนพูลลึก Auto มักเลือกค่าที่สมเหตุสมผล ความเสี่ยงอยู่บนโทเคนผันผวนหรือพูลบาง ที่ Auto เปิดเพดานกว้างกว่า price impact จริงของคำสั่งมาก จนคุณกลายเป็นเป้าแซนด์วิชง่าย ๆ เวลาซื้อโทเคนใหม่หรือเทรดก้อนใหญ่ ให้พิมพ์ตัวเลขเอง
รันหลายกระเป๋าเงินพร้อมกัน ต้องตั้งค่า slippage อย่างไร
เพดานค่าเดียวใช้กับทุกใบ แต่ราคาขยับไปตามลำดับที่แต่ละใบเข้าซื้อ ใบสุดท้ายจึงเจอราคาแย่ที่สุด ให้ออกแบบเพดานจากใบนั้น หรือซอยรอบเป็นสองถึงสามชุดแล้วตั้งใหม่จากพูลสดทุกชุด การอัดคำสั่งเป็นบันเดิลเดียวช่วยบีบระยะที่ราคาไถลได้อีกชั้น
slippage กับ price impact ต่างกันอะไร
price impact คือแรงที่คำสั่งของคุณเองสร้างกับพูล คำนวณได้ก่อนเซ็น ส่วน slippage คือกันชนที่เผื่อไว้รับแรงจากคนอื่นและบอทระหว่างราคาเสนอกับตอนที่คำสั่งเข้า slippage จึงต้องอยู่สูงกว่า price impact เล็กน้อยเสมอ ถ้าหน้าจอขึ้น impact 2% แล้วตั้งเพดาน 0.5% ธุรกรรมย้อนกลับตั้งแต่ยังไม่ถึงชั้นของบอท
ทำไมสวอปถึงย้อนกลับซ้ำ ๆ
ส่วนใหญ่เป็นหนึ่งในสามข้อ พูลบางหรือวิ่งเร็วจนขยับหลายเปอร์เซ็นต์ต่อบล็อก ราคาเสนอเก่าเพราะนั่งค้างที่หน้ายืนยัน หรือ SOL ไม่พอจ่ายค่าธรรมเนียม ข้อสุดท้ายไม่เกี่ยวกับ slippage แต่กระเป๋าเงินอาจขึ้นเป็นคำเตือนคล้ายกัน ให้ขยับเพดานขึ้นหนึ่งขั้น รีเฟรชราคา แล้วลองใหม่
ตั้ง slippage สูงเกินไปแล้วจะเกิดอะไรขึ้น
สวอปสำเร็จ แต่ราคาที่ได้แย่ลง เพดานกว้างเท่ากับบอกบอทว่าดันราคาขึ้นได้ถึงตรงไหน ส่วน 50% แปลว่ายอมซื้อที่ราคาไหนก็ได้ จึงไม่เหมาะกับสถานการณ์ไหนเลย แม้แต่มีมคอยน์ที่เพิ่งออกก็ไม่ต้องการช่องกว้างขนาดนั้น
ตัวเลขอีกตัวที่ต้องเลือกก่อนกดเซ็น
slippage ไม่มีค่าที่ถูกเพียงค่าเดียว ต้องคำนวณใหม่ทุกไม้ วันที่ผูกตัวเองไว้กับค่าเริ่มต้นค่าเดียว คือวันที่สวอปย้อนกลับซ้ำ ๆ หรือถูกบอทเก็บส่วนต่าง บทความpriority fee บน Solana ควรจ่ายเท่าไรว่าด้วยตัวเลขอีกตัวที่ต้องเลือกก่อนเซ็น ส่วนแปดข้อที่ต้องตรวจก่อนกดซื้อเหรียญ Solanaช่วยคัดโทเคนหลอกออกไปก่อน


