ทำไมแท่งเทียน MT5 เดียวกันถึงดูต่างกันได้บนบัญชีโบรกเกอร์ต่างกัน

ทำไมแท่งเทียน MT5 ค่า SMA สัญญาณอินดิเคเตอร์ และพฤติกรรม EA จึงอาจต่างกันระหว่างบัญชีโบรกเกอร์ แม้ชื่อสัญลักษณ์จะดูเหมือนกันก็ตาม

ทำไมแท่งเทียน MT5 ถึงอาจแตกต่างกัน

แท่งเทียนไม่ใช่ข้อมูลตลาดสากลเสมอไป

เมื่อผู้คนเริ่มสร้างบอทเทรดหรืออินดิเคเตอร์ใน MetaTrader 5 ครั้งแรก มักจะคิดได้ง่ายว่าแท่งเทียนคือข้อมูลตลาดแบบสากล

ตัวอย่างเช่น คุณอาจคิดว่า:

"แท่ง H1 เวลา 20:00 ของวันที่ 6 พฤษภาคม 2026 ควรเหมือนกันทุกที่"

แต่ในทางปฏิบัติ นั่นไม่ได้เป็นจริงเสมอไป

คุณอาจมีเทอร์มินัล MT5 สองตัวรันอยู่คนละประเทศ ทั้งคู่แสดงแท่งเทียนเหมือนกัน แล้วคุณไปเปิดอีกบัญชีกับโบรกเกอร์และสัญลักษณ์ที่ดูเหมือนกัน แต่จู่ ๆ ค่าเปิด/ปิด ค่า SMA หรือสัญญาณอินดิเคเตอร์กลับต่างกันเล็กน้อย

บทความนี้อธิบายว่าทำไมจึงเกิดขึ้น.

ความเข้าใจผิด: MT5 ได้รับแท่งเทียนที่ปิดสมบูรณ์แล้ว

กราฟสดถูกสร้างจากทิกและโควต

ความเชื่อที่พบบ่อยคือ MetaTrader 5 ได้รับข้อมูลแท่งเทียนแบบนี้:

โบรกเกอร์ส่ง:

แท่ง H1 เวลา 20:00
Open = 3300.20
High = 3312.50
Low = 3298.10
Close = 3306.80

แต่โดยปกติกราฟสดไม่ได้ทำงานแบบนั้น

บนกราฟสด MT5 จะได้รับสตรีมของการอัปเดตราคาจากโบรกเกอร์ การอัปเดตเหล่านี้มักเรียกว่า ticks หรือ quotes

จากนั้นเทอร์มินัลจะใช้ราคาที่เข้ามาเพื่อสร้างแท่งเทียนปัจจุบัน

ดังนั้นแทนที่จะได้รับแท่ง H1 ที่สมบูรณ์ MT5 จะได้รับการอัปเดตราคาสดแบบนี้:

20:00:01 price = 3300.20
20:00:08 price = 3301.10
20:01:15 price = 3302.70
20:02:03 price = 3299.80
...
20:59:47 price = 3306.80

จากนั้น MT5 จะสร้างแท่งเทียนจากราคานั้น.

แท่งเทียนสดถูกสร้างอย่างไร

เวลาในแท่งเทียนคือจุดเริ่มต้นของช่วงเวลา

สมมติว่าเรากำลังดูแท่ง H1 ที่มีเวลา:

2026.05.06 20:00

นั่นไม่ได้หมายความว่าแท่งเทียนเกิดขึ้นเฉพาะตอน 20:00 เป๊ะ ๆ เท่านั้น

มันหมายความว่าแท่งเทียนครอบคลุมช่วงเวลาที่เริ่มที่ 20:00 และสิ้นสุดก่อนที่แท่ง H1 ถัดไปจะเริ่ม

พูดง่าย ๆ คือ:

แท่งเวลา 20:00 = ราคาตั้งแต่ 20:00:00 จนถึงก่อน 21:00:00

แท่งเทียนถูกสร้างดังนี้:

Open = ราคาแรกที่ได้รับในชั่วโมงนั้น
High = ราคาสูงสุดที่ได้รับในชั่วโมงนั้น
Low = ราคาต่ำสุดที่ได้รับในชั่วโมงนั้น
Close = ราคาล่าสุดที่ได้รับในชั่วโมงนั้น

ขณะที่แท่งเทียนยังสดอยู่ ค่า close ยังไม่ใช่ค่าสุดท้าย

ค่า close จะเปลี่ยนไปทุกครั้งที่มีราคาใหม่เข้ามา.

ตัวอย่างแท่งเทียนที่กำลังก่อตัว

ค่า close จะเปลี่ยนจนกว่าแท่งเทียนจะสมบูรณ์

ตัวอย่างเช่น:

20:00:01
Open = 3300.20
High = 3300.20
Low = 3300.20
Close = 3300.20

20:10:00
Open = 3300.20
High = 3305.40
Low = 3299.80
Close = 3303.10

20:45:00
Open = 3300.20
High = 3312.50
Low = 3298.10
Close = 3309.70

20:59:47
Open = 3300.20
High = 3312.50
Low = 3298.10
Close = 3306.80

เมื่อแท่ง H1 ถัดไปเริ่มขึ้น แท่งก่อนหน้าจะถือว่าปิดแล้ว

ในทางปฏิบัติ มักเกิดขึ้นเมื่อมีทิกแรกของชั่วโมงถัดไปเข้ามา.

ใครเป็นคนกำหนดค่าปิดสุดท้ายของแท่งเทียน?

ฟีดจากโบรกเกอร์และเวลาเซิร์ฟเวอร์เป็นตัวกำหนดกราฟ

ค่าปิดสุดท้ายของแท่งเทียนถูกกำหนดโดยฟีดราคาสดและเวลาเซิร์ฟเวอร์ของโบรกเกอร์

เทอร์มินัล MT5 ของคุณสร้างกราฟในเครื่อง แต่สร้างจากข้อมูลที่ส่งมาจากเซิร์ฟเวอร์ของโบรกเกอร์

ดังนั้นแท่งเทียนสุดท้ายจึงเป็นผลรวมของ:

ฟีดราคาจากโบรกเกอร์
+ เวลาเซิร์ฟเวอร์ของโบรกเกอร์
+ สเปกของสัญลักษณ์
+ การตั้งค่าเซสชันการซื้อขาย
+ สตรีมทิก/โควตที่เทอร์มินัลได้รับ

ตำแหน่งทางกายภาพของคุณโดยทั่วไปไม่ค่อยมีผล

เทรดเดอร์ในลอนดอนและเทรดเดอร์ในแอฟริกาใต้สามารถเห็นแท่งเทียนเดียวกันได้เป๊ะ หากเชื่อมต่อไปยังเซิร์ฟเวอร์โบรกเกอร์เดียวกัน ใช้ประเภทบัญชีเดียวกัน และใช้สัญลักษณ์เดียวกัน

แต่หากเป็นคนละเซิร์ฟเวอร์โบรกเกอร์หรือคนละเขตอำนาจของบัญชี ก็อาจได้แท่งเทียนที่ต่างกัน.

ตัวอย่าง: โบรกเกอร์เดียวกัน แต่ภูมิภาคบัญชีต่างกัน

สภาพแวดล้อมของบัญชีสำคัญกว่าตำแหน่งของเทอร์มินัล

สมมติว่าคุณมีเทอร์มินัล MT5 สามตัว:

เทอร์มินัล A:
สถานที่: ลอนดอน
บัญชีโบรกเกอร์: Deriv South Africa
สัญลักษณ์: XAUUSD

เทอร์มินัล B:
สถานที่: แอฟริกาใต้
บัญชีโบรกเกอร์: Deriv South Africa
สัญลักษณ์: XAUUSD

เทอร์มินัล C:
สถานที่: ลอนดอน
บัญชีโบรกเกอร์: Deriv UAE
สัญลักษณ์: XAUUSD

เทอร์มินัล A และเทอร์มินัล B อาจแสดงค่าแท่งเทียนเหมือนกัน เพราะเชื่อมต่อกับสภาพแวดล้อมข้อมูลฝั่งโบรกเกอร์เดียวกัน

พวกมันอาจมี:

  • เซิร์ฟเวอร์เดียวกัน
  • ฟีดสัญลักษณ์เดียวกัน
  • โซนเวลาของเซิร์ฟเวอร์เดียวกัน
  • สเปกสัญลักษณ์เดียวกัน
  • การสร้างแท่งเทียนแบบเดียวกัน

แต่เทอร์มินัล C อาจต่างออกไป เพราะบัญชี UAE อาจเชื่อมต่อกับเซิร์ฟเวอร์หรือสภาพแวดล้อมการเทรดของ Deriv ที่ต่างกัน

บัญชีนั้นอาจมี:

  • เวลาเซิร์ฟเวอร์ต่างกัน
  • ฟีดสภาพคล่องต่างกัน
  • การตั้งค่าสัญลักษณ์ต่างกัน
  • โมเดลสเปรดต่างกัน
  • เซสชันการซื้อขายต่างกัน
  • การกรองโควตต่างกัน
  • ข้อมูลย้อนหลังต่างกัน

แม้ชื่อสัญลักษณ์จะดูเหมือนกัน แต่สภาพแวดล้อมข้อมูลจริงอาจไม่เหมือนกัน.

ปัญหาเรื่องเวลา (timestamp)

แท่งเวลา 20:00 คือเวลาเซิร์ฟเวอร์ของโบรกเกอร์

หนึ่งในแหล่งความสับสนที่ใหญ่ที่สุดคือเวลาแท่งเทียน

เมื่อ MT5 แสดงแท่ง H1 ที่:

20:00

เวลานั้นอ้างอิงจากเวลาเซิร์ฟเวอร์ของโบรกเกอร์ ไม่จำเป็นต้องตรงกับเวลาในคอมพิวเตอร์ของคุณ

ดังนั้นสองบัญชีอาจแสดงแท่งที่ติดป้ายว่า:

20:00

เหมือนกัน แต่แท่งเหล่านั้นอาจอ้างถึงช่วงเวลา UTC ในโลกจริงที่ต่างกัน

ตัวอย่างเช่น:

เซิร์ฟเวอร์โบรกเกอร์ A:
เวลาเซิร์ฟเวอร์ 20:00 = 18:00 UTC

เซิร์ฟเวอร์โบรกเกอร์ B:
เวลาเซิร์ฟเวอร์ 20:00 = 16:00 UTC

ทั้งสองกราฟแสดงแท่งเวลา 20:00 แต่แท่งเหล่านั้นไม่ได้ครอบคลุมชั่วโมงจริงเดียวกัน

นั่นหมายความว่า open, high, low, close และอินดิเคเตอร์ทั้งหมดอาจต่างกัน.

ทำไมไทม์เฟรมที่สูงกว่าถึงได้รับผลมากกว่า

เวลาเซิร์ฟเวอร์เป็นตัวกำหนดแท่ง H1, H4, D1 และ W1

สิ่งนี้ยิ่งสำคัญมากสำหรับไทม์เฟรมที่สูงขึ้น เช่น:

  • H1
  • H4
  • D1
  • W1

ยิ่งไทม์เฟรมสูง เวลาเซิร์ฟเวอร์ยิ่งสำคัญ

แท่ง D1 ของโบรกเกอร์หนึ่งอาจเปิดและปิดในเวลาโลกจริงที่ต่างจากแท่ง D1 ของอีกโบรกเกอร์หนึ่ง

ซึ่งอาจส่งผลต่อ:

  • จุดสูง/ต่ำรายวัน
  • การปิดแท่งรายวัน
  • ค่าเฉลี่ยเคลื่อนที่
  • ATR
  • ระดับเบรกเอาต์
  • โซนแนวรับและแนวต้าน
  • ผลการแบ็กเทสต์
  • การเข้าและออกของ EA

ทำไมค่า SMA ถึงอาจต่างกัน

อินดิเคเตอร์คำนวณจากข้อมูลแท่งเทียนเฉพาะของโบรกเกอร์

SMA ไม่ได้ถูกคำนวณจากแหล่งข้อมูลตลาดสากลใด ๆ

มันคำนวณจากค่า close ของแท่งเทียนที่มีอยู่บนกราฟนั้น ๆ

ตัวอย่างเช่น SMA 10 ช่วงบน H1 คำนวณจากค่า close ของแท่ง H1 10 แท่งล่าสุด

แบบย่อ:

SMA = ค่าเฉลี่ยของ close 10 ค่า ล่าสุด

ดังนั้นหากสองบัญชีโบรกเกอร์มีค่า close ของ H1 ต่างกันเล็กน้อย พวกมันก็จะมีค่า SMA ต่างกันเล็กน้อยด้วย

นั่นทำให้เกิดเหตุการณ์แบบนี้ได้:

บัญชี A:
ราคาปิดต่ำกว่า SMA
EA ทริกเกอร์เงื่อนไขขาย

บัญชี B:
ราคาปิดสูงกว่า SMA เล็กน้อย
EA ไม่ทริกเกอร์

ทั้งสองแพลตฟอร์มอาจทำงานถูกต้อง แค่ใช้ข้อมูลแท่งเทียนพื้นฐานที่ต่างกัน.

กลยุทธ์ที่ได้รับผลจากความต่างของแท่งเทียน

ค่า close ที่เป๊ะ ๆ สามารถเปลี่ยนสัญญาณที่เป๊ะ ๆ ได้

สิ่งนี้เกี่ยวข้องเป็นพิเศษกับกลยุทธ์ที่พึ่งพาค่า close ของแท่งเทียนแบบแม่นยำ เช่น:

  • กลยุทธ์ SMA cross
  • กลยุทธ์เบรกเอาต์
  • รูปแบบแท่งเทียนปฏิเสธราคา (rejection candle)
  • ตรรกะ swing high / swing low
  • กลยุทธ์ช่วงราคาในรายวัน (daily range)
  • ระบบกล่องที่อิง ATR

ความต่างของแท่งเทียนเพียงเล็กน้อยก็อาจมากพอที่จะเปลี่ยนสัญญาณ ฟิลเตอร์ หรือการตัดสินใจในการจัดการเทรดได้.

กราฟสด vs กราฟย้อนหลัง

แท่งปัจจุบันเปลี่ยนไปทิกต่อทิก

บนกราฟสด MT5 สร้างแท่งเทียนปัจจุบันจากทิกสดที่เข้ามา

สำหรับแท่งปัจจุบัน ใน MQL5:

iClose(_Symbol, PERIOD_H1, 0)

จะคืนค่า close สดล่าสุดของแท่ง H1 ที่กำลังก่อตัวอยู่

ค่านั้นสามารถเปลี่ยนทิกต่อทิก

ส่วนแท่งก่อนหน้าถูกเข้าถึงด้วย:

iClose(_Symbol, PERIOD_H1, 1)

นั่นคือแท่ง H1 ล่าสุดที่ปิดแล้ว

อย่างไรก็ตาม แม้ค่านั้นที่ปิดแล้วก็เดิมทีเกิดจากสตรีมทิกสดของโบรกเกอร์ มันไม่ใช่ค่ากลางสากลที่แชร์ร่วมกันโดยทุกโบรกเกอร์

มันถูกสร้างขึ้นภายในสภาพแวดล้อมของโบรกเกอร์/บัญชี/เซิร์ฟเวอร์นั้น ๆ.

ทำไมเรื่องนี้สำคัญสำหรับ Expert Advisors

โค้ดเดียวกันสามารถทำงานต่างกันบนข้อมูลที่ต่างกัน

หากคุณกำลังสร้าง EA พฤติกรรมนี้สำคัญมาก

กลยุทธ์ที่ทำงานบนเซิร์ฟเวอร์โบรกเกอร์หนึ่งอาจทำงานต่างออกไปเล็กน้อยบนอีกเซิร์ฟเวอร์หนึ่ง แม้ใช้โค้ดเดียวกันและพารามิเตอร์อินพุตเดียวกัน

ตัวอย่างเช่น:

โบรกเกอร์ A:
ค่า close ของ H1 ตัดลงต่ำกว่า SMA
EA เตรียมกล่องเบรกเอาต์

โบรกเกอร์ B:
ค่า close ของ H1 ไม่ได้ตัดลงต่ำกว่า SMA
EA ไม่ทำอะไร

หรือ:

โบรกเกอร์ A:
Daily ATR = 24.5

โบรกเกอร์ B:
Daily ATR = 26.1

ความต่างเล็กน้อยนั้นสามารถเปลี่ยน:

  • ขนาดกล่อง
  • Stop loss
  • Take profit
  • จังหวะการเข้า
  • การคำนวณความเสี่ยง
  • ความถี่ในการเทรด
  • ผลการแบ็กเทสต์
  • ผลลัพธ์จริง

นี่ไม่ได้หมายความว่า MT5 พัง

มันหมายความว่า EA ของคุณไวต่อข้อมูล

วิธีที่โบรกเกอร์สร้างแท่งเทียนเป็นส่วนหนึ่งของสภาพแวดล้อมการเทรด.

วิธีเปรียบเทียบบัญชีสองบัญชีอย่างถูกต้อง

พิมพ์ข้อมูลแท่งเทียนจริงออกมา

หากคุณต้องการเปรียบเทียบบัญชี MT5 สองบัญชี อย่าดูแค่กราฟด้วยสายตา

ให้พิมพ์ข้อมูลจริงออกมา

ตัวอย่างเช่น ใน MQL5 คุณสามารถเปรียบเทียบ:

void OnStart()
{
MqlRates rates[];
ArraySetAsSeries(rates, true);

int copied = CopyRates(_Symbol, PERIOD_H1, 0, 20, rates);

Print("Account server: ", AccountInfoString(ACCOUNT_SERVER));
Print("Symbol: ", _Symbol);
Print("TimeTradeServer: ", TimeTradeServer());

for(int i = 0; i < copied; i++)
{
Print(
"shift=", i,
" time=", TimeToString(rates[i].time, TIME_DATE | TIME_MINUTES),
" open=", DoubleToString(rates[i].open, _Digits),
" high=", DoubleToString(rates[i].high, _Digits),
" low=", DoubleToString(rates[i].low, _Digits),
" close=", DoubleToString(rates[i].close, _Digits),
" tick_volume=", rates[i].tick_volume
);
}
}

รันโค้ดนี้บนทั้งสองบัญชีแล้วเปรียบเทียบ:

  • ชื่อเซิร์ฟเวอร์
  • ชื่อสัญลักษณ์
  • เวลาแท่ง (bar timestamp)
  • Open
  • High
  • Low
  • Close
  • Tick volume

เปรียบเทียบคุณสมบัติของสัญลักษณ์ด้วย

ฟีดอาจไม่ใช่ความต่างเพียงอย่างเดียว

คุณควรเปรียบเทียบคุณสมบัติของสัญลักษณ์ด้วย:

void OnStart()
{
Print("Server: ", AccountInfoString(ACCOUNT_SERVER));
Print("Symbol: ", _Symbol);

Print("Digits: ", SymbolInfoInteger(_Symbol, SYMBOL_DIGITS));
Print("Point: ", SymbolInfoDouble(_Symbol, SYMBOL_POINT));
Print("Tick size: ", SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE));
Print("Contract size: ", SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE));
Print("Currency profit: ", SymbolInfoString(_Symbol, SYMBOL_CURRENCY_PROFIT));
}

บางครั้งความต่างไม่ได้มีแค่ฟีดแท่งเทียน

ตัวสัญลักษณ์เองอาจมีการตั้งค่าสัญญา (contract) ต่างกัน.

สรุปเชิงปฏิบัติ

แท่งเทียน MT5 เป็นของสภาพแวดล้อมโบรกเกอร์เฉพาะ

แท่งเทียน MT5 ไม่ได้เป็นแค่ "แท่งเทียนของตลาด"

มันคือ:

แท่งเทียนของสัญลักษณ์เฉพาะ,
บนเซิร์ฟเวอร์โบรกเกอร์เฉพาะ,
ใช้ฟีดราคาของโบรกเกอร์นั้น,
ใช้เวลาเซิร์ฟเวอร์ของโบรกเกอร์นั้น

ดังนั้นหากเทอร์มินัลสองตัวเชื่อมต่อกับเซิร์ฟเวอร์โบรกเกอร์และสภาพแวดล้อมบัญชีเดียวกัน โดยทั่วไปควรเห็นแท่งเทียนสดเหมือนกัน แม้เทอร์มินัลจะอยู่คนละประเทศ

แต่หากอีกบัญชีเชื่อมต่อกับเอนทิตีโบรกเกอร์ เซิร์ฟเวอร์ หรือฟีดสัญลักษณ์ที่ต่างกัน แท่งเทียนก็อาจต่างกันได้

นั่นอธิบายว่าทำไม:

บัญชี Deriv South Africa ในลอนดอน
=
บัญชี Deriv South Africa ในแอฟริกาใต้

แต่:

บัญชี Deriv UAE ในลอนดอน
!=
บัญชี Deriv South Africa ในลอนดอน

ตำแหน่งของเทอร์มินัลไม่ใช่ปัจจัยหลัก

เซิร์ฟเวอร์และฟีดของโบรกเกอร์คือปัจจัยหลัก.

ข้อสรุปสุดท้าย

กลยุทธ์ของคุณเทรด “เวอร์ชันของตลาด” ของโบรกเกอร์

สำหรับนักเทรดด้วยมือ นี่อธิบายว่าทำไมกราฟอาจต่างกันเล็กน้อยระหว่างบัญชี

สำหรับนักพัฒนา EA ยิ่งสำคัญกว่า: ความต่างของแท่งเทียนสามารถเปลี่ยนสัญญาณ แบ็กเทสต์ การเข้า การออก และความสามารถทำกำไรได้

เมื่อสร้างบอทเทรด โปรดจำไว้เสมอว่า:

กลยุทธ์ของคุณไม่ได้เทรดแค่ตลาดเท่านั้น

แต่มันกำลังเทรดเวอร์ชันของตลาดจากโบรกเกอร์.

MetaTrader 5

เรียนรู้เพิ่มเติมเกี่ยวกับ MT5 และวิธีที่เครื่องมือของ Lanami ทำงานบนแพลตฟอร์มนี้

ข้อควรพิจารณาเกี่ยวกับโบรกเกอร์

ทบทวนปัจจัยด้านโบรกเกอร์ที่อาจส่งผลต่อการส่งคำสั่ง สเปรด และพฤติกรรมการเทรดแบบเบรกเอาต์

Lanami Expert Advisor

ดูระบบเทรดเบรกเอาต์อัตโนมัติที่สร้างมาเพื่อการส่งคำสั่ง MT5 อย่างมีวินัย