ThaiQuants CapsLock

CAP เป็นโปรแกรมที่เมื่อ กดปุ่ม CapsLock ค้างไว้แล้วกดแป้นพิมพ์อื่น จะส่งคีย์ลัดหรือส่งพฤติกรรมของเม้าสออกไป เช่น กดค้าง CapsLock + กด i จะเลื่อนตำแหน่ง cursor ขึ้น 1 บรรทัด (เหมือนกดลูกศรขึ้น) หรือ กดค้าง CapsLock + กด h จะเลื่อนเม้าสขึ้น

ทุกอย่างมีเรื่องราว

เนื่องจากผมเป็นคนชอบเขียนโค้ดมาก และมักฝึกซ้อมฝึกพิมพ์ให้ไว รวมถึงฝึกใช้ shortcuts ต่างๆใน Editor และ IDE ให้คล่องๆ เพื่อความมันส์ในการโค้ด โดยที่ไม่อยากยกมือ/ยกนิ้วออกจากตำแหน่งมาตราฐาน (asdf-jkl;) ไม่อยากใช้เม้าส ไม่อยากเอื้อมมือไปกดลูกศร ไม่อยากทำท่าทำมือแปลกๆเวลากดคีย์ลัด อีกทั้งหลายๆ Editor และ IDE ก็มี shortcuts ที่ต่างๆกัน หรือพอใช้ Programming Languages ที่ต่างกัน ก็จะต้อง กด สัญลักษณ์ comment ที่ต่างกัน… นี่ยังไม่รวมถึงเวลาโค้ดมันส์ๆแล้วเผลอไปโดน capslock

ดังนั้น ผมเลยตัดสินใจ (ดูหนัง superhero เยอะเกินไป)

  1. สังหาร “The stupid capslock must die.”
  2. ให้กำเนิด “One CAP to rule them all.”

ในตอนแรกก็ว่าจะทำแค่ลูกศร ขึ้น/ลง/ซ้าย/ขวา แต่ไปๆมาๆ One thing lets to another จาก 1 ชม ขำๆ กลายเป็น 50 ชม กลายเป็น 120 ชม ใน 10 วัน (แต่สนุกมากครับ) ซึ่งเอาจริงๆ เวลาที่ใช้ในการเขียนโค้ดน้อยมาก ไม่ถึง 20% ของเวลาทั้งหมด แต่ไปใช้เวลาหลักๆในการทดสอบ และการออกแบบ UX/UI เช่น

  • ควรกดปุ่ม CapsLock ค้างไว้ในตอนใช้โปรแกรมหรือไม่ แล้วมันไปเปลี่ยนแปลง Window Default ยังไง
  • ควรใช้ปุ่มอะไรแทนลูกศร ขึ้น/ลง/ขวา/ซ้าย (i/k/l/j) โดยต้องไม่ลืมว่านิ้วก้อยซ้ายต้องกด CapsLock ค้างอยู่
  • ควรจำเป็นต้องมีปุ่มแทน mouse มั้ย แล้วปุ่มคลิ๊กซ้ายอยู่ปุ่มไหน ต้องมี double click ดีมั้ย
  • เมื่อเข้าโหมดเลือกตัวอักษร (Selection) ผู้ใช้จะรู้ได้ยังไง ว่าโหมดเลือกตัวอักษรเปิดอยู่ หรือว่าปิดไปแล้ว
  • เมื่อต้องการเลือกทั้งบรรทัด แล้วเลื่อน cursor ขึ้นลง จะมีผลต่อการเลือกยังไง (window default ค่อนข้างจำกัด)
  • เมื่อทำการสลับไปมาระหว่างโปรแกรม ควรจะทำให้ Mouse วิ่งตามไปดีมั้ย (windows default ไม่ตามน่ะ)

จากข้างต้นที่เกริ่มมา ยังต้องพิจารณาถึงข้อจำกัด Limitation ต่างๆ เช่น กรณีตัว keyboard แต่ล่ะรุ่นด้วย รวมไปถึง default keyboard layout ของภาษานั้นๆที่ผู้ใช้ Users ตั้งค่าไว้ ทำให้ผมต้องไปหาซื้อ keyboard 200 บาท มาเพิ่ม และมันก็ทำงานไม่เหมือนกันจริงๆด้วย (ตอนรู้นี่… น้ำตานองหน้าเลย) แอบเครียดว่าต้องตัดสินใจให้ผู้ใช้ตั้ง default language เป็นภาษาอังกฤษ ดีมั้ย? แต่สรุปทำใจไม่ได้ ไม่อยากบังคับน้องๆโปรแกรมเมอร์ เลยทำให้บางปุ่มที่อยากใช้ไม่ได้ใช้

ต่อมาก็เป็นเรื่องการตัดสินใจว่า จะใส่ฟังก์ชั่นอะไรลงไปบ้าง ถึงตรงนี้ก็เริ่มรู้ตัวแล้วว่า ไม่สามาถทำอะไรตามใจฉันได้ (โลกแห่งความจริงไม่ใช่ทุ่งลาเวนเดอร์) และไม่มีเวลาเหลือแล้ว ทุกโปรเจ็คต้องมี Deadline จะรวย/จน ขยัน/เกียจคร้าน เก่ง/โง่เขลา ทุกคนมีแค่ 24ชั่วโมงต่อวัน สุดท้ายถ้าใครถามทำไมทำแค่นี้ คำตอบคือ MVP ภายใน 10 วัน from concept to prototype, to launch.

เรื่องสุดท้ายในการออกแบบการทำงานของ CapsLock ก็น่าจะเป็นเรื่องที่คิดถึงน้องๆโปรแกรมเมอร์ ว่าผมจะพอช่วยอะไรได้บ้าง ก็เลยตัดสินใจเพิ่มคีย์ลัดหาคำแปลภาษาไทย !CapsLock !Space D (D for Dictionary) และคีย์ลัดหาตัวอย่างโค้ด !CapsLock !Space C (C for Code) ซึ่งสามารถใช้คีย์ลัดกับภาษาคอมอะไรก็ได้ เพราะตัวโปรแกรมมันจะเช็คว่า file extension ที่โค้ดอยู่เป็นภาษาอะไร ซี่งหวังว่าจะพอช่วยน้องๆได้บ้าง ไม่มากก็น้อย

Programming is about
Making Decision.

 

จุดประสงค์

  • เพื่อให้เขียนโค้ดอย่างเมามัน ไม่ต้องยกมือออกจากแป้นพิมพ์ ไม่ต้องเอานิ้วออกจากตำแหน่งมาตราฐานในการพิมพ์ ไม่ต้องเอื้อมมือไปกดปุ่มไกลๆ เช่นปุ่ม Home, End, ลูกศรต่างๆ และไม่ต้องใช้เม้าส
  • อำนวยความสะดวกในการส่งคีย์ลัดให้ง่ายขึ้น เช่น CapsLock + w ในการสลับโปรแกรมที่ใช้อยู่หลายโปรแกรมไปมา (ปรกติคือ Alt + Tab) และพฤติกรรมเกี่ยวข้องที่ตามมา + q เพื่อย้อนเลือกโปรแกรม (ปรกติคือ Alt + Shift + Tab)
  • สร้างพฤติกรรมใหม่ๆของแป้นพิมพ์ ให้ดีมากขึ้น เช่น กดค้าง CapsLock + Enter ไม่ว่าจะอยู่ตำแหน่งไหนของบรรทัด จะขึ้นบรรทัดใหม่ว่างๆให้ (ปรกติคือ End + Enter)
  • สร้างพฤติกรรมใหม่ๆให้เม้าส เช่น เมื่อกดค้าง CapsLock  + w ไปที่หน้าโปรแกรมใหม่ เม้าสจะเลื่อนไปอยู่กลางหน้าโปรแกรมที่เปิดใหม่ด้วย
  • สร้างมาตราฐานการใช้คีย์ลัด ให้ใช้งานครอบคลุมทุกโปรแกรม กด CapsLock + … จะได้พฤติกรรมเหมือน/คล้ายกันหมด (ทดสอบใน AmiBroker, VS Code, Pycharm, MS Word, MS Excel, Chrome, Firefox, …)

ประโยชน์

  • เขียนโค้ดมันมากกก
  • ทำงานอื่นๆเร็วขึ้น
  • ใช้คีย์ลัดง่ายขึ้น

ข้อเสีย

  • Beta ยังใช้ตอนแป้นเป็นภาษาไทยไม่ได้
  • ต้องกด capslock อีกรอบเพื่อปิดโหมด Capslock
  • เมื่อย… นิ้วก้อยซ้ายมาก

 

การติดตั้ง

1. ดาวน์โหลดโปรแกรม ไปวางไว้ที่ Desktop ก่อน และทำการคลิ๊กที่ไอคอน 2 ครั้ง

โปรแกรม TQ CapsLock

2. ถ้าใช้แล้วชอบ ให้เอาไปวางไว้ที่ folder “common startup”

2.1 กดปุ่ม Window + r แล้ว พิมพ์
shell:common startup แล้วกด Enter
2.2 ลากโปรแกรมไปวางไว้ในโฟลเดอร์ common startup
(พอเปิดคอมครั้งหน้า โปรแกรม TQ CapsLock จะเปิดเองอัตโนมัติ พร้อมใช้ได้ทันที)

คำแนะนำ

อยากให้ลองค่อยๆฝึกใช้ สัปดาห์ล่ะตารางไปเรื่อยๆ จนหมด เอาเท่าที่สะดวก สบายใจ เน้นคีย์ที่คิดว่าใช้บ่อยๆก็พอ ไม่ต้องเล่นท่ายากอะไรมากมาย รับรองว่าพอใช้คล่องจะมันมากส์

 เบื้องต้น

คีย์ คำอธิบาย
!CapsLock … กดค้าง ตามด้วยปุ่มอื่น… เพื่อเริ่มทำงาน
!CapsLock    F9 เปิดหน้าเวปนี้ ดูคู่มือ
!CapsLock    Esc ปิดโปรแกรม
Shift    CapsLock เปิดโหมดตัวอักษรใหญ่
CapsLock ปิดโหมดตัวอักษรใหญ่

 

กด CapsLock ค้างไว้ แล้วตามด้วย …

มาตราฐาน Cursor

คีย์ !CapsLock คำอธิบาย:     ! คือให้กดค้าง
I (ร) เลื่อนขึ้น 1 บรรทัด
K
L เลื่อนขวา 1 ตัวอักษร
J
F ไปยังต้นบรรทัด
G ไปยังท้ายบรรทัด
Enter เปิดบรรทัดใหม่ จากกลางบรรทัด
R ลบซ้าย
T

 

กระโดดข้ามคำ/บรรทัด

คีย์  !CapsLock อธิบาย
!Space  I (ร) กระโดดขึ้น 3 บรรทัด
!Space   K
!Space   L กระโดดข้าม 1 คำ
!Space   J

 

มาตราฐานเม้าส

คีย์  !CapsLock อธิบาย
H เลื่อนเม้าสขึ้น
N
M เลื่อนเม้าสไปทางขวา
B
, (ม) เม้าสคลิกซ้าย
. (ใ)

 

Scroll หน้าจอแนวตั้ง/นอน

คีย์  !CapsLock อธิบาย:     Space = อวกาศ
!Space   H เลื่อนจอขึ้น
!Space   N
!Space   M
!Space   B

 

เลือกตัวอักษร หรือแถว

คีย์  !CapsLock อธิบาย:     S = Selection
S เปิด/ปิด โหมดเลือกตัวอักษร
S S กดเร็วๆ เพื่อเลือกทั้งคำ
S   L เลือกตัวอักษรเพิ่ม ด้านซ้าย
S   J
S   I (ร) เลือกตัวอักษรด้านบน 1 บรรทัด
S   K
S   F เลือกทั้งหมดไปถึงต้นบรรทัด
S   G เลือกทั้งหมดไปถึงท้ายบรรทัด
S   !Space   L เลือกคำ 1 คำ ด้านซ้าย
S   !Space   J
D เลือกทั้งบรรทัด

 

ความสามารถพิเศษ

คีย์  !CapsLock อธิบาย:     W = Windows
O (น) เลื่อนเม้าสไปหา cursor
P เลื่อนเม้าสไปกลางจอโปรแกรม
Q สลับหน้า tab ในโปรแกรม
Q   Q… ลองกด Q กดซ้ำๆ
W สลับระหว่างโปรแกรมที่เปิดอยู่
W   W… ลองกด W ซ้ำๆ
W   L… ลองกด W แล้วตามด้วย L ซ้ำๆ
W   J…
W Q…

 

ความสามารถทั่วไป

คีย์  !CapsLock อธิบาย
/ (ฝ) คอมเม้นโค้ด  ใน Editor/IDE
C ก๊อปปี้
V
X
Z  Undo
A เลือกทั้งเอกสาร

 

Stock, Dictionary, and Code

สำหรับ Coders และ Quants โดยเฉพาะ

คีย์  !CapsLock อธิบาย
!Space   S Stock ดูราคาและกราฟหุ้น
!Space   D Dictionary หาคำแปลภาษาไทย
!Space   F ค้นหาภายในเอกสาร
!Space   G Google ค้นหาทั่วไป
!Space   C Code หาโค้ดตัวอย่าง คำอธิบาย
!Space   R Research หาข่าวบน WSJ, B, FT
!Space   T Tradingview จาก Ticker
Y Browse เวป ย้อนกลับ
U

 

AMIBROKER

Amibroker Shortcuts & AFL Shortcodes

Shortcuts และ Shortcodes ในส่วนนี้ ทำให้ นศ. ThaiQuants เป็นของขวัญปี 2022 และนักลงทุนไทย ที่ลงทุนด้วยระบบเทรดหุ้นโดยใช้โปรแกรม AmiBroker

AmiBroker Shortcuts

คีย์  !CapsLock อธิบาย
!Space   B Backtest
!Space   E Exploration
!Space   S Scan
!Space   O Optimization
!Space   W สลับไปมา Main กับ Editor
!Space   Q สลับ tabs ใน Main Window
L เลื่อน chart ไปทางขวา
J
I Zoom ออก
K
G  เลื่อน chart ไปซ้ายสุดๆ
F
/ (ฝ) //คอมเม้นโค้ด

 

AFL Shortcodes

Shortcodes ที่นำเสนอ เอามาจาก AmiBroker Template แนะนำให้ลองศึกษาอย่างละเอียด

พิมพ์ใน Editor อธิบาย  (อย่าลืม  . จุด)
info. Info section
options. 1. Options section
market. 2. Market section
signals. 3.
positions. 4.
stops. 5.
simulation. 6.
custom. 7. Custom
link. /** คอมเม้น @link URL */
dt. //คอมเม้น วันเวลาปัจจุบัน

More Shortcodes

พิมพ์ใน Editor อธิบาย
so.mop. SetOptions(“MaxOpenPositions”, MOP)
so.ie.  InitialEquity
so.cm.  CommissionMode
so.ca.  CommissionAmount
so.aps. AllowPositionShrinking
so.upb. UsePrevBarEquityForPosSizing
so.mpv. MinPosValue
so.ms. MinShares
rls. RoundLotSize = 100;
bpsp.o. BuyPrice = SellPrice = Open;
bpsp.c. … = Close;
std. SetTradeDelays
mk.f. buyConMK using SET Index filter
bc. buyCon1 …
sc. sellCon1 …
cs. Cover = Short = 0;
ass. Avoid Stock Split
asd. Avoid Stock Delisted
ps. PositionScore
sps.e. SetPositionSize: Equity
sps.v. Value
sps.s Shares
as.l. ApplyStop: Loss
as.t. Trailing
as.p. Profit
as.nb. NBars
mcs.mt. MC Sim: Missing Trades
mcs.s. MC Sim: Slippage
ts. Tick size

ความพยายามอยู่ที่ไหน
ความสำเร็จอยู่ที่นั่น

ThaiQuants.com
06/10/2021