#03 นำข้อมูล Dukascopy ไปยัง MT4
9 ตุลาคม 2025:记
การแปลงข้อมูล Dukascopy ด้วย Python
เอาล่ะ เราจะเปลี่ยนข้อมูลประวัติ Dukascopy ให้ตรงกับฟอร์แมตข้อมูลประวัติที่ดาวน์โหลดจาก MT4 แล้วแปลงด้วย Python กันนะจ๊ะ!
ด้านล่างคือซอร์สโค้ด Python
import pandas as pd
def convert_dukascopy_to_mt4(input_file, output_file):
"""
ฟังก์ชันเปลี่ยนฟอร์แมตข้อมูล Dukascopy ให้เป็น MT4
"""
try:
# อ่านไฟล์ CSV ที่ไม่มีเฮดเดอร์ และคั่นด้วยคอมม่า
df = pd.read_csv(
input_file,
header=None,
names=['datetime', 'open', 'high', 'low', 'close', 'volume'],
dtype={'datetime': str, 'open': str, 'high': str, 'low': str, 'close': str, 'volume': str},
on_bad_lines='skip'
)
# แยกวันและเวลาออกจากคอลัมน์ datetime
dt_split = df['datetime'].str.split(' ', expand=True)
df['date'] = dt_split.iloc[:, 0]
df['time'] = dt_split.iloc[:, 1].str.slice(stop=5)
# แปลงรูปแบบวันที่จาก dd.mm.yyyy เป็น yyyy.mm.dd
df['date'] = pd.to_datetime(df['date'], format='%d.%m.%Y').dt.strftime('%Y.%m.%d')
# ตัดทศนิยมของปริมาณการซื้อขายลง (วิธีที่มั่นคงกว่า)
df['volume'] = pd.to_numeric(df['volume'], errors='coerce').fillna(0).astype(int)
# เรียงคอลัมน์ใหม่ให้ตรงกับฟอร์แมต MT4
df = df[['date', 'time', 'open', 'high', 'low', 'close', 'volume']]
# บันทึกเป็น CSV ไฟล์ใหม่
df.to_csv(output_file, index=False, header=False, encoding='utf-8')
print(f"การแปลงเสร็จสิ้น: ได้สร้างไฟล์ใหม่ {output_file} แล้ว")
except FileNotFoundError:
print(f"ข้อผิดพลาด: ไม่พบไฟล์ โปรดตรวจสอบเส้นทาง: {input_file}")
except Exception as e:
print(f"เกิดข้อผิดพลาด: {e}")
# ตั้งชื่อไฟล์
input_file_name = "入力ファイル名前.csv"
output_file_name = "出力ファイル名前.csv"
# เรียกฟังก์ชัน
convert_dukascopy_to_mt4(input_file_name, output_file_name)
เรียบร้อยไปด้วยดี! \(°∀°)/
... ก็มีพลาดไปประมาณ 3 ครั้ง ก่อนที่จะแก้ไขซอร์สใหม่ (^_^;)
นำเข้า MT4
■ เปิด MT4 และตัดการเชื่อมต่อกับบัญชี
ออก
เพื่อให้ MT4 ไม่อัปเดตข้อมูลประวัติ
ของมัน
■ จากเมนูเลือก “Tools” →
“History Center” เปิดขึ้น
■ จากต้นไม้ด้านซ้ายเลือก USDJPY และเลือกกรอบเวลา 1 ชั่วโมง (H1)
■ คลิกปุ่ม “Import” และ
เลือกไฟล์ CSV ที่ผ่านการแปลงเป็น 1 ชั่วโมง
จากนั้นคลิก “OK”
■ เช่นเดียวกับ daily (D1) ให้เลือกและนำเข้าไฟล์ CSV ที่แปลงแล้ว
■ รีสตาร์ท MT4
(อย่าลงชื่อเข้าใช้)
เปิดกราฟออฟไลน์ใน MT4
■ ตรวจสอบว่า MT4 อยู่ในสถานะออฟไลน์อย่างสมบูรณ์
■ จากแถบเมนู MT4 คลิก “File”
■ เลือกเมนูย่อย “Offline Charts”
ในรายการที่แสดง มี H1 และ Daily ของ USDJPY ที่นำเข้าไว้แล้ว ♪ (ˊᗜˋ)
เหตุผลคือ MT4 อ่านไฟล์ CSV ที่นำเข้าแล้วของฉันแล้วแปลงเป็นไฟล์ .hst เรียบร้อย
หายเหนื่อยแทน… ตอนนี้มาถึงจุดนี้ได้แล้วนะ
ครั้งถัดไป:
จะรัน “ EA แบบชิ้นเดียว” เพื่อท้าทายการทดสอบย้อนหลัง
……อาจจะ…(^▽^;)
× ![]()