Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: รบกวนถามเรื่องการส่งค่าจาก indicator น่ะครับ  (Read 9214 times)

mildassassin

  • Jr. Member
  • **
  • Posts: 59
ไม่ทราบว่ามีวิธีไหนมั๊ยครับที่จะทำให้ indicator ที่เราใช้ ส่งค่ามาให้กับ ea ที่เราเขียนขึ้นน่ะครับ
รบกวนถามเท่านี้ก่อนนะครับ
ขอบคุณครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
วิธีพื้นฐานเลยคือใช้ icustom  เพราะ อินเคอเตอร์ส่วนใหญ่จะมีการส่งค่าออกมาในรูปแบบของ buffer อยู่แล้วครับ หากอินตัวนั่น ผู้สร้างเค้าไม่ได้มีการส่งค่าออกมาตรงนี้เราต้องเข้าไปจัดการ code ให้มีการส่งค่าออกมาเพือ่นที่จะนำไปใช้บน EA ได้ครับ

TvT

  • Full Member
  • ***
  • Posts: 133
ถามมั่งครับ

1.    จาก indicator FXsmooth (แนบข้างล่าง) ผมสามารถแก้แค่จากที่ให้โชว์สัญญาณเป็น EA ให้ขายแบบนี้แทนได้หรือไม่ ถ้าไม่ได้จะนำไปใช้อย่างไร
      if (g_ibuf_84[1] < g_ibuf_84[2] && g_ibuf_84[2] >= g_ibuf_84[3] && High[0] == Low[0] && High[0] == Close[0]  && High[0] == Low[0])
   {
      ld_16 = High[iHighest(Symbol(), 0, MODE_HIGH, 4, 0)] + l_iatr_8 / 2.0;
            if ((total > 0) && (OrderType() == OP_BUY))
            {
            OrderClose(OrderTicket(),OrderLots(),Bid,0,Red);
            Print("sale");
            return(0);
            }
            if ((total == 0)
            {
            ticket = OrderSend(Symbol(),OP_SELL,1,Bid,0,ld_16,0,"sell",0,0,Red);
            OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
            Print("sell");
            return(0);
            }
   }   
2.   ค่าที่ได้จาก FXsmooth (ld_16) ที่ใช้ stoploss มีค่าเป็นหลัก 1.xxxxxxxxx , เราจะดึงค่ามาใช้แค่สี่หลัก อย่างไร (1.xxxx)

ขอบคุณครับ file  แนบมาละ

mildassassin

  • Jr. Member
  • **
  • Posts: 59
วิธีพื้นฐานเลยคือใช้ icustom  เพราะ อินเคอเตอร์ส่วนใหญ่จะมีการส่งค่าออกมาในรูปแบบของ buffer อยู่แล้วครับ หากอินตัวนั่น ผู้สร้างเค้าไม่ได้มีการส่งค่าออกมาตรงนี้เราต้องเข้าไปจัดการ code ให้มีการส่งค่าออกมาเพือ่นที่จะนำไปใช้บน EA ได้ครับ

หมายถึงค่าที่กำหนดเป็นตัวแปรใน indicator ใช่มั๊ยครับ
แล้วต้องทำยังไงถึงจะเอามาใช้งานได้ครับ
แล้วพอจะมีตัวอย่างบ้างมั๊ยครับ
เผื่อจะเอาไปเป็นตัวอย่างในการแก้ไขน่ะครับ
ขอบคุณครับ
« Last Edit: กันยายน 20, 2010, 11:53:38 pm by mildassassin »

linconz

  • VIP
  • Sr. Member
  • *
  • Posts: 357
 
2.   ค่าที่ได้จาก FXsmooth (ld_16) ที่ใช้ stoploss มีค่าเป็นหลัก 1.xxxxxxxxx , เราจะดึงค่ามาใช้แค่สี่หลัก อย่างไร (1.xxxx)

ขอบคุณครับ file  แนบมาละ


ใช้ฟังก์ชั่น NormalizeDouble(x,y);
x=ตัวแปรที่เก็บค่าที่ต้องการ
y=ตัวเลขจำนวนหลัก

TvT

  • Full Member
  • ***
  • Posts: 133
 
2.   ค่าที่ได้จาก FXsmooth (ld_16) ที่ใช้ stoploss มีค่าเป็นหลัก 1.xxxxxxxxx , เราจะดึงค่ามาใช้แค่สี่หลัก อย่างไร (1.xxxx)

ขอบคุณครับ file  แนบมาละ


ใช้ฟังก์ชั่น NormalizeDouble(x,y);
x=ตัวแปรที่เก็บค่าที่ต้องการ
y=ตัวเลขจำนวนหลัก


มีตัวอย่างไหมครับ เช่น  normalizedouble (Id_16,5);
แบบนี้จะได้เป็น (จาก 1.30204376)1.3020 ใช่ไหมครับ

mildassassin

  • Jr. Member
  • **
  • Posts: 59
 
2.   ค่าที่ได้จาก FXsmooth (ld_16) ที่ใช้ stoploss มีค่าเป็นหลัก 1.xxxxxxxxx , เราจะดึงค่ามาใช้แค่สี่หลัก อย่างไร (1.xxxx)

ขอบคุณครับ file  แนบมาละ


ใช้ฟังก์ชั่น NormalizeDouble(x,y);
x=ตัวแปรที่เก็บค่าที่ต้องการ
y=ตัวเลขจำนวนหลัก

ฟังก์ชั่น NormalizeDouble(x,y); นี่เป็นฟังก์ชั่นที่ใช้ในการอ้างอิงค่าที่ได้จาก indicator ไปใช้กับ ea ใช่รึัเปล่าครับ
หรือว่าผมเข้าใจผิดกันแน่ครับ
ขอบคุณครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
NormalizeDouble(x,y) เป็นฟังกชั่นใช้ตัดจุดทศนิยมครับเช่น     
x = 1.123456789;
y=NormalizeDouble(x,5);
y=1.12345
ครับ