คอมไพล์และสร้างอัลกอริทึมใน cTrader
คุณสามารถใช้คอมไพเลอร์สองประเภทเมื่อคอมไพล์/สร้างอัลกอริทึม cTrader:
- คอมไพเลอร์แบบฝังตัว
- คอมไพเลอร์ .NET SDK
โดยค่าเริ่มต้น cTrader ใช้คอมไพเลอร์แบบฝังตัว แต่เราแนะนำให้คุณเปลี่ยนเป็นคอมไพเลอร์ .NET SDK หากคุณมีการติดตั้งไว้บนเครื่องของคุณ
การคอมไพล์ไฟล์ CSPROJ และการเรียกคืน cBots
cTrader Algo ช่วยให้คุณสร้างและบันทึกอัลกอริทึมโดยการคอมไพล์ไฟล์ .csproj ใช้โค้ดต่อไปนี้เพื่อดำเนินการ:
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 | |
หากคุณตั้งค่า AccessRights เป็น None คุณต้องระบุเส้นทางไปยังไดเรกทอรีภายในโฟลเดอร์ข้อมูลอัลกอริทึม การกำหนดค่านี้หมายความว่าอัลกอริทึมไม่ได้รับอนุญาตให้คอมไพล์ไฟล์นอกโฟลเดอร์ข้อมูลของตัวเอง
หากคุณตั้งค่า AccessRights เป็น FullAccess คุณสามารถระบุเส้นทางไปยังไดเรกทอรีหรือตำแหน่งใดๆ สำหรับทั้งไฟล์ .csproj และอัลกอริทึมที่สร้างขึ้น
หากคุณตั้งใจจะใช้เส้นทางไฟล์แบบสัมพัทธ์ ไดเรกทอรีหลักจะต้องมีอยู่ตามเส้นทางนี้: ..Documents\Algo\Data\{Algo type}\{Algo name}
หลังจากที่คุณเริ่มต้น cBot ในเครื่อง อัลกอริทึมจะถูกบันทึกในไดเรกทอรีที่ระบุไว้
การสลับคอมไพเลอร์
หากต้องการเปลี่ยนไปใช้คอมไพเลอร์อื่น ให้คลิก การตั้งค่า ที่มุมล่างซ้ายของ UI เพื่อเปิดหน้าต่างการตั้งค่า จากนั้นสลับไปที่แท็บ Algo

เปิดเมนูแบบเลื่อนลง เลือกคอมไพเลอร์ และเลือกคอมไพเลอร์ที่เหมาะสมจากตัวเลือกที่มีอยู่
คอมไพเลอร์แบบฝังตัว
คอมไพเลอร์แบบฝังตัวถูกสร้างมาพร้อมกับแพลตฟอร์ม cTrader Windows เมื่อเทียบกับคอมไพเลอร์ .NET SDK แล้ว มีฟีเจอร์ที่จำกัดกว่า ตัวอย่างเช่น คอมไพเลอร์แบบฝังตัวไม่รองรับแพ็คเกจและเฟรมเวิร์ก .NET ของบุคคลที่สาม เช่น WinForms และ WPF
คอมไพเลอร์ .NET SDK
แนะนำให้ใช้คอมไพเลอร์ .NET SDK สำหรับโปรเจกต์ขนาดใหญ่หรือส่วนขยายที่ใช้ไลบรารี .NET ของบุคคลที่สาม คอมไพเลอร์ .NET SDK ยังรองรับฟีเจอร์เพิ่มเติม เช่น พารามิเตอร์การสร้าง
เมนู เลือกคอมไพเลอร์ ช่วยให้สามารถเลือกคอมไพเลอร์ .NET SDK ใดๆ ที่คุณได้ติดตั้งไว้ในเครื่องของคุณ หากไม่มีการติดตั้ง .NET SDK เวอร์ชันใดๆ คุณสามารถคลิกปุ่ม ติดตั้ง .NET SDK เพื่อไปยังหน้าดาวน์โหลดสำหรับรุ่นเสถียรล่าสุดได้เสมอ
พารามิเตอร์
cTrader มีพารามิเตอร์ที่ปรับแต่งได้ซึ่งคุณสามารถระบุเมื่อใช้ .NET CLI เมื่อสร้าง cBot/อินดิเคเตอร์ของคุณใน IDE ภายนอก พารามิเตอร์เหล่านี้ถูกกำหนดไว้ด้านล่าง:
| ชื่อ | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
| AlgoName | $(MSBuildProjectName) | ระบุชื่อไฟล์ .algoคุณสมบัตินี้ไม่ส่งผลต่อ AssemblyName |
| AlgoBuild | True | เปิดใช้งานการสร้างไฟล์ .algo |
| AlgoPublish | True | เปิดใช้งานการคัดลอกไฟล์ .algo ไปยังไดเรกทอรี MyDocuments ของผู้ใช้ปัจจุบันหลังจากการสร้างสำเร็จ |
| IncludeSource | False | รวมไดเรกทอรีต้นทางไปยังไฟล์ .algo เป้าหมาย |
| IncludeSymbols | False (รุ่นสำหรับเผยแพร่)True (รุ่นสำหรับดีบัก) | รวมสัญลักษณ์การดีบักไปยังไฟล์ .algo เป้าหมาย |
การจัดการข้อผิดพลาดเพิ่มเติม
หากคุณอ้างอิงแพ็คเกจ NuGet cTrader.Automate ในโปรเจกต์คลาสไลบรารีของคุณที่ไม่มีคลาส cTrader algo ใดๆ (เช่น Robot สำหรับ cBot) คุณจะพบข้อผิดพลาด "Assembly must contain algo type" เมื่อคุณพยายามสร้างโปรเจกต์ ข้อผิดพลาดนี้เกิดขึ้นเนื่องจากพารามิเตอร์ AlgoBuild มีค่าเท่ากับ True โดยค่าเริ่มต้น
เพื่อแก้ไขปัญหา เพียงแค่ตั้งค่า AlgoBuild เป็น False ในไฟล์โปรเจกต์ .NET ของคุณตามที่เห็นในตัวอย่างด้านล่าง:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AlgoBuild>false</AlgoBuild>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="cTrader.Automate" Version="1.*-*" />
</ItemGroup>
</Project>