Open Forex4you Account

Server รัน EA 1000 / ปี

สั่งชื้อคู่มือการโปรแรกม MQL4

Author Topic: NormalizeDouble  (Read 13907 times)

gunlanutt

  • Guest
NormalizeDouble
« 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)

linconz

  • VIP
  • Sr. Member
  • *
  • Posts: 357
Re: NormalizeDouble
« Reply #1 on: ตุลาคม 28, 2009, 06:20:25 pm »
จะเอา 5 ตำแหน่งไปใช้ต่อในฟังก์ชั่นอะไรครับ

fxpro ลอง ask ดูก็มา 4 ตำแหน่ง

แล้วก็ใช้ close[] ก็ได้

ง่ายกว่า iclose

linconz

  • VIP
  • Sr. Member
  • *
  • Posts: 357
Re: NormalizeDouble
« Reply #2 on: ตุลาคม 28, 2009, 09:46:37 pm »
จะเอา 5 ตำแหน่งไปใช้ต่อในฟังก์ชั่นอะไรครับ


admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: NormalizeDouble
« Reply #3 on: ตุลาคม 28, 2009, 10:25:45 pm »
ถามก่อนนะครับ ถ้าเปลี่ยนจาก double เป็น string แล้วได้ 8 ตำแหน่ง แบบนี้เปล่าครับ 
1.ถ้าใช้ double แล้วได้ แบบนี้  1.2345
2.ถ้าใช้ string แล้วได้ แบบนี้ 1.234567

หรือเปล่าครับ คือค่าที่ได้ 4 ตำแหน่งแรกที่รับโดย string แล้วมีค่าเท่ากับ 4 ตำแหน่งแรกที่รับจาก double ถ้าใช้ใช้วิธีนี้เลยครับ รับค่าโดยใช่ string แล้ว แปลง string เป็น double อีกทีโดยใช้     double NormalizeDouble( StrToDouble( string value) , 5)  ลองแบบนี้ดูครับว่าได้ไหม