1. ถ้าผมต้องการให้ระบบทำเป็นลำดับ เช่น
สมมติระบบผมมี Set up และ Trigger แล้วผมต้องการให้ระบบซื้อครั้งแรกเป็น
Buy = Set up + Trigger
และครัั้งที่สองเป็น
Buy = Trigger อย่างเดียว
เป็นลำดับว่า Buy1 = Set up + Trigger ก่อนแล้วค่อยทำ Buy2 = Trigger อย่างเดียว
ไม่ทราบว่าต้องเขียนสูตรอย่างไรครับ
- Algorithm แบบนี้มีหลายหลายครับ เช่นใช้ if-else, switch-case ถ้ารู้จักการโปรแกรมมิ่งมาก่อนจะเข้าใจง่ายครับ จะเขียนง่าย แต่นั่นมันก็ภาษาโปรแกรมมิ่งเกินไปซึ่งถ้าไม่ได้ศึกษามาก็จะใช้งานลำบากครับ
แต่ถ้ารู้จักระบบเขียวซื้อ-แดงขายของลุงฉโลก แนะนำว่าให้ลองแกะโค้ดนี้แล้วใช้ดูครับ ผมว่าเข้าง่ายดีไม่ซับซ้อน ซึ่งโค้ดคือ
//รูปแบบตาม เขียวซื้อ-แดงขาย ลุงฉโลก
//ตั้งเงื่อนไข Buy-Sell Setup
BuySetup = Buy Condition 1, 2, 3 ...;
SellSetup = Sell Condition 1, 2, 3 ...;
//สร้างคำสั่ง Enable Buy-Sell
BuyEnable = BarsSince(BuySetup) น้อยกว่า BarsSince(SellSetup);
SellEnable = BarsSince(BuySetup) มากกว่า BarsSince(SellSetup);
ปล. แก้ น้อยกว่า/มากกว่า เป็นเครื่องหมายด้วยนะครับ ผมพิมพ์ในนี้ไม่ได้ ไม่รู้ทำไม
//ตั้งเงื่อนไข Buy-Sell Trigger
BuyTrig = Buy Trigger 1, 2, 3 ...;
SellTrig = Sell Trigger 1, 2, 3 ...;
//ส้าง Buy-Sell Signal
Buy = BuyEnable AND BuyTrig;
Sell = SellEnable AND SellTrig;
2.ถามเรื่อง Sigscalein และ Sigscaleout เป็นตัวคำสั่งที่ผมไม่เข้าใจมานานมากแล้วครับถึงแม้จะอ่านมาหลายรอบ
ผมเข้าใจว่าสองตัวนี้เป็นคำสั่งในตัวมันเองอยู่แล้วคือการแบ่งซื้อและการแบ่งขายแต่ผมไม่เข้าใจว่ามันแบ่งขายเท่าไหร่
รวมถึงเป็นสูตรที่ไม่สามารถปรับแต่งได้เลยให้แบ่งซื้อและการแบ่งขายกี่เปอร์เซ็นต์ อยากขอคำแนะนำด้วยครับ
ขอบคุณล่วงหน้านะครับ
- ลองอ่าน Example 4: partial exit (scaling out) on profit target stops ใน http://www.amibroker.com/guide/h_pyramid.html ดูครับ
ในตัวอย่างจะเป็นการแบ่งขายหลายไม้ ซึ่ง % ที่แบ่งขาย สามารถปรับได้ผ่าน
SetPositionSize( 50, spsPercentOfPosition * ( Buy == sigScaleOut ) ); // scale out 50% of position
ครับ