MQL4剥头皮交易辅助EA实战
用箭头信号消除重复下单参数设置负担
什么是剥头皮交易及其核心痛点
剥头皮交易(Scalping)是一种以极短持仓时间、极小利润目标为特征的激进交易方式。通常每笔交易获利仅固定在1到10个点(Point)之间,依靠极高的开单频率和严格执行的止损来累积收益。这种交易类型对交易者的注意力、反应速度以及平台操作熟练度要求极高。
在手动剥头皮过程中,交易员面临的最大干扰并非来自市场本身,而是交易终端的操作摩擦:每一次下单都必须手动填写手数、止盈(TP)、止损(SL)数值。这些重复动作不仅占用宝贵的时间(在秒级波动中足以错失入场点),更迫使交易者将视线从价格图表移开,打断对行情的连续监控。很多潜在剥头皮交易者正是因为无法承受这种精神损耗而放弃该策略。
辅助工具的核心理念:把参数固化到EA
解决上述痛点的思路非常直接:如果交易者决定以固定手数、固定TP/SL进行剥头皮,那么这些参数就不应在每次交易时重复指定,而应由程序预先配置好。我们需要一个轻量工具,能够‘根据交易者的简单指令,以既定参数瞬间发出订单’,且交互方式不能分散看图注意力。
MQL4(MetaQuotes Language 4)完全有能力实现这一需求。通过编写Expert Advisor(EA),我们可以将下单逻辑与图表对象(箭头)结合:交易者在图表上删除某个箭头,即代表发出方向信号,EA侦测到后自动以extern参数执行OrderSend()。这样,人为操作只剩‘删箭头’这一直觉动作。
- 参数预设:手数、TP、SL、滑点、幻数均在EA属性页设置一次
- 信号极简:删除‘上 arrow’或‘下 arrow’即触发买/卖
- 零注意力转移:无需打开交易面板,眼睛始终在K线上
- 可关闭交易:仅用作‘赌博模型’训练市场直觉
trener.mq4的设计原型与游戏基础
本文工具是作者前文《赌博模型作为培养“市场直觉”的方法》的延伸。原版‘游戏’在图表上绘制两个箭头(向上、向下),交易者删除其中一个来表达对证券涨跌的判断;在新蜡烛开始时,EA统计预测准确率并计分,且可设时限强迫快速决策。
在交易版中,我们将游戏与实盘打通:当前柱仍用于游戏训练;在‘前一个柱’上再画两个箭头,删除其中一员不仅表示预测,更成为EA在对应方向发单的信号。同时,为避免同一根K线重复开仓,EA会在距离柱开盘价300点处画一个极不显眼的‘买/卖’标记。
参数详解与实操部署步骤
将trener.mq4加载到图表后,需在EA输入参数页(Inputs)配置以下外部变量,理解其含义是稳定使用的第一步:
- gap:箭头与蜡烛开盘价的间距点数,默认2
- Trading:是否启用交易,false时仅玩游戏
- TP:获利点数,如2点
- SL:止损点数,如20点(剥头皮常宽止损保命)
- Lots:固定手数,如0.02
- slippage:允许滑点,如1点
- MagicNumber:订单幻数777,便于EA识别自身单
- time_limit:决策秒限,0为不限制
实操步骤:1)下载trener.mq4并放入MT4的MQL4/Experts目录;2)MetaEditor编译;3)拖入目标货币对图表;4)在属性设好参数并允许自动交易;5)观察倒数第二柱的两个箭头,删除一个即发单;6)最后一根柱用于游戏训练,互不影响。
核心MQL4代码结构与信号侦测
EA的start()函数分为‘游戏’与‘交易’两大块。游戏部分通过ObjectFind与ObjectGet识别箭头位置及时间,判定solution为up或down并计分。交易触发则依赖对前一柱箭头对象的删除事件判断。以下为原文关键片段(已保留真实逻辑):
//+------------------------------------------------------------------+
//| trener.mq4 |
//| Copyright © 2008, FXRaider |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, FXRaider"
extern int gap=2;
extern bool Trading=true;
extern int TP=2;
extern int SL=20;
extern double Lots=0.02;
extern int slippage=1;
extern int MagicNumber=777;
extern int time_limit=30;
int start()
{
//----
//#################################################################################
//####################################### GAME ####################################
string solution="none";
int point, point_neg, point_pos;
if(ObjectGet("up", OBJPROP_PRICE1)==Open[1]+gap*Point
&&iBarShift(NULL,0,ObjectGet("up",OBJPROP_TIME1))==1
&&ObjectFind("down") != 0 && ObjectFind("up") == 0)
{ solution="up"; }
if(ObjectGet("down", OBJPROP_PRICE1)==Open[1]-gap*Point
&&iBarShift(NULL,0,ObjectGet("down",OBJPROP_TIME1))==1
&&ObjectFind("up") != 0 && ObjectFind("down") == 0)
{ solution="down"; }
if((solution=="up"&&Open[1]<Close[1])||(solution=="down"&&Open[1]>Close[1]))
{ point=1; point_pos=1; point_neg=0; }
if((solution=="up"&&Open[1]>Close[1])||(solution=="down"&&Open[1]<Close[1]))
{ point=-1; point_pos=0; point_neg=1; }
//+-------------------------------
上述代码仅展示游戏判定。交易块中,EA会检测前一柱箭头是否被删(ObjectFind返回-1),若Trading=true则调用OrderSend()以MagicNumber、Lots、TP、SL发单,并在300点外画标记防重。
与其他剥头皮方案的对比及局限
传统手动下单:灵活但慢、易错;一键交易面板(MT4默认):快但仍需点选数值;第三方信号按钮EA:功能强但参数隐藏深。本文trener方案优势在于‘视觉化信号+零面板’,特别适合习惯用箭头做笔记的交易者。
局限也明显:1)基于MQL4,仅MT4可用,MT5需重写;2)依赖对象删除事件,若图表被手动清理可能误触;3)无均线/动量过滤,纯主观信号。因此它定位为‘习惯养成+执行辅助’,而非全自动策略。
总结与交易者收益
通过trener.mq4,交易者把剥头皮中最繁琐的‘填参数’动作委托给EA,自身只需做方向决策(删箭头)。大部分注意力得以保留在价格行为上,决策质量与执行速度同步提升。该思路亦可迁移至任何固定参数的马丁、网格类轻量辅助工具开发。
原文由MetaQuotes译自俄文,地址 https://www.mql5.com/ru/articles/1509 ,中文版见 https://www.mql5.com/zh/articles/1509 。附trener.mq4下载(11.66 KB)。请遵守版权,勿商业转载。