กองทุน SPDR GOLD SHARES
ถือทองก่อนหน้า
ถือทองล่าสุด
0.00
*หน่วยตัน / ราคาอ้างอิงล่าสุดจากสมาคมค้าทองคำ
สถิติกองทุน SPDR
ราคาทองคำแท่ง 96.5%
ราคาอ้างอิงล่าสุดจากสมาคมค้าทองคำ
ครั้งที่
ราคาก่อนหน้า
ราคาล่าสุด
0
(หน่วย บาท*) / อัปเดตล่าสุดเมื่อวันที่ 13 ก.ค. 2566 เวลา 13:04 น.
สถิติราคาทองคำ ไทย

สอนการเขียน EA Forex การสร้าง EA นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 2 อ่านค่าจาก Indicator เพื่อสร้างF

  • 5 replies
  • 24,938 views
*

iRuler

  • 1,282
สอนการเขียน EA Forex การสร้าง EA นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 2 อ่านค่าจาก Indicator เพื่อสร้าง Forex EA

Indicator ใน MT4 นั้นมีสองแบบคือ แบบที่ติดตั้งมาพร้อมกับ MT4 เลย เช่น Moving Average, RSI, MACD เป็นต้น
การอ่านค่าจาก Indicator เหล่านี้ ตัว MT4 จะมี function มาให้เราเรียกใช้เลย เช่นต้องการอ่านค่าจากเส้น EMA 14
เราก็จะใช้ function ชื่อว่า iMA()

ตัวอย่างเช่น เราต้องการอ่านค่าจากเส้น EMA 21 มาเก็บไว้ในตัวแปรชื่อ ma
double ma = iMA("UERUSD", PERIOD_H1, 14, 0, MODE_EMA, PRICE_CLOSE, 0);

ตัวอย่างการอ่านค่าจาก MACD มาเก็บไว้ในตัวแปรชื่อ macd
double macd = iMACD("EURUSD", 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0);

แน่นอนว่ายังมีคำสั่งที่ใช้ในการอ่านค่าจากอินดิเคเตอร์อีกหลายคำสั่ง ท่านสามารถกดปุ่ม F1 เพื่อเปิดหน้าต่าง Help เพื่อศึกษาเพิ่มเติมได้


ส่วนการอ่านค่าจากอินดิเคเตอร์ที่เรานำมาเพิ่มให้ MT4 เอง จะใช้คำสั่งเดียวกันหมดคือ iCustom() รูปแบบคำสั่งเป็บแบบนี้:

[/size]
โค๊ด [Select]

double  iCustom(
   string       symbol,           // symbol
   int          timeframe,        // timeframe
   string       name,             // path/name of the custom indicator compiled program
   ...                            // custom indicator input parameters (if necessary)
   int          mode,             // line index
   int          shift             // shift
   );


ผมจะยกตัวอย่างการอ่านค่า indicator ชื่อ HBH นะครับ
Input parameter ของ HBH คือ 1 และ 15 นำค่า parameter มาใส่ตรงตัวเลขสีแดงครับ

mode (line index) ดูได้จากโปรแกรม mt4 (ในรูป กรอบสีเขียว) ครับ
ให้กด ctrl+d จะมีหน้าต่าง Data ขึ้นมาแบบนี้ แล้วกดปุ่มกลางของเม้าส์ cursor จะกลายเป็น กากบาท เอาเม้าส์ไปวางบนแท่งที่ต้องการอ่านค่าได้ครับ
ให้ดูลำดับตัวเลขในกรอบสี่เหลี่ยมสีเขียวนะครับ อยากได้ค่าไหนก็ใส่เลขลำดับตามนั้นตรงตัวเลขสีเขียวครับ
ส่วนตัวเลขในกรอบสีเหลืองคือตำแหน่งของแท่งที่เราต้องการอ่านค่าครับ นำตัวเลขนี้ไปใส่ในตัวสีส้มของคำสั่ง iCustom() ครับ

ตัวอย่างคำสั่งตามรูปข้างบน:

double hbh0 = iCustom(Symbol(), PERIOD_H4, "HBH", 1, 15, 0, 1);
double hbh1 = iCustom(Symbol(), PERIOD_H4, "HBH", 1, 15, 1, 1);
double hbh2 = iCustom(Symbol(), PERIOD_H4, "HBH", 1, 15, 2, 1);
double hbh3 = iCustom(Symbol(), PERIOD_H4, "HBH", 1, 15, 3, 1);

ทำไมผมถึงอ่านตำแหน่งแท่งที่ 1? ไม่อ่านที่แท่ง 0?
เพราะตำแหน่ง 0 คือเรายังไม่รู้แน่ชัดว่าตอนปิดแท่งมันจะเป็นสีอะไร
ในการอ่านค่า ใน ea จึงอ่านย้อนหลังไป 1 แท่งครับ

indicator ตัวนี้ผมสังเกตเห็นว่าจะเป็นสีแดงถ้า ค่าตำแหน่ง 0 (hbh0) มากกว่าค่าของตำแหน่งที่ 1,2 และ 3
และจะเป็นสีน้ำเงินถ้าค่าของตำแหน่ง 0 น้อยกว่า ตำแหน่ง 1, 2 หรือ 3 จึงเขียนคำสั่งได้แบบนี้:


   [/size]
โค๊ด [Select]
if(hbh0>hbh1 && hbh0>hbh2 && hbh0>hbh3)
      Print("Red");
   else
      Print("Blue");



ถ้าอยากพิสูจน์ ก็ลองอ่านค่าจากแท่งที่ผมลากเส้นสีแดงไว้ครับ

จากที่อธิบายไปข้างต้น แสดงว่าถ้าเราต้องการจะตรวจสอบการเปลี่ยนสีของ indy เราจะต้องอ่านค่าจากแท่งที่ 1 และ 2 มาเปรียบเทียบกันว่าสองแท่งนี้สีต่างกันหรือไม่
นั่นแสดงว่า ถ้าอ่านค่าที่ H1กว่าจะรู้ว่าสีเปลี่ยน เราจะเสียเวลาไปถึง 2 ชั่วโมง..
หวังว่าจะไม่งงนะครับ
g*/-


หัวข้อที่เกี่ยวข้องกับการเขียน EA Forex

การเขียน EA Forex บทที่ 1 : การเขียนEA Forex การสร้าง EA นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 1 ปูพื้นฐานกันก่อน Forex EAตัวแรก

การเขียน EA Forex บทที่ 2 : การเขียน EA Forex การสร้าง EA นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 2 อ่านค่าจาก Indicator forex

การเขียน EA Forex บทที่ 3 : การเขียน EA Forex นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 3 การเขียนคำสั่งพื้นฐานที่เกี่ยวกับ Account

การเขียน EA Forex บทที่ 4 : การเขียน EA Forex นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 4 การเขียนคำสั่งที่เกี่ยวกับ Order ของ EA Forex

การเขียน EA Forex บทที่ 5 :การเขียน EA Forex นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 5 การเขียน EA forex เพื่อให้การแสดงผลบนกราฟ

การเขียน EA Forex บทที่ 6 : การเขียน EA Forex นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 6 สร้าง EA Forex ให้เปิด Order จากเส้น EMA

การเขียน EA Forex บทที่ 7 :การเขียน EA Forex นั้นง่ายใครๆ ก็เขียนได้ - ตอนที่ 7 การทดสอบ Back Test EA Forex 99.00 %

VPS Forex สำหรับ รัน Forex EA :ถ้าจะใช้ VPS forex รัน EA แนะนำที่นี่ครับ SocialVPS.Net ค่า Ping ต่ำและราคาถูกมากครับ

และสุดท้าย Myfxbook :อย่าลืมเอา Port ของท่าน ใส่ ใน Myfxbook เพื่อติดตามผลนะครับ

 (TH)**

*

rider

  • 22
ขอบคุณมาก ๆ ครับ thank**

*

rider

  • 22
เรียนถาม ท่าน iRuler

ผม rider ลองเขียน EA ดูแล้ว โดยมีจุดประสงค์ คือ
BUY เมื่อ จุดไข่ปลา น้อยกว่า แท่งกระดูงู และ histogram มากกว่า 0
ออก order เมื่อจุดไข่ปลา มากกว่า แท่งกระดูกงู และ histogram น้อยกว่า 0

SELL เมื่อ จุดไข่ปลา มากกว่า แท่งกระดูกงู และ histogram น้อยกว่า 0
ออก order เมื่อจุดไข่ปลา น้อยกว่า แท่งกระดูงู และ histogram มากกว่า 0

แต่ลองทดสอบแล้วผลปรากฏว่า ว่างเปล่า..............ไม่เกิดอะไรขึ้นเลย    55555
ผมก็เลยส่ง code และ indicator มาให้ท่าน เพื่อขอความอนุเคราะห์ ตรวจสอบ แก้ไขให้ด้วยครับ

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

*

iRuler

  • 1,282
มันไม่ถูกหลายจุดน่ะครับท่าน Pigig


ตัว HBB มีสองค่าที่เราต้องนำมาเปรียบเทียบกันเองนะครับ



double HBB_UP = iCustom(Symbol(),PERIOD_CURRENT,"HBB",20,1,1.0,1,1,1000,false,2,1);
double HBB_DN = iCustom(Symbol(),PERIOD_CURRENT,"HBB",20,1,1.0,1,1,1000,false,3,1);



if(HBB_UP>0 && HBB_DN<0)
//buy
else if(HBB_UP<0 && HBB_DN>0)
//sell


OrderSend ก็ไม่ถูกนะครับ ท่านเปิด lot 0 ทุกที่เลย จะต้องเป็น


int sendbuy = OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,0,"",0,0,Green);


(TH)**


*

rider

  • 22
 thank**
Thor 1