วันจันทร์ที่ 11 กันยายน พ.ศ. 2560

เขียน EA ผิดบ่อย ๆ

บางทีเขียนโค้ด EA ผิดเล็กน้อย รันไม่ผ่าน หาตั้งนาน ไม่รู้ผิดตรงไหน แบ่งใส่ Comment ทีละครึ่ง ใช้เวลานาน กว่าจะหาบรรทัดที่ผิดเจอ ก็เลย รวบรวมว่า มักจะผิดพลาดง่าย ๆ เช่น
1.มักผิดเนื่องจากลืมใส่ Type
   extern init_Lot = 0.01;
   -แก้ไขเป็น
   extern double init_Lot = 0.01;
2.มักผิดเนื่องจากคิดว่าใช้สูตรถูกแล้วเลยไม่ได้ลองแทนค่า
   กรณีเบิ้ล lot คำนวณค่า max_lot เข้าใจผิดว่าใช้จำนวนไม้คูณกับ lot เริ่มต้น เช่น
   max_lot = init_lot*max_loss_trade;
   แทนค่า ถ้า max_loss_trade = 4 และ init_lot = 0.01 แล้ว max_lot =  0.01*4 = 0.04 (ซึ่งผิด)
-แก้ไขเป็น
   max_lot = fixed_lot*MathPow(2,max_loss_trade-1);
   แทนค่า max_lot = 0.01*(2^(4-1))
                          = 0.01*(2^3)
                          = 0.01*8
                          = 0.08
   ลองไล่เรียงดูตามนี้ 0.01, 0.02, 0.04, 0.08 ซึ่งเป็นไปตามที่ต้องการ
3.เปลี่ยนชื่อตัวแปร ตรงที่ประกาศไว้ แต่ไม่ได้เปลี่ยนในโค้ด ให้ครบทุกตัว
4.เครื่องหมาย ;
   มักจะลืมใส่ท้ายคำสั่ง
   หรือใส่เกินท้ายที่ที่ไม่ต้องใส่ เช่นท้ายฟังก์ชั่น
5.มักจะลืมเครื่องหมาย () หลังฟังก์ชั่น
6.ประกาศตัวแปรอะเรย์ไว้เช่น int Tick[3];
   เวลานำไปใช้งานจะสามารถใช้งานได้ 3 ตัวแปรย่อยได้แก่
   Tick[0], Tick[1], Tick[2]
   จะใช้ Tick[3] ไม่ได้เพราะแม้จะไม่ error ให้เห็นแต่คำสั่งบรรทัดที่เกี่ยวข้องนั้นไม่ทำงาน

1 ความคิดเห็น: