Farm Labs ทบต้นยังไงให้คุ้มค่าที่สุด
อันยองฮาเซโยวววว์ หลังจากที่อู้มาสองสัปดาห์ (ทำงานยุ่งแหละ ^^) วันนี้เลยได้มาเขียนบทความส่งท้ายปีลองทำเครื่องมือเล่น ๆ สำหรับสาย Farm ใน Cryptocurrency ครับ เป็นเครื่องมือที่จะคำนวณว่าถ้าต้องการ Farm จำนวนวันที่กำหนด ควรจะดึง Reward ที่ได้มาทบต้นในช่วงกี่วันดี
ในบทความนี้เจมส์จะอธิบายในส่วน Core ของโปรแกรมที่เป็นส่วนสำหรับการคำนวณเน้อครับ
ในส่วนนี้เจมส์ทำเป็นแค่เครื่องมือสำหรับทดสอบเน้อครับ ไม่ได้ชักชวนให้คุณผู้อ่านเข้ามาลงทุนแต่อย่างใด การลงทุนมีความเสี่ยง ยังไงผู้อ่านควรศึกษาก่อนการลงทุนเน้อครับ และคิดว่าเครื่องมือนี้เหมาะกับเหรียญที่ไม่ได้มีความผันผวนของราคา
Core โปรแกรมที่เขียน
ถ้าหากคุณผู้อ่านเข้าไปที่ Project ที่แปะไว้ สามารถเข้าไปที่ helpers/index.js ก็ได้ครับ มันคือโค้ดนี้แหละครับ
อธิบายโค้ดกันดีกว่า
ใน helpers จะมีสองส่วนคือ labTest และ findTheBestForUnstake (ขออภัยหากชื่ออาจจะดูงงๆ ฮ่าาา) หลัก ๆ คือเราจะเรียกใช้งาน function findTheBestForUnstake โดยส่งค่า cost, fee, apr, days เข้ามา
- Cost คือ เงินที่เราต้องการวางใน Farm เช่น 1,000
- Annual Percentage Rate (APR) คือ อัตราผลตอบแทนจากการ Farm ต่อปี
- Fee คือ ค่าธรรมเนียม ซึ่งในโปรแกรมที่เจมส์เขียนคือกะว่าให้ใส่ค่าธรรมเนียมทั้งหมดรวมไปเลย เช่น ตอนเก็บ Rewards, ตอน Stake เข้าไปอีกรอบ
- days คือ จำนวนวันที่ต้องการทดสอบ
labTest ทำงานอย่างไร
ฟังก์ชัน labTest จะรับค่าดังที่กล่าวข้างต้นเข้ามาและจะรับค่า daysOfUnstake เพิ่มเข้ามาด้วย โดย daysOfUnstake คือจำนวนวันที่จะทดสอบสำหรับการ compound (ดึง Reward แล้วทบเข้าไป) สิ่งที่ return จากฟังก์ชันนี้คือ จำนวนเงินที่ได้จากการทดลอง compound ตามจำนวน daysOfUnstake และข้อมูลการ Compound ของแต่ละวัน กล่าวคือถ้าส่ง daysOfUnstake มา 2 จะหมายความว่า ทุก ๆ 2 วันจะดึง Reward มาทบเข้าไปใหม่
findTheBestForUnstake ทำงานอย่างไร
ฟังก์ชัน findTheBestForUnstake จะเอาจำนวนวันและข้อมูล ที่ต้องการทดสอบมา โดยจะวนลูปตามจำนวนวัน ไปเรียก labTest โดยส่ง daysOfUnstake ที่เป็นจำนวนวันตามการลูปเข้าไป
พูดง่ายๆ ว่า ลอง compound ทุกๆวัน, ทุกๆ 1 วัน, ทุกๆ 2 วัน, …ถึงทุก ๆ จำนวนวันที่กำหนด จากนั้นก็มาดูว่าจำนวนเงินที่มากที่สุด คือ ควรจะ Compound ทุก ๆ กี่วัน
จริง ๆ Core หลักก็มีอยู่เท่านี้ ส่วนอื่น ๆ คือ ทำเกี่ยวกับ UI และจัดการแสดง State ต่าง ๆ ครับ เรามาดูตัวอย่างโปรแกรมที่เจมส์เขียนกันดีกว่าครับ
สมมุติเจมส์ต้องการทดสอบการ Farm โดยมีข้อมูลต่าง ๆ ดังนี้ครับ
- ลงทุน 1,000 USD
- จำนวน APR 25%
- ค่าธรรมเนียมต่อครั้งคือ 0.7 USD
- ต้องการทดสอบ 365 วัน
จากนั้นให้กดที่ปุ่ม “คำนวณ” เมื่อกดคำนวณเรียบร้อยแล้ว จะมี Card แสดงขึ้น และแสดงข้อมูลว่า จำนวนกี่วันที่ควร Compound และยอดเงินสิ้นสุดที่คาดว่าจะได้รับหากทำตามการคำนวณ (แสดงดังรูปด้านล่าง)
หากเรากดที่แสดงรายละเอียด จะพบว่ามีตารางแสดงข้อมูลการคำนวณ คือจะมี
ยอดเงิน, Pending Reward, Fee, และ Compound อยู่ (ซึ่งจะมีบอกอยู่ว่าควรจะ Compound ตอนไหนหากเลื่อนลงมาด้านล่าง)
แต่ถ้าหากเรากดที่แสดง รายละเอียดทั้งหมด จากรูปก่อนหน้า จะแสดงข้อมูลว่าการ Compound ทุก ๆ กี่วันเมื่อครบจำนวนวันที่เรากรอก แล้วจะได้ประมาณเท่าไร และก็สามารถกดดูรายละเอียดการคำนวณได้เช่นกัน
ถ้าดูจากรูปจะพบว่าถ้าเรา Compound ทุกวันจะไม่คุ้ม เพราะจะโดนค่าธรรมเนียมมากกว่า APR ที่เราได้ กลายเป็นเงินต้นก็ลดไปอีกด้วยครับ
คุณผู้อ่านสามารถเข้าไปกดลองเล่นได้เน้อครับที่ลิงค์ด้านล่างครับ
หรือถ้าหากอยากมาต่อยอด อยากช่วย Contribute ก็สามารถ Fork ไปและ Pull Request มาก็ได้ครับ
บทความสุดท้ายของปีนี้ก็ขอให้คุณผู้อ่านทุกท่านมีสุขภาพแข็งแรง และปลอดภัยจากโควิด 19 และขอบคุณที่ติดตามมาตลอด หรือถ้าหากไม่ได้กดติดตาม สามารถกดติดตามได้เน้อครับ ปีหน้าจะพยายามเขียนบทความที่มีประโยชน์แบบนี้มาเรื่อย ๆ ครับ และหากบทความส่วนไหนผิดพลาดประการใดก็ขออภัยมา ณ ที่นี้ด้วยเน้อครับ