Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: การส่งค่ามาที่ EA  (Read 9999 times)

gunlanutt

  • Guest
การส่งค่ามาที่ EA
« on: ธันวาคม 22, 2009, 08:15:36 pm »
รบกวนถามเกี่ยวกับวิธีการส่งค่าจากอินดิเคเตอร์หน่อยครับ

คือผมได้ค่าใน indicator ตัวหนึ่งซึ่งจะทำให้เป็นค่า 1 หรือ 2 หรือจะทำให้เป็น True หรือ False ก็ได้ครับ
แต่ปัญหาก็คือผมไม่ทราบวิธีในการส่งมายังอีเอครับ ว่าจะต้อง setindexbuffer ยังงัย ต้องเป็นตัวแปรประเภทไหน ผมลองสุ่ม ๆ แล้วแต่ก็ไม่ได้ครับ
ขอบคุณครับ

gunlanutt

  • Guest
Re: การส่งค่ามาที่ EA
« Reply #1 on: ธันวาคม 22, 2009, 08:25:03 pm »
ในที่นี้ผมเพิ่มตัวแปร
int ZigUp = 0,ZigDown = 0;
ลงไปด้วย 2 ตัวและ
ทำการเพิ่มไปยังส่วนของโปรแกรมบรรทัดที่ 269,270,297 และ298
เพื่อให้ตัวแปรมีค่า 1 หรือ 2

ต่อไปก็เหลือขั้นตอนการเขียนเพื่อส่งค่าไปยังอีเอ

ตัวนี้ความจริงผมต้องการรู้ว่ามีลูกศรขึ้น หรือ ลูกศรลง ครับเท่านี้ ซึ่งผมแทนค่าลูกศรขึ้น เท่ากับ ZigUp = 1
และลูกศรลง ZigUp=2 ครับ

ช่วยแนะนำวิธีเขียนการส่งค่า ZigUp ไปที่อีเอหน่อยนะครับ

ขอบคุณมากครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: การส่งค่ามาที่ EA
« Reply #2 on: ธันวาคม 22, 2009, 10:14:18 pm »
เพิ่ม SetIndexBuffer(7, ตัวแปรที่เก็บค่าที่จะส่ง);  หมายเหตุ SetIndexBuffer  ใช้ได้สูงสุด 8 ตัวนะ ในอินเองใช้ไปแล้ว 7 ตัวเพราะฉะนั่นจึงเลือกวิธีการส่งค่าออกมาด้วยวิธีการนี้อีกค่าเดียวเท่านั่น

gunlanutt

  • Guest
Re: การส่งค่ามาที่ EA
« Reply #3 on: ธันวาคม 22, 2009, 11:12:01 pm »
เพิ่ม SetIndexBuffer(7, ตัวแปรที่เก็บค่าที่จะส่ง);  หมายเหตุ SetIndexBuffer  ใช้ได้สูงสุด 8 ตัวนะ ในอินเองใช้ไปแล้ว 7 ตัวเพราะฉะนั่นจึงเลือกวิธีการส่งค่าออกมาด้วยวิธีการนี้อีกค่าเดียวเท่านั่น
ขอบคุณ Admin มากนะครับ

ผมลองเอาไปเขียนดูแล้ว
SetIndexBuffer(7,ZigUp);

เมื่อไปใช้คำสั่งในอีเอ โดยใช้คำสั่ง iCustom แล้วปรากฎว่าค่า ZigUp = 0 เหมือนตอนประกาศตัวแปรครับ ไม่ได้ค่า 1 หรือ 2 ครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: การส่งค่ามาที่ EA
« Reply #4 on: ธันวาคม 22, 2009, 11:19:37 pm »
เพิ่ม SetIndexBuffer(7, ตัวแปรที่เก็บค่าที่จะส่ง);  หมายเหตุ SetIndexBuffer  ใช้ได้สูงสุด 8 ตัวนะ ในอินเองใช้ไปแล้ว 7 ตัวเพราะฉะนั่นจึงเลือกวิธีการส่งค่าออกมาด้วยวิธีการนี้อีกค่าเดียวเท่านั่น
ขอบคุณ Admin มากนะครับ

ผมลองเอาไปเขียนดูแล้ว
SetIndexBuffer(7,ZigUp);

เมื่อไปใช้คำสั่งในอีเอ โดยใช้คำสั่ง iCustom แล้วปรากฎว่าค่า ZigUp = 0 เหมือนตอนประกาศตัวแปรครับ ไม่ได้ค่า 1 หรือ 2 ครับ

ตัวแปร ZigUp ตอนประกาสตัวแปรได้ประกาศเป็นแบบ Array หรือยังครับ

gunlanutt

  • Guest
Re: การส่งค่ามาที่ EA
« Reply #5 on: ธันวาคม 22, 2009, 11:46:31 pm »
ประกาศเป็นตัวแปร array แล้วก็ยังไม่ได้ครับ
double ZigUp[];

ส่วนของตัวโปรแกรมก็ให้ค่า ZigUp[gi_112];

คำตอบที่ได้จะเป็นค่าเท่ากับ 2147483647 ครับ

คุณ Admin ช่วยเขียนให้ดูเป็นกรณีศึกษาสักหน่อยเถอะครับ
ผมเขียนไม่ถูกจริง ๆ ต้องการแค่รู้ว่าตอนนี้ลูกศรมันขึ้นหรือลงเท่านั้นเองครับจุดประสงค์

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: การส่งค่ามาที่ EA
« Reply #6 on: ธันวาคม 23, 2009, 02:26:49 am »
ผมดู code แล้ว ลูกศร เขียว แดง เหลือง ในอินดิเคเตอรืมันส่งค่าออกมาอยู่แล้ว แต่ในแท่งเทียนที่ไม่มีลูกศรปรากกฏจะเป็น 0 แต่หากมีศรปรากฏจะมีค่าเท่ากับราคาของคู่เงินตอนนั่นเอาตัวอย่าง EA ที่ Print ค่าออกมาดูไปลองประยุกต์เองนะครับ