Вы не знаете, как устроены торговые классы, и пугаетесь слов "Объектно-ориентированное программирование"? На самом деле вовсе не обязательно всё это знать, чтобы написать свой собственный модуль торговых сигналов - достаточно следовать простым правилам. Всё остальное сделает Мастер MQL5, и вы получите готовый торговый робот!
//+------------------------------------------------------------------+//| Long position open or limit/stop order set |//+------------------------------------------------------------------+bool CExpert::OpenLong(double price,double sl,double tp)
{
if(price==EMPTY_VALUE) return(false);
//--- get lot for opendouble lot=LotOpenLong(price,sl);
//--- check lot for openif(lot==0.0) return(false);
//---return(m_trade.Buy(lot,price,sl,tp));
}
//+------------------------------------------------------------------+//| Short position open or limit/stop order set |//+------------------------------------------------------------------+bool CExpert::OpenShort(double price,double sl,double tp)
{
if(price==EMPTY_VALUE) return(false);
//--- get lot for opendouble lot=LotOpenShort(price,sl);
//--- check lot for openif(lot==0.0) return(false);
//---return(m_trade.Sell(lot,price,sl,tp));
}
felidae:
Нет, всё в порядке, просто я дал случайно свою ссылку. Ваша должна быть по идее такая: https://www.mql5.com/ru/users/vik1991/accounting/chooseout
谢谢你的回答,有什么办法可以增加收益,还是等待需求增加?
请告知如何在基于MQL5向导的EA中增加(补仓)仓位,其中仓位是用
virtual int LongCondition();
virtual int ShortCondition()。
我根据以下文章写了一个机器人
https://www.mql5.com/ru/articles/367"在6个步骤中创建一个交易机器人",它运行良好,但任何试图影响头寸大小的行为
(无论它是增加还是减少),通过反复产生的条件,例如:
LongCondition()。
已经建立的头寸保持不变,只有在触发sl , tp时才能删除。
我喜欢MQL5 Wizard,它可以快速而容易地 "建立 "一个多指标EA,改变sl跟踪模块,改变资金管理模块。
但我试图写一个EA,当一个趋势被一个指标确认时,开一个最小的仓位,当趋势被另一个指标确认时,增加(增加)仓位。
遇到了之前描述的问题--当通过LongCondition()重新发出开仓信号时,已经开仓的头寸不会改变。
我想在市场上只留下外汇工具,该代码工作良好
但我一在测试器中启动它,它就加载了以下仪器的历史记录;它不能被加载。 我怎样才能在测试器中禁用它????????
2013.04.04 14:09:21 核心 1 GBOTEURUSD17DEC2012: 历史同步开始
请告知如何在基于MQL5向导的EA中增加(补仓)仓位,该EA的仓位是通过以下方式建立的
不幸的是,你描述的案例在这里(论坛)属于 "改进 "的范畴。
为了解决这个问题,你需要改变专家顾问的行为。要做到这一点。
1.我们需要创建一个新的类(例如CMyExpert),它继承于CExpert类。
2.重新加载其中的处理方法,改变其行为。
3.替换(手动)专家顾问源代码中的包含文件。
#include <Expert\Expert.mqh>
至
#include <Expert\MyExpert.mqh>
4.替换(手动)专家顾问源代码中的类名称。
至
课堂的例子见附件。如果有一个未结头寸,并且没有对其进行任何操作,则退出方法有注释(第53行)。
不要忘了在向导中的专家顾问每次 "再生 "后都要遵循第3和第4项。
PS 如果你有任何问题,请联系我。
不幸的是,你描述的情况属于这里(论坛)所说的 "微调 "的范畴。
为了解决这个问题,你需要改变专家的行为。要做到这一点。
1.你必须创建一个新的类(例如CMyExpert),它继承于CExpert类。
2.重新加载其中的处理方法,改变其行为。
3.替换(手动)专家顾问源代码中的包含文件。
至
4.替换(手动)专家顾问源代码中的类名称。
至
附上一个实例类。如果有一个未结头寸并且没有对其进行任何操作,则退出方法被注释掉(第53行)。
记得在向导中的专家顾问每次 "再生 "后,都要遵循第3和第4步。
PS 如果你有任何问题,请随时与我联系。
非常感谢你,一切都很好。当趋势被另一个指标确认时,它就会增加同样的量。
现在我们还有一个问题--是否可以改变 "添加 "的大小?例如,资金管理模块中的标准头寸大小是0.1,而我想添加("添加")专家顾问计算的0.3或0.35,等等。
我如何从LongCondition()子程序向交易模块传递 "补货 "尺寸?
非常感谢你,它正在起作用!在另一个指标的趋势确认时添加相同的量。
现在我还有一个问题--是否可以改变 "份额 "的大小?例如,资金管理模块中的标准头寸大小是0.1,而我想添加("添加")专家顾问计算的0.3或0.35,等等。
我如何从LongCondition()子程序向交易模块传递 "补货 "尺寸?
CExpert类有 一些方法。
在你的类中重载(类似于Processing),并改变地段确定算法。
CExpert类有 一些方法。
在你的类中进行重载(类似于Processing)并改变地段检测算法。
有一个指标说,它对开盘价 起作用
编码