EA: MA

 

MA:

一个非常简单的 EA,基于两条移动均线的交叉。

MA_Expert_Advisor

作者: Игорь Чугай

 
什么 TF 和对子?
 

美元兑日元

m15

止损 375

止盈 530

ma 49

ma1 99

(五位数)

 

您好 。我在您的网站上看到了一个令人好奇的 Expert Advisor MA.mq5。坦率地说,吸引我的是它计算简单、有止损和止盈功能、设置简单、文件 小。免费这一事实在我的选择中也起到了重要作用。我不懂编程,但几乎每一行代码都有大量俄语注释,这让我很满意。

立即 下载了这个奇迹,并决定在 MetaTrader 5 上对 欧元兑美元 进行 测试 。但在这里我有些失望:

1 在不到一周的历史时间内,"智能交易系统 "潇洒地耗尽了 10000 美元的存款 ,而且是在 M1、M5、M15、H1 等所有时间框架上耗尽的

2 ) 声明的止损出现在线段中,但没有出现在图表上,即使利润达到 1000 美元,也没有执行

3 ) Take Profit(获利)也是同样的情况:诚实地写在线段中,但在图表上却没有,因此也没有执行。

明显 ,我们不应该把礼物马放在嘴边,但是,在这方面,我有一些问题要问您:

1 ) 贵公司在公布该计划之前是否对其进行过测试?

2 ) 贵公司公布不工作的程序版本是否有损其信誉(我认为这种情况并非仅此一例);

3 )是否有可能希望该程序的免费工作版或其功能类似版出现在发行版上?

对造成的麻烦表示歉意,并希望长期合作,特别是因为贵公司是 MetaTrader 5软件的垄断者

 
andreewwleonid:

您好 。我在您的网站上看到了一个令人好奇的 Expert Advisor MA.mq5。坦率地说,吸引我的是它计算简单、有止损和止盈功能、设置简单、文件小。免费这一事实在我的选择中也起到了重要作用。我不懂编程,但我很高兴看到几乎每一行代码都有大量俄语注释。

立即 下载了这个奇迹,并决定在 MetaTrader 5 上对 欧元兑美元 进行 测试 。但在这里我有些失望:

1 ) 在不到一周的历史时间内,"智能交易系统 "就潇洒地耗尽了 10000 美元的存款 ,而且是在所有时间框架内--M1、M5、M15、H1;

2 ) 声明的止损线是存在的,但没有出现在图表上,即使利润达到 1000 美元,也没有执行

3 ) Take Profit(获利)也是同样的情况:它真实地写在线段中,但没有出现在图表上,因此也没有被执行。

显然 ,我们不应该 "望文生义",但在这方面,我还是有一些问题要向您请教:

1 ) 该计划在公布之前是否在贵公司进行过测试?

2 ) 贵公司公布程序的非工作版本是否有损其权威性(我认为这种情况并非仅此一例);

3 )我们是否可以希望该程序的免费工作版或其功能类似版出现在发行版上?

我对造成的麻烦 表示歉意 ,并希望能长期合作,特别是因为贵公司是 MetaTrader 5软件的垄断者

1.贵公司的报价有几位小数?4 位还是 5 位?我看到所述的止损和止赢是针对五位数报价的。如果您的报价是四位数,则应将规定的止损和止赢规模缩小十倍。

2.您以存款货币(1000 美元)来描述您的利润,而止损单的大小是以点来表示的。1000 美元的利润并不一定比止盈的点数大,这完全取决于手数。

 

andreewwleonid:


为什么不看看上面的评论?在那里,作者已经说明了是哪一对、哪个时间段等。
 
//--- 与使用 5 位数报价的经纪商合作、
//--- 将 SL 值和 TP 值乘以 10
   STP = StopLoss;
   TKP = TakeProfit;
   if(_Digits==5 || _Digits==3)
     {
      STP = STP*10;
      TKP = TKP*10;
     }


根据这部分代码,我们可以认为猫头鹰既适用于 5 位数经纪商,也适用于 4 位数经纪商。此外,TP 和 SL 设置为 4 位数经纪商的值,并在必要时重新计算。

当然,一般情况下,我们只能建议andreewwleonid 不要下载所有的东西,也 不要不加选择地启动第一个出现在手.....。

 

你们怎么就信以为真了呢?如果作者出来撕破自己胸前的衬衫:"谁敢给我的艺术作品抹黑!",那也是可以理解的。此外,一个好的智能交易系统可以在不同的货币对上进行交易,使用相同的订单和不同的时间框架报价。但是,每种货币对都有不同的盈利能力和个性化设置。我说错了吗?

所以,还是那句话,一切按部就班。

1) Expert Advisor 在欧元兑美元(EURUSD)货币对上进行测试,存款为 10000 美元,历史记录为 4 位数。

2) 在程序中进行了设置:

//--- 输入参数

input int StopLoss=100;

input int TakeProfit=100;

input int MA_Period=57;

input int MA_Period1=3;

input int EA_Magic=12345;

输入 double Lot=1.0;

3) 测试在多个时间框架(M1、M5、M15、H1)上进行。很明显,几乎没有人在分钟上进行交易,但....。

4) 图表上未标明止损,也未执行止损。

5) 图表上未标明止盈,也未执行止盈。

6) 存款平均在一周的历史时间内耗尽。

顺便说一下,根据我的逻辑,我应该没有研究过的指令确实包含美元兑日元的参数、

但这些参数与程序参数完全不同。

我不是程序员,但我能看懂程序。在学校的计算机科学课上,他们向我介绍了 Basic。我正在解析文本。

//--- 使用五位数引号处理经纪人、

//--- 将 SL 值和 TP 值乘以 10。

STP = StopLoss;

TKP = TakeProfit;

if(_Digits==5 || _Digits==3)

{

STP = STP*10;

TKP = TKP*10;

}

return(0);

micle 认为,这个片段可以让程序在 4 位数和 5 位数报价上安全运行。

该片段计算买入订单中的 sl 和 tp:

mrequest.action = TRADE_ACTION_DEAL;// 立即执行

mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // 最新卖出价

mrequest.sl = NormaliseDouble(latest_price.ask - STP*_Point,_Digits); // 止损值

mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // 获利

mrequest.symbol = _Symbol;// 符号

mrequest.volume = Lot;// 交易手数

mrequest.magic = EA_Magic;// 神奇数字

mrequest.type = ORDER_TYPE_BUY;// 买入订单

mrequest.type_filling =ORDER_FILLING_FOK;// 订单执行类型 - 全有或全无

mrequest.deviation=100;// 与当前价格的滑点

此片段计算卖出订单中的 sl 和 tp:

mrequest.action = TRADE_ACTION_DEAL;// 立即执行

mrequest.price = NormalizeDouble(latest_price.bid,_Digits); // 最新买入价

mrequest.sl = NormaliseDouble(latest_price.bid + STP*_Point,_Digits); // 止损值

mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // 获利

mrequest.symbol = _Symbol;// 符号

mrequest.volume = Lot;// 交易手数

mrequest.magic = EA_Magic;// 神奇数字

mrequest.type= ORDER_TYPE_SELL;// 卖出订单

mrequest.type_filling = ORDER_FILLING_FOK;// 订单执行类型 - 全有或全无

mrequest.deviation=100;// 与当前价格的滑点

至少注释中是这么说的。

但是,识字的人,请告诉我 STP、sl 和 TKP、tp 与当前报价(或条形收盘报价)进行比较并做出选择的线的编号--以损失(利润)100 点平仓或继续持有。我没有看到这一点。我看到开仓和平仓是由 MA 比率和存款余额的大小决定的,而不是由是否存在止损和止盈决定的。

现在有一个合理的问题:"是谁在拿我当傻瓜--是一个无法运行的程序的作者,还是向访问者提供无法运行的程序的网站所有者?

还有,micle,我感谢你的建议,不要什么都下载,也不要不加选择地运行手头的第一件事。英国有句谚语说得好:"要想知道布丁的味道,就得先吃它"。我尝过这种布丁,结果消化不良。但问题是,我不是程序员,也没有研究过 4300 页的 MQL5 手册,所以只能使用和研究别人的程序。当你得到的不是一个正常运行的产品,而是一个彻头彻尾的......时,你会感到非常沮丧。

我明白,任何一个正常的交易者都不会将执行了自己的交易策略的智能交易系统公之于众。这并不是因为他有多贪婪,而仅仅是因为如果有相当多的人以统一的方式进行交易,市场就会立即改变其属性,该策略要么变得不那么有利可图,要么甚至开始带来损失。到那时,他又得从头开始。但是,将这种 Expert Advisor 视为盈利交易策略的实施,未免太荒谬了。您不同意吗?它只不过是 "如何建立和配置一个简单可行的智能交易系统 "培训示例的一个变种,不幸的是,它是由一个成绩不佳的人制作的。

 
andreewwleonid:

但是,识字的人,请告诉我 STP, sl TKP, tp 与当前报价(或条形收盘报价)进行比较,并做出选择--是亏损(盈利)100 点平仓,还是继续持仓。我没有看到这一点。

这些行中指定了 SL 和 TP 值:

mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // 止损
mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // 获利

然后将订单发送给经纪商:

OrderSend(mrequest,mresult);

SL 和 TP 由经纪商执行,因此程序无需将"sl TP 与当前报价进行比较"。

-----------------------------

可能是因为您的账户是 Market Execution(市场执行),而 Expert Advisor 是为 Instant Execution(即时执行)编写的,所以 Expert Advisor 无法正常工作。

 

尊敬的纳斯达克先生,您好。很高兴能得到专家的建议。我了解订单的情况。因此,作者没有画这两条线是为了不加载程序和图表。很好。但我是在 Strategy Tester Visualisation 上运行程序的,或者用俄语在Strategy Tester MT5 上运行程序。如果不难的话,请告诉我该软件在哪种模式下测试智能交易系统:市场执行还是即时执行,以及是否可以更改该设置。

 
andreewwleonid:

该工具在哪种模式下测试智能交易系统:市场执行还是即时执行,是否可以更改设置。

在此模式下,它测试的是所连接账户(或符号)的执行类型