Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: ช่วยดูที่เขียนที  (Read 17688 times)

TvT

  • Full Member
  • ***
  • Posts: 133
ช่วยดูที่เขียนที
« on: กันยายน 25, 2010, 09:23:18 pm »
ลงอพยายามแก้ indicator FX smooth , แล้วไม่สามารถซื้อขายได้
ขอให้ช่วยดูจุดผิดด้วยครับ (โพสต์ไว้ข้างล่าง)

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: ช่วยดูที่เขียนที
« Reply #1 on: กันยายน 26, 2010, 12:19:46 am »
ทำไมต้องแก้อินด้วยอ่ะครับ ในเมื่ออินนี้มันส่งค่าสีแดงกับเขียวออกมาอยู่แล้วเราแค่สร้าง EA ที่เรียกใช้งานค่า อินดิเคเตอร์จาก icustom เอาค่าสีเขียวแดงออกมาเปรียบในการเปิด order ก็ได้แล้วนิครับ

TvT

  • Full Member
  • ***
  • Posts: 133
Re: ช่วยดูที่เขียนที
« Reply #2 on: กันยายน 26, 2010, 10:03:25 am »
อ่า งั้นพอจะช่วยเขียนได้ไหมครับขอดูตัวอย่างหน่อยเพราะลองแล้วไม่ทำงาน
เท่าที่นับมันจะบอกออกมาเป็น
1. บอกให้ซื้อ ขาย (buffer 0)
2. บอกจุด stoploss (buffer 2)
แต่เท่าที่ลองดูก็ไม่ซื้อขายเลยขอให้ช่วยครับ

ขอดูตัวอย่างการเขียนได้ไหมครับ ขอบคุณครับ


TvT

  • Full Member
  • ***
  • Posts: 133
Re: ช่วยดูที่เขียนที
« Reply #3 on: กันยายน 28, 2010, 09:01:32 pm »
ถ้าไม่สะดวกเขียน  รบกวน admin ช่วยบอกคำสั่งที่ใช้ดึงบอกสัญญาณซื้อขาย (ใช่ buffer 0 ไหมครับ) และ จุดขาดทุนที่แจ้ง (น่าจะบอกเฉพาะจุดล่าสุด) ทีรบกวนช่วยตอบทีครับ

ลองทำดูเองแล้วไม่ทำงานครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: ช่วยดูที่เขียนที
« Reply #4 on: กันยายน 28, 2010, 09:37:58 pm »
เขียนแบบนี้ครับ
 double b0;
 b0=iCustom(NULL,0,"FXSmooth EURUSD",0,0);
Print("Buffer 0 : ",b0);
 double b2;
 b2=iCustom(NULL,0,"FXSmooth EURUSD",2,0);

มันจะมีค่าออกมา 2 ค่าดดยค่าหนึ่งจะเท่ากับราคาของค่าเงินในช่วงนั่นอีกค่าจะเป็น 21000000 ซึงมีค่าเยอะมาก ให้คุณทำการเขียนเงื่อนไข ตรวจสอบต่อ เอาครับว่าถ้าตัวไหนส่งค่าออกมาใกล้เคียงราคามากที่สุดก็เป็นจริง ตัวในที่ส่งค่า 2 พันล้านออกมาคือเป็นเท็จครับ

TvT

  • Full Member
  • ***
  • Posts: 133
Re: ช่วยดูที่เขียนที
« Reply #5 on: กันยายน 28, 2010, 10:27:17 pm »
เขียนแบบนี้ครับ
 double b0;
 b0=iCustom(NULL,0,"FXSmooth EURUSD",0,0);
Print("Buffer 0 : ",b0);
 double b2;
 b2=iCustom(NULL,0,"FXSmooth EURUSD",2,0);

มันจะมีค่าออกมา 2 ค่าดดยค่าหนึ่งจะเท่ากับราคาของค่าเงินในช่วงนั่นอีกค่าจะเป็น 21000000 ซึงมีค่าเยอะมาก ให้คุณทำการเขียนเงื่อนไข ตรวจสอบต่อ เอาครับว่าถ้าตัวไหนส่งค่าออกมาใกล้เคียงราคามากที่สุดก็เป็นจริง ตัวในที่ส่งค่า 2 พันล้านออกมาคือเป็นเท็จครับ

b0=iCustom(NULL,0,"FXSmooth EURUSD",0,0); อันนี้นี่ส่งออกมาเป็น ค่าปัจจุบันและสองพันล้านใช่ไหมครับ
และจะทราบได้อย่างไรว่าบอกให้ขายหรือซื้อครับ (จำในนั้นว่ามีแค่ green / red = ซื้อขายไมาใช่เหรอ)
ส่วน
 b2=iCustom(NULL,0,"FXSmooth EURUSD",2,0); อันนี้นี่ ส่งเป็นค่า stoploss ใช่ไหมครับ

ขอบคุณที่ตอบครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: ช่วยดูที่เขียนที
« Reply #6 on: กันยายน 28, 2010, 10:35:02 pm »
ทั้ง 2 อัน ส่งค่าออกมาได้ทั้งค่าปัจจุบันและค่า 2 พันล้านครับ ถ้า มันส่งค่าปัจจุบันแสดงว่ามันเป้นจริง ถ้า buffer ตัวนี้เก็บค่าสีแดงเอาไวก็จะแสดงสีแดงบน หน้าจอครับแต่ถ้ามันเป็นค่า 2000 ล้านมันก็แสดงว่าเป็นเท็จ จะไม่ได้แสดงสีแดงบนหน้าจอ ถ้าเกิดเหตุการณ์แบบนี้ buffer อีกตัวที่เก็บค่าสีเขียวจะเป็นจริงซึ่งจะแสดงค่าปัจจุบันออกมา แล้วก็จะแสดงสีเขียวบนหน้าจอครับ

TvT

  • Full Member
  • ***
  • Posts: 133
Re: ช่วยดูที่เขียนที
« Reply #7 on: กันยายน 28, 2010, 10:52:35 pm »
ทั้ง 2 อัน ส่งค่าออกมาได้ทั้งค่าปัจจุบันและค่า 2 พันล้านครับ ถ้า มันส่งค่าปัจจุบันแสดงว่ามันเป้นจริง ถ้า buffer ตัวนี้เก็บค่าสีแดงเอาไวก็จะแสดงสีแดงบน หน้าจอครับแต่ถ้ามันเป็นค่า 2000 ล้านมันก็แสดงว่าเป็นเท็จ จะไม่ได้แสดงสีแดงบนหน้าจอ ถ้าเกิดเหตุการณ์แบบนี้ buffer อีกตัวที่เก็บค่าสีเขียวจะเป็นจริงซึ่งจะแสดงค่าปัจจุบันออกมา แล้วก็จะแสดงสีเขียวบนหน้าจอครับ

ไม่เข้าใจครับ แล้วจะเอาไปใส่คำสั่งซื้อขายยังไงครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: ช่วยดูที่เขียนที
« Reply #8 on: กันยายน 29, 2010, 01:24:35 am »
ก็ง่ายๆๆครับ ทำความเข้าใจ นิดหน่อยเองครับ ตัวอย่างนะครับ buffer0 เก็บค่าเส้นสีเขียวเอาไว ที่นี้เราใช้กับ GU นะครับ ราคา GU ปัจจุบันคือ 1.5800  ที่นี้นะครับเราทราบว่าค่าที่มันส่งออกมามี 2 ค่าคือ ค่าที่เป็นค่าปัจจุบัน กับ ค่า 2000 ล้าน ใช้ไหมครับที่นี้ ถ้าเราต้องการว่าถ้า อินดิเคเตอร์เปลี่ยนสีเป็นเขียวแล้วเราจะเปิด buy ให้เราเขียนเงื่อนไขแบบนี้

b0=iCustom(NULL,0,"FXSmooth EURUSD",0,0);

if(b0 < 1000) // ตรงนี้ที่ผมกำหนดว่า b0 < 10 ก้เพราะว่าผมใช้กับค่าเงิน GU ซึงราคาปัจจุบันมันแค่ 1.6800 เท่านั่น ไม่มีทางมากกว่า 1000 แน่นอนครับซึ่งถ้าค่ามันออกมาเป็น 2000 ล้านเงื่อนไขนี้ก้ไม่เป็นจริงแน่ๆๆครับ
{
 
   //ตรงนี้ให้ใส่คำสั่งเปิด buy ครับ

}

TvT

  • Full Member
  • ***
  • Posts: 133
Re: ช่วยดูที่เขียนที
« Reply #9 on: กันยายน 29, 2010, 06:18:53 am »
แล้วจุดเริ่มต้นครับ
คือตอนเปิดโปรแกรม หรือหลัง restart เครื่องจะทราบอย่าไงรว่าเขียว หรือแดงอยู่ ที่ admin บอกคือจุดเปลี่ยนเขียวไปแดง แต่ตอนเปิดจะใช้อะไร detect  ครับ

ขอบคุณครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: ช่วยดูที่เขียนที
« Reply #10 on: กันยายน 29, 2010, 02:45:10 pm »
static double check=0;
int start()
{     
    double  b0=iCustom(NULL,0,"FXSmooth EURUSD",0,0);
    double  b2=iCustom(NULL,0,"FXSmooth EURUSD",2,0);

if(b0 < 1000 && check==0) // ตรวจสอบทิศทางตอนเปิด EA
{
 
  check=1; // ตรวสอบได้ว่าปัจจุบันเป็นเส้นสีเขียว
 return (0);

}
       
   if(b0 > 1000 && check==0) // ตรวจสอบทิศทางตอนเปิด EA
{
 
   check=2; //ตรวจสอบได้วาปัจจุบันเส้นสีแดง
   return (0);
}   

       
if(b0 < 1000 && check==2) // ใช้ตรวจสอบถ้า จากสีแดงเปลี่ยนเป็นสีเขียว
{
 
   //เปิดคำสั่ง buy

}


  if(b0 > 1000 && check==1) // ใช้ตรวจสอบถ้า จากสีเขียวเป้นสีแดง
{
 
   //เปิดคำสัง sell
}   


       
        return (0);
 }