冷清1.1

Python量化交易入门:从安装到第一笔自动单

XM 推荐平台

覆盖品种全,新手友好,支持多种入金方式

CySEC(塞浦路斯) / ASIC(澳洲) / IFSC(伯利兹) · 最低入金 $5
阿斌哥
阿斌哥 楼主
2 小时前 12 1 1分钟 Lv.4 实盘汇友 Lv.4 主题1 帖数1 积分1327 汇币1028
1楼
昨天在汇友群里看到有人问,说想学Python量化但不知道从哪下手,装了Anaconda就卡住了。这让我想起自己刚入坑那会儿,光是把MT5和Python连起来就折腾了两天,最后发现是个很蠢的版本问题。既然论坛里想走这条路的人不少,我就把自己从零到跑通第一笔自动单的过程捋一遍,尽量把那些坑都标出来,给想入门的朋友做个参考。
先说环境搭建。很多新手一上来就装最新版Python,然后发现第三方库各种不兼容。我的建议是直接用
  • Anaconda发行版,自带conda管理环境,省去一堆麻烦
  • 用Python 3.9或3.10,别追新,MetaTrader5的API在这两个版本上最稳
  • 装完记得把pip源换成国内的,不然下载库能等到你怀疑人生
我当时就是没注意版本,装了3.12,结果MetaTrader5库直接导入报错,查了半天才发现是编译问题。换回3.10后一次通过,这个坑千万别踩。
接下来是连接MT5终端。这一步的要点是必须先在MT5里开启Algo Trading选项,不然你代码写得再好也是白搭。具体做法是MT5界面里Tools-Options-Expert Advisors,勾上Allow Algo Trading。然后Python端就简单了,两行代码的事:
import MetaTrader5 as mt5
mt5.initialize()
这里有个细节容易忽略:initialize()不带参数时,默认连接你本机安装的MT5终端。如果你像我一样用VPS跑策略,就得在VPS上也装个MT5,然后指定路径。我当时图省事直接在本机测,后来上VPS才发现路径问题又折腾了半天。
数据获取和策略回测就不多说了,论坛里教程很多,我重点讲第一笔自动单怎么落地。新手最容易犯的错是急着写复杂逻辑,我的建议是先跑通最简单的挂单流程。比如用buy limit挂个单,代码就几行:
symbol = "EURUSD"
lot = 0.01
price = mt5.symbol_info(symbol).ask - 100
request = {
"action": mt5.TRADE_ACTION_PENDING,
"symbol": symbol,
"volume": lot,
"type": mt5.ORDER_TYPE_BUY_LIMIT,
"price": price,
"deviation": 20,
"magic": 202401,
"comment": "first order",
"type_time": mt5.ORDER_TIME_GTC,
"type_filling": mt5.ORDER_FILLING_FOK,
}
result = mt5.order_send(request)
注意type_filling一定要确认你的经纪商支持哪种模式,有的用FOK有的用IOC,填错了直接报错返回。我当时就是没查这个参数,卡了一下午,最后翻经纪商文档才发现用的是ORDER_FILLING_IOC。
还有个小坑是价格精度问题。EURUSD报价到小数点后5位,你直接算出来的价格可能带6位小数,MT5会拒绝执行。用mt5.symbol_info(symbol).point先取点值,再四舍五入到正确的精度,这个习惯要养成。
最后说下实盘和模拟盘的心态差异。我在模拟盘跑了一周稳稳当当,一上实盘小账户就手忙脚乱,连魔法数字都忘了设置,结果手动单和自动单混在一起,复盘时根本分不清哪笔是哪笔。所以magic number一定要从一开始就固定下来,这是区分策略单和人工单的唯一标识。另外VPS的延迟影响也比我预期大,本机测试时滑点几乎为零,上了VPS后偶尔会滑个两三跳,虽然不大,但对EA的参数回测结果还是有影响的。
其实Python量化入门没有想象中那么难,核心就是把环境搭对、把流程跑通,剩下的都是策略层面的打磨。我现在回头看,最耗时间的反而是那些看似不起眼的配置问题,真跑起来反而顺利。不知道论坛里有没有也在走这条路的汇友,你们在连接MT5或下第一单时碰到过什么奇怪的问题?说出来大家交流下,说不定你踩过的坑正是别人正在爬的。
0 回复 复制 众裁0
#1
HarborLight5
HarborLight5 #2· 1 小时前
1 小时前
2楼
说到版本坑我太有同感了,之前也是Python 3.12连MetaTrader5库直接崩,换回3.10就好了。不过我觉得第一笔自动单别急着挂buy,先跑通模拟盘的只读操作更稳妥,比如先拉K线验证路径没问题,再上实盘,少交学费。
回复 复制 众裁0
1 小时前 #2
THE END
本帖内容仅供学习交流,不构成任何投资建议。外汇交易存在高风险,请谨慎参与。汇友之家合作的各家经纪商均为持有正规外汇牌照的经纪商,我们不参与经纪商的任何经营活动。经纪商在经营过程中可能出现破产清算、资不抵债、跑路或躲避责任等情况,这些问题汇友之家无法控制,亦不承诺任何经纪商资金的绝对安全。请知悉!
← 上一帖 做外汇最让我后悔的一件事,从亏损到盈利我做对了什么 下一帖 → 关于返佣系统原理解析与实操教程,这篇可能最接地气