Skip to content

Pick999999/technical-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Thaibot Technical Analysis

Thaibot Technical Analysis คือ Library ภาษา Rust สำหรับการคำนวณอินดิเคเตอร์ทางเทคนิค (Technical Indicators) และวิเคราะห์สัญญาณการเทรด (Trade Signals) สำหรับระบบ Algorithmic Trading

Crate นี้ถูกออกแบบมาให้เป็น Pure Logic Library (ไม่มี Network I/O) ทำให้มีความเร็วสูง (High Performance) และสามารถนำไปใช้ได้ทั้งใน Trading Bot, Backtesting System หรือ Web Server API

🚀 ฟีเจอร์หลัก (Features)

  • Multi-Indicator Support: รองรับการคำนวณ Moving Average หลากหลายรูปแบบ:
    • EMA (Exponential Moving Average)
    • HMA (Hull Moving Average)
    • EHMA (Exponential Hull Moving Average)
    • THMA (Triple Hull Moving Average)
  • Deep Analysis: ไม่ใช่แค่คืนค่าตัวเลข แต่ยังวิเคราะห์เชิงลึกให้ด้วย:
    • Trend Direction: หาความชัน (Slope) และทิศทาง (Up/Down/Flat)
    • Turn Events: ตรวจจับจุดกลับตัว (TurnUp / TurnDown) เทียบกับแท่งก่อนหน้า
    • Consecutive Counts: นับจำนวนแท่งที่ขึ้นหรือลงต่อเนื่อง (UpCon/DownCon)
    • Candle Color: ระบุสีของแท่งเทียน (Green/Red/Doji)
  • Zero Dependencies: ไม่มีการเชื่อมต่อ Network ภายนอก ทำงานได้ทันทีและทดสอบง่าย

📦 การติดตั้ง (Installation)

เพิ่ม dependency ลงในไฟล์ Cargo.toml ของโปรเจกต์คุณ:

[dependencies]
thaibot_technical_analysis = "0.1.0" # ตรวจสอบเวอร์ชันล่าสุดบน crates.io

🛠 การใช้งาน (Usage)
ตัวอย่างการใช้งานใน main.rs หรือส่วน Logic ของคุณ:

Rust

use thaibot_technical_analysis::{calculate_market_data, CandleData, IndicatorType};

fn main() {
    // 1. เตรียมข้อมูลแท่งเทียน (Candle Data)
    // ในการใช้งานจริง ข้อมูลนี้จะมาจาก API ของ Broker (เช่น Deriv, Binance)
    let candles = vec![
        CandleData { time: 1700000000, open: 1.05, high: 1.10, low: 1.00, close: 1.08 },
        CandleData { time: 1700000060, open: 1.08, high: 1.12, low: 1.07, close: 1.11 },
        CandleData { time: 1700000120, open: 1.11, high: 1.15, low: 1.10, close: 1.09 },
        // ... ข้อมูลเพิ่มเติม ...
    ];

    // 2. เรียกใช้ฟังก์ชันคำนวณ
    // พารามิเตอร์: (Asset Name, ข้อมูลแท่งเทียน, ประเภท Indicator, Period สั้น, Period ยาว)
    let results = calculate_market_data(
        "EURUSD".to_string(),
        candles,
        IndicatorType::HMA, // เลือกใช้ Hull Moving Average
        9,  // Short Period
        21  // Long Period
    );

    // 3. แสดงผลลัพธ์
    for row in results {
        println!(
            "Time: {}, Price: {}, ShortVal: {}, Turn: {}", 
            row.candleDisplay, row.close, row.emaShortValue, row.TurnType
        );
    }
}

นี่คือไฟล์ README.md สำหรับ Crate ของคุณครับ เขียนให้ดูเป็นมืออาชีพ เข้าใจง่าย และครอบคลุมวิธีใช้งานครับ

คุณสามารถ Copy โค้ดด้านล่างนี้ไปวางในไฟล์ README.md ที่อยู่ในโฟลเดอร์ root ของโปรเจกต์ thaibot_technical_analysis ได้เลยครับ

Markdown

# Thaibot Technical Analysis

**Thaibot Technical Analysis** คือ Library ภาษา Rust สำหรับการคำนวณอินดิเคเตอร์ทางเทคนิค (Technical Indicators) และวิเคราะห์สัญญาณการเทรด (Trade Signals) สำหรับระบบ Algorithmic Trading

Crate นี้ถูกออกแบบมาให้เป็น **Pure Logic Library** (ไม่มี Network I/O) ทำให้มีความเร็วสูง (High Performance) และสามารถนำไปใช้ได้ทั้งใน Trading Bot, Backtesting System หรือ Web Server API

## 🚀 ฟีเจอร์หลัก (Features)

* **Multi-Indicator Support:** รองรับการคำนวณ Moving Average หลากหลายรูปแบบ:
    * **EMA** (Exponential Moving Average)
    * **HMA** (Hull Moving Average)
    * **EHMA** (Exponential Hull Moving Average)
    * **THMA** (Triple Hull Moving Average)
* **Deep Analysis:** ไม่ใช่แค่คืนค่าตัวเลข แต่ยังวิเคราะห์เชิงลึกให้ด้วย:
    * **Trend Direction:** หาความชัน (Slope) และทิศทาง (Up/Down/Flat)
    * **Turn Events:** ตรวจจับจุดกลับตัว (TurnUp / TurnDown) เทียบกับแท่งก่อนหน้า
    * **Consecutive Counts:** นับจำนวนแท่งที่ขึ้นหรือลงต่อเนื่อง (UpCon/DownCon)
    * **Candle Color:** ระบุสีของแท่งเทียน (Green/Red/Doji)
* **Zero Dependencies:** ไม่มีการเชื่อมต่อ Network ภายนอก ทำงานได้ทันทีและทดสอบง่าย

## 📦 การติดตั้ง (Installation)

เพิ่ม dependency ลงในไฟล์ `Cargo.toml` ของโปรเจกต์คุณ:

```toml
[dependencies]
thaibot_technical_analysis = "0.1.0" # ตรวจสอบเวอร์ชันล่าสุดบน crates.io
🛠 การใช้งาน (Usage)
ตัวอย่างการใช้งานใน main.rs หรือส่วน Logic ของคุณ:

Rust

use thaibot_technical_analysis::{calculate_market_data, CandleData, IndicatorType};

fn main() {
    // 1. เตรียมข้อมูลแท่งเทียน (Candle Data)
    // ในการใช้งานจริง ข้อมูลนี้จะมาจาก API ของ Broker (เช่น Deriv, Binance)
    let candles = vec![
        CandleData { time: 1700000000, open: 1.05, high: 1.10, low: 1.00, close: 1.08 },
        CandleData { time: 1700000060, open: 1.08, high: 1.12, low: 1.07, close: 1.11 },
        CandleData { time: 1700000120, open: 1.11, high: 1.15, low: 1.10, close: 1.09 },
        // ... ข้อมูลเพิ่มเติม ...
    ];

    // 2. เรียกใช้ฟังก์ชันคำนวณ
    // พารามิเตอร์: (Asset Name, ข้อมูลแท่งเทียน, ประเภท Indicator, Period สั้น, Period ยาว)
    let results = calculate_market_data(
        "EURUSD".to_string(),
        candles,
        IndicatorType::HMA, // เลือกใช้ Hull Moving Average
        9,  // Short Period
        21  // Long Period
    );

    // 3. แสดงผลลัพธ์
    for row in results {
        println!(
            "Time: {}, Price: {}, ShortVal: {}, Turn: {}", 
            row.candleDisplay, row.close, row.emaShortValue, row.TurnType
        );
    }
}
📊 โครงสร้างข้อมูล (Data Structures)
Input: CandleData
ข้อมูลดิบที่ต้องส่งเข้าไป

Rust

pub struct CandleData {
    pub time: i64,  // Unix Timestamp
    pub open: f64,
    pub high: f64,
    pub low: f64,
    pub close: f64,
}

นี่คือไฟล์ README.md สำหรับ Crate ของคุณครับ เขียนให้ดูเป็นมืออาชีพ เข้าใจง่าย และครอบคลุมวิธีใช้งานครับคุณสามารถ Copy โค้ดด้านล่างนี้ไปวางในไฟล์ README.md ที่อยู่ในโฟลเดอร์ root ของโปรเจกต์ thaibot_technical_analysis ได้เลยครับMarkdown# Thaibot Technical Analysis

**Thaibot Technical Analysis** คือ Library ภาษา Rust สำหรับการคำนวณอินดิเคเตอร์ทางเทคนิค (Technical Indicators) และวิเคราะห์สัญญาณการเทรด (Trade Signals) สำหรับระบบ Algorithmic Trading

Crate นี้ถูกออกแบบมาให้เป็น **Pure Logic Library** (ไม่มี Network I/O) ทำให้มีความเร็วสูง (High Performance) และสามารถนำไปใช้ได้ทั้งใน Trading Bot, Backtesting System หรือ Web Server API

## 🚀 ฟีเจอร์หลัก (Features)

* **Multi-Indicator Support:** รองรับการคำนวณ Moving Average หลากหลายรูปแบบ:
    * **EMA** (Exponential Moving Average)
    * **HMA** (Hull Moving Average)
    * **EHMA** (Exponential Hull Moving Average)
    * **THMA** (Triple Hull Moving Average)
* **Deep Analysis:** ไม่ใช่แค่คืนค่าตัวเลข แต่ยังวิเคราะห์เชิงลึกให้ด้วย:
    * **Trend Direction:** หาความชัน (Slope) และทิศทาง (Up/Down/Flat)
    * **Turn Events:** ตรวจจับจุดกลับตัว (TurnUp / TurnDown) เทียบกับแท่งก่อนหน้า
    * **Consecutive Counts:** นับจำนวนแท่งที่ขึ้นหรือลงต่อเนื่อง (UpCon/DownCon)
    * **Candle Color:** ระบุสีของแท่งเทียน (Green/Red/Doji)
* **Zero Dependencies:** ไม่มีการเชื่อมต่อ Network ภายนอก ทำงานได้ทันทีและทดสอบง่าย

## 📦 การติดตั้ง (Installation)

เพิ่ม dependency ลงในไฟล์ `Cargo.toml` ของโปรเจกต์คุณ:

```toml
[dependencies]
thaibot_technical_analysis = "0.1.0" # ตรวจสอบเวอร์ชันล่าสุดบน crates.io
🛠 การใช้งาน (Usage)ตัวอย่างการใช้งานใน main.rs หรือส่วน Logic ของคุณ:Rustuse thaibot_technical_analysis::{calculate_market_data, CandleData, IndicatorType};

fn main() {
    // 1. เตรียมข้อมูลแท่งเทียน (Candle Data)
    // ในการใช้งานจริง ข้อมูลนี้จะมาจาก API ของ Broker (เช่น Deriv, Binance)
    let candles = vec![
        CandleData { time: 1700000000, open: 1.05, high: 1.10, low: 1.00, close: 1.08 },
        CandleData { time: 1700000060, open: 1.08, high: 1.12, low: 1.07, close: 1.11 },
        CandleData { time: 1700000120, open: 1.11, high: 1.15, low: 1.10, close: 1.09 },
        // ... ข้อมูลเพิ่มเติม ...
    ];

    // 2. เรียกใช้ฟังก์ชันคำนวณ
    // พารามิเตอร์: (Asset Name, ข้อมูลแท่งเทียน, ประเภท Indicator, Period สั้น, Period ยาว)
    let results = calculate_market_data(
        "EURUSD".to_string(),
        candles,
        IndicatorType::HMA, // เลือกใช้ Hull Moving Average
        9,  // Short Period
        21  // Long Period
    );

    // 3. แสดงผลลัพธ์
    for row in results {
        println!(
            "Time: {}, Price: {}, ShortVal: {}, Turn: {}", 
            row.candleDisplay, row.close, row.emaShortValue, row.TurnType
        );
    }
}
📊 โครงสร้างข้อมูล (Data Structures)Input: CandleDataข้อมูลดิบที่ต้องส่งเข้าไปRustpub struct CandleData {
    pub time: i64,  // Unix Timestamp
    pub open: f64,
    pub high: f64,
    pub low: f64,
    pub close: f64,
}
Output: AnalysisResultค่าที่ได้รับกลับมา (ชื่อ Field เป็น camelCase เพื่อรองรับ JSON ฝั่ง JavaScript)Field NameTypeคำอธิบายassetNameStringชื่อสินทรัพย์ (เช่น "R_100")candleTimei64เวลาแท่งเทียน (Unix Epoch)candleDisplayStringเวลาที่จัดรูปแบบแล้ว (YYYY-MM-DD HH:mm:ss)candleBodyStringลักษณะแท่งเทียน (Bullish/Bearish/Doji)emaShortValuef64ค่าของเส้น Short (จะเป็น EMA/HMA ตามที่เลือก)TurnTypeStringการกลับตัวของเส้น Short (TurnUp/TurnDown/-)previousIsTurnTypeStringจำค่าการกลับตัวครั้งล่าสุดemaShortSlopeDirectionStringทิศทางความชัน (Up/Down/Flat)emaLongValuef64ค่าของเส้น LongLongGroupNoi32เลขกลุ่มคลื่นของเส้น LongUpCon / DownConi32จำนวนแท่งที่เส้น Short ชันขึ้น/ลง ต่อเนื่องemaAboveStringบอกว่าเส้นไหนอยู่บน ("emaShort" หรือ "emaLong")macdf64ส่วนต่างระหว่าง Short กับ LongcurrentColorStringสีแท่งเทียนปัจจุบัน ("Green"/"Red")⚙️ Supported Indicatorsคุณสามารถเลือก Algorithm การคำนวณผ่าน IndicatorType enum:IndicatorType::EMA - มาตรฐาน ใช้งานทั่วไปIndicatorType::HMA - ลด Lag ได้ดี เหมาะกับตลาดผันผวนIndicatorType::EHMA - ผสมผสานความเร็วของ Hull และความนุ่มนวลของ EMAIndicatorType::THMA - Triple Hull กรอง Noise ได้ดีที่สุด

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published