ข้ามไปที่เนื้อหา

การเชื่อมโยงไฟล์ของปลั๊กอิน

อินเทอร์เฟซ FileAssociations มีประเภทที่ช่วยให้ปลั๊กอินสามารถลงทะเบียน แก้ไข และจัดการนามสกุลไฟล์ได้อย่างยืดหยุ่น ด้วยประเภทเหล่านั้น นักพัฒนาสามารถเขียนโค้ดปลั๊กอินเพื่อจัดการการเชื่อมโยงไฟล์ได้ เมื่อเปิดใช้งานปลั๊กอิน cTrader จะรับรู้และส่งไฟล์ที่เกี่ยวข้องไปยังปลั๊กอินเพื่อประมวลผล

เมื่อมีการกำหนดค่าปลั๊กอินให้จัดการไฟล์โดยตรงใน UI ของ cTrader ผู้ใช้อาจไม่จำเป็นต้องสลับระหว่างแอปพลิเคชันหลายตัวเมื่อทำงานกับไฟล์อีกต่อไป ตัวอย่างเช่น สามารถสร้างปลั๊กอินเพื่อเปิดและจัดการไฟล์ทั้งหมดที่ใช้กับกลยุทธ์การเทรดเฉพาะได้

กรณีการใช้งาน

ต่อไปนี้เป็นตัวอย่างปลั๊กอินที่ใช้ฟีเจอร์ FileAssociations:

  • ตัวแปลงประวัติการเทรดยอมรับและจัดการไฟล์ CSV และ TXT ที่มีประวัติการเทรดจากแพลตฟอร์มอื่น โดยแปลงเป็นรูปแบบที่ใช้งานได้กับ cTrader เพื่อวิเคราะห์หรือนำเข้าโดยตรงไปยังบันทึกการเทรด
  • ตัวประมวลผลสัญญาณการเทรดอ่านไฟล์ XML หรือ JSON ที่มีสัญญาณการเทรดจากผู้ให้บริการภายนอกหรือระบบเทรดอัตโนมัติ ช่วยให้ผู้ใช้สามารถดำเนินการเทรดได้อย่างรวดเร็วตามสัญญาณ
  • ตัวนำเข้าเทมเพลตการจัดการความเสี่ยงยอมรับและจัดการไฟล์ JSON หรือ CSV ที่มีการกำหนดค่าการจัดการความเสี่ยง ช่วยให้ผู้ใช้สามารถใช้การตั้งค่าที่กำหนดไว้ล่วงหน้าใน cTrader
  • ตัวจัดการพอร์ตโฟลิโอประมวลผลไฟล์ CSV และ XML ที่มีรายละเอียดพอร์ตโฟลิโอของนักเทรด ให้มุมมองที่ปรับปรุงแล้วของสินทรัพย์ โพสิชัน และเมตริกประสิทธิภาพ พร้อมทั้งเพิ่มประสิทธิภาพการจัดการพอร์ตโฟลิโอ
  • ตัวโหลดเทมเพลตกราฟประมวลผลไฟล์ XML หรือ JSON สำหรับเทมเพลตกราฟ ช่วยให้ผู้ใช้สามารถจัดเก็บและโหลดการกำหนดค่าหรือการตั้งค่าที่ต้องการสำหรับกราฟได้อย่างรวดเร็ว
  • ตัวโหลดการตั้งค่าอินดิเคเตอร์ประมวลผลไฟล์ JSON หรือ CSV สำหรับการตั้งค่าอินดิเคเตอร์ที่กำหนดเอง ช่วยให้ผู้ใช้สามารถจัดเก็บและใช้การกำหนดค่าที่ต้องการสำหรับอินดิเคเตอร์ได้อย่างรวดเร็ว

การดำเนินการ

ติดตั้งปลั๊กอิน

เมื่อผู้ใช้ cTrader ติดตั้งและเปิดใช้งานปลั๊กอินที่รองรับประเภทไฟล์เฉพาะเป็นครั้งแรก กล่องโต้ตอบจะปรากฏขึ้น ผู้ใช้จะได้รับแจ้งให้เชื่อมโยงนามสกุลไฟล์กับปลั๊กอิน

หลังจากผู้ใช้ยืนยันการดำเนินการ คอมพิวเตอร์ของพวกเขาจะอัปเดตการตั้งค่าการเชื่อมโยงไฟล์ทั่วทั้งระบบ และการกำหนดค่าใหม่จะถูกนำไปใช้ทันที

ไอคอนใหม่สำหรับประเภทไฟล์จะปรากฏให้เห็นใน File Explorer หากไม่มีการระบุไอคอนสำหรับประเภทไฟล์ ระบบจะใช้ไอคอนปลั๊กอินเริ่มต้น

คำเตือน

ปลั๊กอินไม่ได้รับอนุญาตให้ประมวลผลนามสกุลไฟล์ที่ถูกจำกัด เช่น .algo

ใช้ปลั๊กอิน

หากเปิดใช้งานปลั๊กอินที่รองรับนามสกุลไฟล์ใน cTrader ปลั๊กอินจะถูกเรียกให้ทำงานกับไฟล์เมื่อผู้ใช้ทำสิ่งใดสิ่งหนึ่งต่อไปนี้:

  • ลากและวางไฟล์ - ผู้ใช้สามารถลากไฟล์ที่รองรับและวางลงใน UI ของ cTrader

  • เปิดไฟล์ใน File Explorer - ผู้ใช้สามารถดับเบิลคลิกที่ไฟล์เพื่อเปิด หรือใช้ตัวเลือก เปิดด้วย และเลือก cTrader

    • หากแอปพลิเคชัน cTrader เปิดอยู่ ปลั๊กอินจะได้รับไฟล์ทันที
    • หากแอปพลิเคชัน cTrader ปิดอยู่ cTrader จะเปิดขึ้นก่อนแล้วปลั๊กอินจึงจะได้รับไฟล์

ไฟล์ที่ได้รับจะถูกคัดลอกไปยังโฟลเดอร์ข้อมูลสำหรับปลั๊กอินและจะถูกลบเมื่อปลั๊กอินประมวลผลเสร็จสิ้น

เส้นทางไปยังโฟลเดอร์ข้อมูลสำหรับปลั๊กอิน: …/Documents/cAlgo/Data/Plugins/{PluginName}/Temp

ในกรณีที่นามสกุลไฟล์เชื่อมโยงกับปลั๊กอินที่เปิดใช้งานหลายตัว แต่ละปลั๊กอินจะประมวลผลไฟล์แยกกัน

เมื่อการเชื่อมโยงไฟล์ถูกลบออกเนื่องจากปลั๊กอินที่เกี่ยวข้องถูกปิดการใช้งานในอินสแตนซ์ cTrader การเชื่อมโยงไฟล์จะถูกเพิ่มกลับโดยอัตโนมัติในอินสแตนซ์ cTrader อื่นที่เปิดใช้งานปลั๊กอินเดียวกัน

ดำเนินการแทนที่ด้วยตนเอง

หากผู้ใช้เปลี่ยนโปรแกรมเริ่มต้นสำหรับประเภทไฟล์ในการตั้งค่าคอมพิวเตอร์ปกติในภายหลัง cTrader จะหยุดจัดการประเภทไฟล์นั้นโดยอัตโนมัติ

หากต้องการตั้งค่า cTrader เป็นโปรแกรมเริ่มต้นสำหรับจัดการไฟล์ในรูปแบบนั้นอีกครั้ง ผู้ใช้ต้องสร้างการเชื่อมโยงไฟล์ใหม่ดังนี้:

  1. เปิด cTrader และปิดการใช้งานปลั๊กอินที่เกี่ยวข้อง
  2. ทำให้ปลั๊กอินใช้งานได้ เมื่อกล่องโต้ตอบปรากฏขึ้น ให้ยืนยันการดำเนินการ

การตั้งค่านี้ช่วยให้ปลั๊กอินและแอปพลิเคชัน cTrader จัดการนามสกุลไฟล์ในขณะที่หลีกเลี่ยงการรบกวนจากโปรแกรมอื่น

หมายเหตุ

ปลั๊กอินสามารถเพิ่มและลบการเชื่อมโยงไฟล์ในขณะที่ทำงานได้โดยไม่จำเป็นต้องรีสตาร์ทอัลกอริทึมหรือแอปพลิเคชัน cTrader

ตัวอย่างปลั๊กอิน

ตัวอย่างปลั๊กอินเพียงแค่เพิ่มการเชื่อมโยงไฟล์สำหรับประเภทไฟล์ต่อไปนี้:

  • CSV
  • PNG
  • PDF
  • TXT
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo.Plugins
{
    [Plugin(AccessRights = AccessRights.None)]
    public class FileAssociationSample : Plugin
    {
        private const string FileExtension1 = ".csv";
        private const string FileExtension2 = ".png";
        private const string FileExtension3 = ".pdf";
        private const string FileExtension4 = ".txt";

        protected override void OnStart()
        {
            AddFileAssociations();
            FileAssociations.FileOpened += FileAssociations_FileOpened;

            Print("File associations have been added.");
        }

        private void AddFileAssociations()
        {
            FileAssociations.Add(FileExtension1);
            FileAssociations.Add(FileExtension2);
            FileAssociations.Add(FileExtension3);
            FileAssociations.Add(FileExtension4);
        }

        private void FileAssociations_FileOpened(FileAssociationsFileOpenedEventArgs obj)
        {
            Print($"File opened: {obj.FilePath}");
        }

        protected override void OnException(Exception exception)
        {
            Print($"Exception: {exception}");
        }
    }
}

Image title