Technology

Admirals — โบรกเกอร์ Forex CFD พร้อมเครื่องมือเทรดครบครัน

admirals
Admirals | SiamCafe Blog
2025-09-02· อ. บอม — SiamCafe.net· 1,219 คำ

Admirals คืออะไรและเหมาะกับนักลงทุนแบบไหน

Admirals (เดิมชื่อ Admiral Markets) เป็นโบรกเกอร์ออนไลน์ที่ให้บริการเทรด Forex, CFDs, หุ้น, ETFs, สินค้าโภคภัณฑ์และ Cryptocurrency ก่อตั้งในปี 2001 ที่ประเทศเอสโตเนีย ได้รับ license จากหลายหน่วยงานกำกับดูแลรวมถึง FCA (UK), CySEC (Cyprus), ASIC (Australia) และ EFSA (Estonia)

Admirals มีบัญชีหลายประเภทได้แก่ Trade.MT5 สำหรับเทรด Forex และ CFDs บน MetaTrader 5 มี spread เริ่มต้น 0.5 pips, Invest.MT5 สำหรับลงทุนหุ้นและ ETFs จริงโดยไม่ใช่ CFD ค่าคอมมิชชั่นเริ่มต้น $0.02 ต่อหุ้น และ Zero.MT5 สำหรับนักเทรดมืออาชีพที่ต้องการ raw spread เริ่มต้น 0.0 pips พร้อมค่าคอมมิชชั่น

จุดเด่นของ Admirals คือ เครื่องมือวิเคราะห์ที่ครบครัน มี MetaTrader Supreme Edition ที่เพิ่ม indicators และเครื่องมือพิเศษให้ฟรี มีโปรแกรมการศึกษาและ webinar สำหรับผู้เริ่มต้น ระบบ copy trading สำหรับ copy กลยุทธ์จากนักเทรดมืออาชีพ และ API สำหรับ algorithmic trading

เหมาะสำหรับนักลงทุนที่ต้องการโบรกเกอร์ที่มี regulation จากหลายประเทศ ต้องการเทรดได้หลายตลาดในบัญชีเดียว และต้องการเครื่องมือวิเคราะห์ที่ครบถ้วนบน MetaTrader platform

เปิดบัญชี Admirals และตั้งค่าแพลตฟอร์ม

ขั้นตอนการเปิดบัญชีและเตรียมพร้อมสำหรับการเทรด

# ขั้นตอนเปิดบัญชี Admirals
#
# 1. สมัครที่ https://admirals.com
#    - กรอกข้อมูลส่วนตัว (ชื่อ, email, เบอร์โทร)
#    - เลือกประเภทบัญชี (Trade.MT5, Invest.MT5, Zero.MT5)
#
# 2. ยืนยันตัวตน (KYC)
#    - อัพโหลดบัตรประชาชน/พาสปอร์ต
#    - อัพโหลดหลักฐานที่อยู่ (ใบแจ้งหนี้สาธารณูปโภค)
#    - รอ 1-2 วันทำการ
#
# 3. ฝากเงิน
#    - Bank Transfer (ฟรี, 1-3 วัน)
#    - Credit/Debit Card (ทันที)
#    - Skrill/Neteller (ทันที)
#    - ขั้นต่ำ: $100 สำหรับ Trade.MT5, $1 สำหรับ Invest.MT5

# ดาวน์โหลด MetaTrader 5
# Windows: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe
# macOS: ดาวน์โหลดจาก App Store หรือใช้ web terminal
# Linux: ใช้ Wine หรือ web terminal

# ติดตั้ง MetaTrader 5 บน Linux ด้วย Wine
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install wine64 wine32 -y
wine mt5setup.exe

# หรือใช้ Docker
docker run -d --name mt5 \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v $HOME/mt5:/root/.wine/drive_c/Program\ Files/MetaTrader\ 5 \
  scottyhardy/docker-wine \
  wine "/root/.wine/drive_c/Program Files/MetaTrader 5/terminal64.exe"

# ตั้งค่า connection
# Server: AdmiralsGroup-Live (สำหรับบัญชีจริง)
# Server: AdmiralsGroup-Demo (สำหรับบัญชีทดลอง)
# Login: หมายเลขบัญชีที่ได้รับทาง email
# Password: รหัสผ่านที่ตั้งไว้

ตั้งค่า MetaTrader 5 สำหรับเทรดกับ Admirals

ตั้งค่า MetaTrader 5 ให้เหมาะสำหรับการเทรดจริง

# ติดตั้ง MetaTrader 5 Python Package
pip install MetaTrader5 pandas numpy matplotlib

# เชื่อมต่อ MT5 จาก Python
import MetaTrader5 as mt5
import pandas as pd
from datetime import datetime

# เริ่มต้น MT5
if not mt5.initialize():
    print(f"MT5 initialize failed: {mt5.last_error()}")
    quit()

# ล็อกอินเข้าบัญชี
account = 12345678  # หมายเลขบัญชี
password = "your_password"
server = "AdmiralsGroup-Live"

if mt5.login(account, password=password, server=server):
    info = mt5.account_info()
    print(f"Account: {info.login}")
    print(f"Balance: ")
    print(f"Equity: ")
    print(f"Margin: ")
    print(f"Free Margin: ")
    print(f"Leverage: 1:{info.leverage}")
else:
    print(f"Login failed: {mt5.last_error()}")

# ดูข้อมูล symbol
symbol_info = mt5.symbol_info("EURUSD")
if symbol_info:
    print(f"\nEURUSD Info:")
    print(f"  Bid: {symbol_info.bid}")
    print(f"  Ask: {symbol_info.ask}")
    print(f"  Spread: {symbol_info.spread} points")
    print(f"  Min Lot: {symbol_info.volume_min}")
    print(f"  Max Lot: {symbol_info.volume_max}")

# ดึงข้อมูลราคาย้อนหลัง
rates = mt5.copy_rates_from_pos("EURUSD", mt5.TIMEFRAME_H1, 0, 100)
df = pd.DataFrame(rates)
df["time"] = pd.to_datetime(df["time"], unit="s")
print(f"\nLatest 5 candles:")
print(df[["time", "open", "high", "low", "close", "tick_volume"]].tail())

mt5.shutdown()

ใช้ Admirals API สำหรับ Automated Trading

สร้างระบบเทรดอัตโนมัติผ่าน MetaTrader 5 Python API

#!/usr/bin/env python3
# admirals_trader.py — Automated Trading System สำหรับ Admirals
import MetaTrader5 as mt5
import pandas as pd
import numpy as np
from datetime import datetime
import time

class AdmiralsTrader:
    def __init__(self, account, password, server="AdmiralsGroup-Demo"):
        self.account = account
        self.password = password
        self.server = server
        self.connected = False

    def connect(self):
        if not mt5.initialize():
            raise ConnectionError(f"MT5 init failed: {mt5.last_error()}")
        if not mt5.login(self.account, password=self.password, server=self.server):
            raise ConnectionError(f"Login failed: {mt5.last_error()}")
        self.connected = True
        info = mt5.account_info()
        print(f"Connected: Account {info.login}, Balance: ")

    def get_data(self, symbol, timeframe, bars=200):
        rates = mt5.copy_rates_from_pos(symbol, timeframe, 0, bars)
        df = pd.DataFrame(rates)
        df["time"] = pd.to_datetime(df["time"], unit="s")
        df.set_index("time", inplace=True)
        return df

    def calculate_signals(self, df):
        df["ema_fast"] = df["close"].ewm(span=12).mean()
        df["ema_slow"] = df["close"].ewm(span=26).mean()
        df["macd"] = df["ema_fast"] - df["ema_slow"]
        df["signal"] = df["macd"].ewm(span=9).mean()

        delta = df["close"].diff()
        gain = delta.where(delta > 0, 0).rolling(14).mean()
        loss = (-delta).where(delta < 0, 0).rolling(14).mean()
        df["rsi"] = 100 - (100 / (1 + gain / loss))

        latest = df.iloc[-1]
        prev = df.iloc[-2]

        if (latest["macd"] > latest["signal"] and
            prev["macd"] <= prev["signal"] and
            latest["rsi"] < 70):
            return "BUY"
        elif (latest["macd"] < latest["signal"] and
              prev["macd"] >= prev["signal"] and
              latest["rsi"] > 30):
            return "SELL"
        return "HOLD"

    def place_order(self, symbol, order_type, lot=0.01, sl_pips=50, tp_pips=100):
        info = mt5.symbol_info(symbol)
        if not info:
            print(f"Symbol {symbol} not found")
            return None

        point = info.point
        price = info.ask if order_type == "BUY" else info.bid
        sl = price - sl_pips * point if order_type == "BUY" else price + sl_pips * point
        tp = price + tp_pips * point if order_type == "BUY" else price - tp_pips * point

        request = {
            "action": mt5.TRADE_ACTION_DEAL,
            "symbol": symbol,
            "volume": lot,
            "type": mt5.ORDER_TYPE_BUY if order_type == "BUY" else mt5.ORDER_TYPE_SELL,
            "price": price,
            "sl": round(sl, info.digits),
            "tp": round(tp, info.digits),
            "deviation": 10,
            "magic": 234000,
            "comment": "admirals_bot",
            "type_time": mt5.ORDER_TIME_GTC,
            "type_filling": mt5.ORDER_FILLING_IOC,
        }

        result = mt5.order_send(request)
        if result.retcode == mt5.TRADE_RETCODE_DONE:
            print(f"Order placed: {order_type} {lot} {symbol} @ {price}")
            return result
        else:
            print(f"Order failed: {result.retcode} - {result.comment}")
            return None

    def get_positions(self):
        positions = mt5.positions_get()
        if positions:
            for p in positions:
                profit_str = f"+" if p.profit >= 0 else f"-"
                print(f"  {p.symbol} {'BUY' if p.type==0 else 'SELL'} "
                      f"{p.volume} lots @ {p.price_open} P/L: {profit_str}")
        return positions

    def close_position(self, ticket):
        position = mt5.positions_get(ticket=ticket)
        if not position:
            return False
        pos = position[0]
        close_type = mt5.ORDER_TYPE_SELL if pos.type == 0 else mt5.ORDER_TYPE_BUY
        price = mt5.symbol_info_tick(pos.symbol).bid if pos.type == 0 else mt5.symbol_info_tick(pos.symbol).ask

        request = {
            "action": mt5.TRADE_ACTION_DEAL,
            "symbol": pos.symbol,
            "volume": pos.volume,
            "type": close_type,
            "position": ticket,
            "price": price,
            "deviation": 10,
            "magic": 234000,
            "comment": "close_bot",
            "type_time": mt5.ORDER_TIME_GTC,
            "type_filling": mt5.ORDER_FILLING_IOC,
        }
        result = mt5.order_send(request)
        return result.retcode == mt5.TRADE_RETCODE_DONE

    def disconnect(self):
        mt5.shutdown()
        self.connected = False

กลยุทธ์การเทรดและ Risk Management

ตั้งค่า Risk Management ที่เหมาะสมสำหรับการเทรดกับ Admirals

#!/usr/bin/env python3
# risk_manager.py — Risk Management สำหรับ Admirals Trading
import MetaTrader5 as mt5

class RiskManager:
    def __init__(self, max_risk_pct=1.0, max_daily_loss_pct=3.0, max_positions=5):
        self.max_risk_pct = max_risk_pct
        self.max_daily_loss_pct = max_daily_loss_pct
        self.max_positions = max_positions

    def calculate_lot_size(self, symbol, sl_pips, risk_pct=None):
        if risk_pct is None:
            risk_pct = self.max_risk_pct

        account = mt5.account_info()
        risk_amount = account.balance * (risk_pct / 100)

        sym_info = mt5.symbol_info(symbol)
        point = sym_info.point
        tick_value = sym_info.trade_tick_value

        if tick_value == 0 or sl_pips == 0:
            return sym_info.volume_min

        lot = risk_amount / (sl_pips * tick_value / point)
        lot = max(sym_info.volume_min, min(lot, sym_info.volume_max))
        lot = round(lot, 2)

        return lot

    def check_daily_loss(self):
        account = mt5.account_info()
        daily_pnl = account.equity - account.balance
        max_loss = account.balance * (self.max_daily_loss_pct / 100)

        if daily_pnl < -max_loss:
            print(f"DAILY LOSS LIMIT: P/L=, Limit=")
            return False
        return True

    def check_max_positions(self):
        positions = mt5.positions_total()
        if positions >= self.max_positions:
            print(f"MAX POSITIONS: {positions}/{self.max_positions}")
            return False
        return True

    def can_trade(self):
        if not self.check_daily_loss():
            return False
        if not self.check_max_positions():
            return False
        return True

    def print_status(self):
        account = mt5.account_info()
        positions = mt5.positions_total()
        daily_pnl = account.equity - account.balance
        max_loss = account.balance * (self.max_daily_loss_pct / 100)

        print(f"\n=== Risk Status ===")
        print(f"Balance: ")
        print(f"Equity: ")
        print(f"Daily P/L:  (limit: )")
        print(f"Positions: {positions}/{self.max_positions}")
        print(f"Margin Used: ")
        print(f"Free Margin: ")
        print(f"Margin Level: {account.margin_level:.1f}%")
        print(f"Can Trade: {'YES' if self.can_trade() else 'NO'}")

สร้าง Trading Bot ด้วย Python และ MT5

สร้าง trading bot ที่ทำงานอัตโนมัติตาม strategy ที่กำหนด

#!/usr/bin/env python3
# trading_bot.py — Automated Trading Bot
import MetaTrader5 as mt5
import time
import logging
from datetime import datetime

logging.basicConfig(level=logging.INFO, format="%(asctime)s %(message)s")
log = logging.getLogger("bot")

CONFIG = {
    "symbol": "EURUSD",
    "timeframe": mt5.TIMEFRAME_H1,
    "lot": 0.01,
    "sl_pips": 30,
    "tp_pips": 60,
    "check_interval": 60,  # วินาที
    "max_positions": 3,
    "max_daily_loss": 50.0,  # USD
}

def run_bot(trader, risk_mgr):
    symbol = CONFIG["symbol"]
    log.info(f"Bot started: {symbol} on {CONFIG['timeframe']}")

    while True:
        try:
            if not risk_mgr.can_trade():
                log.warning("Trading paused: risk limits reached")
                time.sleep(CONFIG["check_interval"] * 5)
                continue

            # ดึงข้อมูลราคา
            df = trader.get_data(symbol, CONFIG["timeframe"], 200)
            if df is None or len(df) < 50:
                log.warning("Insufficient data")
                time.sleep(CONFIG["check_interval"])
                continue

            # คำนวณสัญญาณ
            signal = trader.calculate_signals(df)

            # ตรวจสอบว่ามี position เปิดอยู่หรือไม่
            positions = mt5.positions_get(symbol=symbol)
            has_position = len(positions) > 0 if positions else False

            if signal in ["BUY", "SELL"] and not has_position:
                lot = risk_mgr.calculate_lot_size(
                    symbol, CONFIG["sl_pips"]
                )
                result = trader.place_order(
                    symbol, signal, lot,
                    CONFIG["sl_pips"], CONFIG["tp_pips"]
                )
                if result:
                    log.info(f"Signal: {signal} | Lot: {lot}")

            # แสดงสถานะ
            now = datetime.now()
            if now.minute == 0 and now.second < CONFIG["check_interval"]:
                risk_mgr.print_status()

        except Exception as e:
            log.error(f"Error: {e}")

        time.sleep(CONFIG["check_interval"])

# if __name__ == "__main__":
#     trader = AdmiralsTrader(12345678, "password", "AdmiralsGroup-Demo")
#     trader.connect()
#     risk_mgr = RiskManager(max_risk_pct=1.0, max_daily_loss_pct=3.0)
#     run_bot(trader, risk_mgr)

FAQ คำถามที่พบบ่อย

Q: Admirals ปลอดภัยไหม?

A: Admirals ได้รับ license จากหน่วยงานกำกับดูแลหลายแห่งรวมถึง FCA ของอังกฤษ CySEC ของไซปรัส และ ASIC ของออสเตรเลีย เงินฝากของลูกค้าแยกเก็บในบัญชี segregated accounts มีระบบ Negative Balance Protection ที่ป้องกันไม่ให้ขาดทุนเกินเงินฝาก และมีการประกันเงินฝากสูงสุด 20,000 EUR ภายใต้กองทุนชดเชย

Q: Spread ของ Admirals เท่าไหร่?

A: ขึ้นอยู่กับประเภทบัญชี Trade.MT5 มี spread เริ่มต้น 0.5 pips สำหรับ EURUSD (ไม่มีค่าคอมมิชชั่น) Zero.MT5 มี spread เริ่มต้น 0.0 pips แต่มีค่าคอมมิชชั่น $3 ต่อ lot ต่อฝั่ง สำหรับ day traders ที่เทรดบ่อย Zero.MT5 อาจคุ้มกว่าเพราะ total cost ต่ำกว่า

Q: Admirals รองรับ EA (Expert Advisor) ไหม?

A: รองรับทั้ง Expert Advisor บน MetaTrader 4/5 และ Python API ผ่าน MetaTrader5 library สามารถรัน automated trading strategies ได้ทั้งบน VPS และเครื่องส่วนตัว Admirals ยังมี MetaTrader Supreme Edition ที่เพิ่ม indicators และเครื่องมือพิเศษให้ฟรีอีกด้วย

Q: Leverage สูงสุดของ Admirals เท่าไหร่?

A: ขึ้นอยู่กับ regulation ของแต่ละภูมิภาค ลูกค้าภายใต้ FCA/CySEC ได้ leverage สูงสุด 1:30 สำหรับ major forex pairs (ตาม ESMA regulation) ลูกค้าภายใต้ regulation อื่นอาจได้สูงสุด 1:500 สำหรับผู้เริ่มต้นแนะนำใช้ leverage ไม่เกิน 1:10 เพื่อลดความเสี่ยง

Q: ถอนเงินจาก Admirals ใช้เวลากี่วัน?

A: Bank Transfer ใช้เวลา 1-3 วันทำการ Credit/Debit Card ใช้เวลา 1-5 วันทำการ E-wallets เช่น Skrill Neteller ภายใน 24 ชั่วโมง Admirals ไม่คิดค่าธรรมเนียมสำหรับการถอนเงินครั้งแรกของแต่ละเดือน ครั้งต่อไปอาจมีค่าธรรมเนียมเล็กน้อย

📖 บทความที่เกี่ยวข้อง

00981a etfอ่านบทความ → ptir etfอ่านบทความ → pplt etfอ่านบทความ → prado mql5อ่านบทความ → price mql4อ่านบทความ →

📚 ดูบทความทั้งหมด →