EA Programing => ปัญหาที่พบในการเขียน EA => Topic started by: gunlanutt on ตุลาคม 28, 2009, 05:01:07 pm
-
จากโบรคเกอร์ FxPro (ทศนิยม 5 ตำแหน่ง)
ผมมีปัญหากับคำสั่ง
double NormalizeDouble( double value, int digits)
คือเมื่อประกาศเป็นตัวแปร double จะได้ค่าทศนิยม4ตำแหน่ง
แต่เมื่อสลับค่าเป็นตัวแปร string จะได้ค่าทศนิยม 8 ตำแหน่ง
เป็นเพราะอะไรครับ
ผมต้องการค่าราคาแท่งเทียนปิดแท่งก่อนนะครับ กับแท่งปัจจุบัน โดยปกติผมเขียนโดย
PrevClose = iClose(NULL,0,0);
LastClose = iClose(NULL,0,1);
จุดประสงค์ของผมก็คือต้องการได้ค่าทศนิยมจากตัวแปร 5 ตำแหน่ง โค๊ดที่ผมเขียนมานะครับ
PrevClose = NormalizeDouble(iClose(NULL,0,0),5);
LastClose = NormalizeDouble(iClose(NULL,0,1),5);
ไม่ทราบว่าถูกหรือป่าว ถ้าไม่ถูกผมต้องทำอย่างไรครับถึงจะได้ทศนิยม 5 ตำแหน่ง (ซึ่งโบรคเกอร์ที่เปิดนี้ก็มีทศนิยม 5 ตำแหน่งนะครับ ผมเปิด GBP/USD)
-
จะเอา 5 ตำแหน่งไปใช้ต่อในฟังก์ชั่นอะไรครับ
fxpro ลอง ask ดูก็มา 4 ตำแหน่ง
แล้วก็ใช้ close[] ก็ได้
ง่ายกว่า iclose
-
จะเอา 5 ตำแหน่งไปใช้ต่อในฟังก์ชั่นอะไรครับ
-
ถามก่อนนะครับ ถ้าเปลี่ยนจาก double เป็น string แล้วได้ 8 ตำแหน่ง แบบนี้เปล่าครับ
1.ถ้าใช้ double แล้วได้ แบบนี้ 1.2345
2.ถ้าใช้ string แล้วได้ แบบนี้ 1.234567
หรือเปล่าครับ คือค่าที่ได้ 4 ตำแหน่งแรกที่รับโดย string แล้วมีค่าเท่ากับ 4 ตำแหน่งแรกที่รับจาก double ถ้าใช้ใช้วิธีนี้เลยครับ รับค่าโดยใช่ string แล้ว แปลง string เป็น double อีกทีโดยใช้ double NormalizeDouble( StrToDouble( string value) , 5) ลองแบบนี้ดูครับว่าได้ไหม