ไวยากรณ์ Pine Script
- ไวยากรณ์ Pine Script
Pine Script เป็นภาษาโปรแกรมที่ออกแบบมาโดยเฉพาะสำหรับ TradingView เพื่อสร้าง ตัวบ่งชี้ (indicators) และ กลยุทธ์การซื้อขาย (trading strategies) ที่สามารถใช้ในการวิเคราะห์ทางเทคนิคและดำเนินการซื้อขายแบบอัตโนมัติในตลาดการเงินต่างๆ รวมถึงตลาด ไบนารี่ออปชั่น (binary options) ด้วย บทความนี้จะอธิบายไวยากรณ์พื้นฐานของ Pine Script สำหรับผู้เริ่มต้น โดยเน้นที่ส่วนประกอบสำคัญและหลักการใช้งาน เพื่อให้คุณสามารถเริ่มต้นเขียนสคริปต์ของคุณเองได้
- 1. โครงสร้างพื้นฐานของสคริปต์
สคริปต์ Pine Script ประกอบด้วยชุดของคำสั่งที่เรียกว่า *statements* แต่ละ statement ทำหน้าที่เฉพาะอย่าง เช่น การคำนวณค่า การวาดกราฟ หรือการออกคำสั่งซื้อขาย สคริปต์โดยทั่วไปจะมีโครงสร้างดังนี้:
- **Declaration Section:** ส่วนประกาศตัวแปรและฟังก์ชัน
- **Strategy/Indicator Body:** ส่วนหลักของสคริปต์ที่ทำการคำนวณและแสดงผลลัพธ์
```pinescript //@version=5 indicator(title="My First Script", shorttitle="My Script", overlay=true)
// Declaration Section var float myVariable = 0.0
// Strategy/Indicator Body myVariable := close - open plot(myVariable, title="Difference", color=color.blue) ```
- `//@version=5`: กำหนดเวอร์ชันของ Pine Script ที่ใช้ (ปัจจุบันคือเวอร์ชัน 5)
- `indicator()`: ฟังก์ชันที่กำหนดว่าสคริปต์นี้เป็นตัวบ่งชี้ (indicator) หรือ กลยุทธ์ (strategy)
* `title`: ชื่อของตัวบ่งชี้ที่แสดงบนกราฟ * `shorttitle`: ชื่อย่อของตัวบ่งชี้ * `overlay`: กำหนดว่าตัวบ่งชี้จะแสดงบนกราฟราคาหลัก (true) หรือในแผงแยก (false)
- `var float myVariable = 0.0`: ประกาศตัวแปร `myVariable` เป็นชนิดข้อมูล `float` (ทศนิยม) และกำหนดค่าเริ่มต้นเป็น 0.0
- `myVariable := close - open`: คำนวณผลต่างระหว่างราคาปิด (close) และราคาเปิด (open) แล้วกำหนดค่าให้กับ `myVariable`
- `plot()`: ฟังก์ชันที่วาดกราฟของ `myVariable` บนกราฟราคา
* `title`: ชื่อของเส้นกราฟ * `color`: สีของเส้นกราฟ
- 2. ชนิดข้อมูล (Data Types)
Pine Script รองรับชนิดข้อมูลพื้นฐานดังต่อไปนี้:
- `int`: จำนวนเต็ม (เช่น 1, 2, -3)
- `float`: ทศนิยม (เช่น 1.23, -4.56)
- `bool`: บูลีน (true หรือ false)
- `string`: ข้อความ (เช่น "Hello, World!")
- `color`: สี (เช่น color.red, color.blue)
- `series`: ลำดับของข้อมูล (เช่น ราคาเปิด, ราคาปิด)
- 3. ตัวดำเนินการ (Operators)
Pine Script มีตัวดำเนินการต่างๆ เพื่อใช้ในการคำนวณและเปรียบเทียบข้อมูล:
- **Arithmetic Operators:** `+` (บวก), `-` (ลบ), `*` (คูณ), `/` (หาร), `%` (หารเอาเศษ)
- **Comparison Operators:** `==` (เท่ากับ), `!=` (ไม่เท่ากับ), `>` (มากกว่า), `<` (น้อยกว่า), `>=` (มากกว่าหรือเท่ากับ), `<=` (น้อยกว่าหรือเท่ากับ)
- **Logical Operators:** `and` (และ), `or` (หรือ), `not` (ไม่)
- **Assignment Operators:** `=` (กำหนดค่า), `:=` (กำหนดค่าและอัปเดต)
- 4. ตัวแปร (Variables)
ตัวแปรใช้เพื่อเก็บข้อมูลในสคริปต์ Pine Script มีสองประเภทหลักของตัวแปร:
- **Simple Variables:** ตัวแปรที่เก็บข้อมูลแบบคงที่
- **Var Variables:** ตัวแปรที่สามารถเปลี่ยนแปลงค่าได้ตลอดเวลา
```pinescript // Simple Variable simpleVariable = 10
// Var Variable var varVariable = 0 varVariable := varVariable + 1 ```
การใช้ `var` จะทำให้ตัวแปรคงอยู่ตลอดการทำงานของสคริปต์ และค่าจะถูกอัปเดตทุกครั้งที่คำสั่ง `:=` ถูกเรียกใช้
- 5. ฟังก์ชัน (Functions)
ฟังก์ชันคือชุดของคำสั่งที่ทำงานเฉพาะอย่าง ฟังก์ชันช่วยให้สคริปต์มีความเป็นระเบียบและสามารถนำกลับมาใช้ใหม่ได้
```pinescript // Define a function myFunction(x, y) =>
result = x + y result
// Call the function sum = myFunction(5, 3) plot(sum, title="Sum") ```
- `myFunction(x, y) =>`: กำหนดฟังก์ชันชื่อ `myFunction` ที่รับพารามิเตอร์ `x` และ `y`
- `result = x + y`: คำนวณผลรวมของ `x` และ `y` แล้วกำหนดค่าให้กับ `result`
- `result`: ส่งค่า `result` กลับจากฟังก์ชัน
- `sum = myFunction(5, 3)`: เรียกใช้ฟังก์ชัน `myFunction` ด้วยพารามิเตอร์ 5 และ 3 แล้วกำหนดค่าที่ส่งกลับมาให้กับ `sum`
- 6. คำสั่งควบคุม (Control Flow Statements)
คำสั่งควบคุมใช้เพื่อควบคุมลำดับการทำงานของสคริปต์:
- **if-else:** ใช้เพื่อดำเนินการชุดคำสั่งที่แตกต่างกันตามเงื่อนไข
- **for:** ใช้เพื่อวนซ้ำชุดคำสั่งตามจำนวนครั้งที่กำหนด
- **while:** ใช้เพื่อวนซ้ำชุดคำสั่งตราบเท่าที่เงื่อนไขเป็นจริง
```pinescript // If-else statement if close > open
plot(close, title="Close", color=color.green)
else
plot(close, title="Close", color=color.red)
// For loop for i = 0 to 10
plot(i, title="Loop Value")
// While loop var i = 0 while i < 5
plot(i, title="While Value") i := i + 1
```
- 7. Built-in Variables และ Functions
Pine Script มีตัวแปรและฟังก์ชันที่สร้างไว้ล่วงหน้ามากมายที่ช่วยให้คุณสามารถเข้าถึงข้อมูลตลาดและทำการคำนวณต่างๆ ได้ง่ายขึ้น ตัวอย่างเช่น:
- `close`: ราคาปิดของแท่งเทียนปัจจุบัน
- `open`: ราคาเปิดของแท่งเทียนปัจจุบัน
- `high`: ราคาสูงสุดของแท่งเทียนปัจจุบัน
- `low`: ราคาต่ำสุดของแท่งเทียนปัจจุบัน
- `volume`: ปริมาณการซื้อขายของแท่งเทียนปัจจุบัน
- `sma()`: ฟังก์ชันคำนวณค่าเฉลี่ยเคลื่อนที่แบบง่าย (Simple Moving Average)
- `rsi()`: ฟังก์ชันคำนวณค่าดัชนีความแข็งแกร่งสัมพัทธ์ (Relative Strength Index)
- `macd()`: ฟังก์ชันคำนวณค่า MACD (Moving Average Convergence Divergence)
- 8. การใช้งานกับไบนารี่ออปชั่น
Pine Script สามารถใช้เพื่อสร้างสัญญาณสำหรับการซื้อขาย ไบนารี่ออปชั่น ได้ โดยการวิเคราะห์ข้อมูลตลาดและสร้างเงื่อนไขในการตัดสินใจซื้อหรือขาย ตัวอย่างเช่น:
```pinescript //@version=5 indicator(title="Binary Options Signal", shorttitle="Binary Signal", overlay=true)
// Define RSI parameters length = 14 overbought = 70 oversold = 30
// Calculate RSI rsiValue = rsi(close, length)
// Generate signal if rsiValue > overbought
signal = -1 // Sell signal
else if rsiValue < oversold
signal = 1 // Buy signal
else
signal = 0 // No signal
// Plot signal plot(signal, title="Signal", color=color.red) ```
สคริปต์นี้จะคำนวณค่า RSI และสร้างสัญญาณซื้อขายตามค่า RSI ที่สูงเกินไป (overbought) หรือต่ำเกินไป (oversold) สัญญาณเหล่านี้สามารถใช้เพื่อเปิดการซื้อขายไบนารี่ออปชั่นได้
- 9. ตารางสรุปคำสั่งพื้นฐาน
| คำอธิบาย | | กำหนดเวอร์ชันของ Pine Script | | กำหนดสคริปต์เป็นตัวบ่งชี้หรือกลยุทธ์ | | วาดกราฟบนกราฟราคา | | ประกาศตัวแปรที่สามารถเปลี่ยนแปลงค่าได้ | | คำสั่งควบคุมการทำงานตามเงื่อนไข | | คำสั่งวนซ้ำตามจำนวนครั้งที่กำหนด | | คำสั่งวนซ้ำตราบเท่าที่เงื่อนไขเป็นจริง | | ตัวแปรที่เข้าถึงข้อมูลราคาและปริมาณการซื้อขาย | | ฟังก์ชันคำนวณตัวบ่งชี้ทางเทคนิค | |
- 10. แหล่งข้อมูลเพิ่มเติม
- Pine Script Reference Manual: เอกสารอ้างอิงอย่างเป็นทางการของ Pine Script
- TradingView Help Center: ศูนย์ช่วยเหลือของ TradingView
- Technical Analysis: การวิเคราะห์ทางเทคนิค
- Candlestick Patterns: รูปแบบแท่งเทียน
- Moving Averages: ค่าเฉลี่ยเคลื่อนที่
- Relative Strength Index (RSI): ดัชนีความแข็งแกร่งสัมพัทธ์
- MACD: Moving Average Convergence Divergence
- Bollinger Bands: แถบ Bollinger
- Fibonacci Retracements: Fibonacci Retracements
- Ichimoku Cloud: Ichimoku Cloud
- Binary Options Strategies: กลยุทธ์ไบนารี่ออปชั่น
- Volume Spread Analysis: การวิเคราะห์ปริมาณการซื้อขาย
- Chart Patterns: รูปแบบกราฟ
- Risk Management: การบริหารความเสี่ยง
- Money Management: การจัดการเงินทุน
- Trading Psychology: จิตวิทยาการเทรด
- Backtesting: การทดสอบย้อนหลัง
- Optimization: การปรับปรุงประสิทธิภาพ
บทความนี้เป็นเพียงจุดเริ่มต้นในการเรียนรู้ Pine Script ยังมีอีกมากมายที่คุณสามารถเรียนรู้และสำรวจได้ ขอให้สนุกกับการเขียนสคริปต์และพัฒนา กลยุทธ์การซื้อขาย ของคุณ!
เริ่มต้นการซื้อขายตอนนี้
ลงทะเบียนกับ IQ Option (เงินฝากขั้นต่ำ $10) เปิดบัญชีกับ Pocket Option (เงินฝากขั้นต่ำ $5)
เข้าร่วมชุมชนของเรา
สมัครสมาชิกช่อง Telegram ของเรา @strategybin เพื่อรับ: ✓ สัญญาณการซื้อขายรายวัน ✓ การวิเคราะห์เชิงกลยุทธ์แบบพิเศษ ✓ การแจ้งเตือนแนวโน้มตลาด ✓ วัสดุการศึกษาสำหรับผู้เริ่มต้น

