ส่งคำสั่งซื้อขายด้วย Python ไม่ได้

  • 3 replies
  • 646 views

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ส่งคำสั่งซื้อขายด้วย Python ไม่ได้

« เมื่อ: 15, กรกฎาคม 2021, 01:13:23 PM »
สวัสดีครับ พอดีอยากลองคำสั่งซื้อขายผ่าน Python หาข้อมูลจากที่อื่นได้น้อยมาก ล็อกอินเข้าไปได้แล้วพอเป็นคำสั่งเข้าซื้อ กับเกิด error ดังภาพ
โค๊ด
# prepare the buy request structure
symbol = "EURUSD"
symbol_info = mt5.symbol_info(symbol)
if symbol_info is None:
    print(symbol, "not found, can not call order_check()")
    mt5.shutdown()
    quit()

# if the symbol is unavailable in MarketWatch, add it
if not symbol_info.visible:
    print(symbol, "is not visible, trying to switch on")
    if not mt5.symbol_select(symbol,True):
        print("symbol_select({}}) failed, exit",symbol)
        mt5.shutdown()
        quit()

lot = 0.1
point = mt5.symbol_info(symbol).point
price = mt5.symbol_info_tick(symbol).ask
deviation = 20
request = {
    "action": mt5.TRADE_ACTION_DEAL,
    "symbol": symbol,
    "volume": lot,
    "type": mt5.ORDER_TYPE_BUY,
    "price": price,
    "sl": price - 100 * point,
    "tp": price + 100 * point,
    "deviation": deviation,
    "magic": 234000,
    "comment": "python script open",
    "type_time": mt5.ORDER_TIME_GTC,
    "type_filling": mt5.ORDER_FILLING_RETURN,
}

# send a trading request
result = mt5.order_send(request)
# check the execution result
print("1. order_send(): by {} {} lots at {} with deviation={} points".format(symbol,lot,price,deviation));
if result.retcode != mt5.TRADE_RETCODE_DONE:
    print("2. order_send failed, retcode={}".format(result.retcode))
    # request the result as a dictionary and display it element by element
    result_dict=result._asdict()
    for field in result_dict.keys():
        print("   {}={}".format(field,result_dict[field]))
        # if this is a trading request structure, display it element by element as well
        if field=="request":
            traderequest_dict=result_dict[field]._asdict()
            for tradereq_filed in traderequest_dict:
                print("       traderequest: {}={}".format(tradereq_filed,traderequest_dict[tradereq_filed]))
    print("shutdown() and quit")
    mt5.shutdown()
    quit()

print("2. order_send done, ", result)
print("   opened position with POSITION_TICKET={}".format(result.order))
print("   sleep 2 seconds before closing position #{}".format(result.order))
time.sleep(2)

Share Topic.


*

ออฟไลน์ admin

  • *
  • 68,139
  • 2622

Re: ส่งคำสั่งซื้อขายด้วย Python ไม่ได้

« ตอบกลับ #1 เมื่อ: 15, กรกฎาคม 2021, 01:31:43 PM »
รอIT เราว่างมาตอบให้นะครับ ตอนนี้ ติด โปรเจค
"เอาชนะใจตัวเองให้ได้ ก่อนที่จะไปเอาชนะตลาด"

*

ออฟไลน์ iRuler

  • *
  • 1,259
  • 40

Re: ส่งคำสั่งซื้อขายด้วย Python ไม่ได้

« ตอบกลับ #2 เมื่อ: 15, กรกฎาคม 2021, 01:44:08 PM »
ขอโทษครับ พอดีไม่ถนัด python เลยครับ
พอดีไม่เห็นว่าโบร้กเกอร์อะไร อาจเป็นไปได้ว่า ชื่อคู่เงินของโบร้กนี้ไม่ได้ชื่อ EURUSD หรือเปล่าอาจจะเป็น แบบ EURUSDf, EURUSDm อะไรงี้

 (TH)** (TH)** (TH)**

Re: ส่งคำสั่งซื้อขายด้วย Python ไม่ได้

« ตอบกลับ #3 เมื่อ: 15, กรกฎาคม 2021, 05:59:28 PM »
ขอโทษครับ พอดีไม่ถนัด python เลยครับ
พอดีไม่เห็นว่าโบร้กเกอร์อะไร อาจเป็นไปได้ว่า ชื่อคู่เงินของโบร้กนี้ไม่ได้ชื่อ EURUSD หรือเปล่าอาจจะเป็น แบบ EURUSDf, EURUSDm อะไรงี้

 (TH)** (TH)** (TH)**
ลองใส่แล้วครับ เหมือนเดิม

Tags: