文章 "针对初学者以 MQL5 编写“EA 交易”的分步指南" - 页 7

 
Renat:

使用未初始化(或未完全初始化)的变量(尤其是结构)是编程中非常常见的错误。

天哪,这是唯一的俄语资源,(1) 你被洗脑了,(2) 你为此感到感激:))

1.5 年来,我一直知道变量应该初始化;1.5 年来,我一直故意使用 "结构类型变量 "这个短语;但 1.5 年来,我一直只给Mqltraderequest 类型变量的单独(强制)字段赋值,因为《参考手册》说"应为 每个交易操作指定强制字段"....。

 
papaklass:
雷纳特,如果你(MQ)能发表一篇或一系列关于 "使用内存和变量 "的文章就好了。一般来说,使用内存和变量的正确方法是什么?在锦标赛上,一些 EA 因内存消耗过高而被取消资格后,这些文章将是非常合适的。罗什在某个主题中写道,用户应该订购他们感兴趣的文章,但我没有找到这个主题,所以我写在这里。
是的,阅读有关这一主题的文章会很有趣。非常有趣的是,为什么在冠军赛上一些参赛者的专家使用了这么多内存,以及如何避免这种情况。我没有遇到这样的问题,但这都是随机的。我的意思是,我不知道为什么这种情况不会发生在我身上,但我想知道如果发生了该怎么办。
 
首先,内存消耗与指标调用有关。在不同符号/tpymframes 上创建数十个指标句柄之前,请考虑一下您将为此付出什么代价。我向您推荐《降低辅助指标的内存消耗》一文,并阅读被取消资格的参赛者之一的访谈录--《山中敦志(alohafx)访谈录》。
Интервью с Ацуси Яманака (alohafx) - Automated Trading Championship 2011
  • championship.mql5.com
Что общего между трейдингом, скайдайвингом, фьючерсами, Гавайями, переводами и шпионами? Мы тоже не знали, пока не пообщались с дисквалифицированным участником Ацуси Яманака (alohafx). Его кредо - ''Life is Good! - Жизнь прекрасна!'', и с этим трудно не согласиться. Было интересно узнать, что расстояние между разными континентами - не помеха в общении участников нашего Чемпионата.
 

为什么将 S/L 收紧到 5(应该是 5 点)?

我的情况如下

附加的文件:
Capture.PNG  8 kb
 
statarb:

为什么将 S/L 收紧到 5(应该是 5 点)?

我的情况如下

在发送交易请求之前,您应该检查某个符号的止损位(SYMBOL_TRADE_STOPS_LEVEL)。止损/止赢不得小于当前价格与平仓价格之间的距离。获取此属性的示例:

int StopLevel_Distance=(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);
double SL=... // 通过计算获得新的 SL
//--- 检查当前计算出的止损水平
if(SL>SymbolInfoDouble(_Symbol,SYMBOL_ASK)-StopLevel_Distance*_Point) 
   SL=SymbolInfoDouble(_Symbol,SYMBOL_ASK)-StopLevel_Distance*_Point;
//... 根据位置修改 SL
 

谢谢,但我的止损单和止盈单均未执行。在编译器 "终端 "中,它们被列为 "0.00 "或 "0.0",总之不可能为所有订单设定一个通用止损。我还没有成功地从 "外部 "更改过参数值,也就是说,没有在编辑器中更改过代码。

除此之外,它运行得很好!评论也帮了大忙!

再次感谢、

locan BBS

.locan.BBS:

 
MetaQuotes:

新文章《在 MQL5 中编写智能顾问初学者分步指南》 已发布:

作者:Olowsam

你好,Olowsam、

感谢您提供这份分步指南。我有几个问题,希望您能帮助我。

我严格按照您的指导进行了操作,但没有达到预期效果。首先,我使用的是最新版本的 Meta Trader 5.00,Build 6.55(2012 年 6 月 6 日)。 我注意到了几个不同之处,第一个是 MQL5 向导模板有额外的选项,而不是您在注释中显示的选项。无论如何,我已确保程序与您描述的完全一致。我已经对其进行了编译。没有问题。零错误。我按照你的说明在 OnTick 子程序中插入了 5 个调试断点。点击绿色运行按钮后,什么也没发生。程序没有执行到这一点。为什么会这样?发生了什么?如果我在 OnInit 子程序的起始位置插入调试断点,例如,adzHandle=iADX9Null,0,ADX_Period)行,那么就会正常。调试 STEP 选项卡会亮起,我可以单步执行该控件,直到 OnInit 子程序结束。但是,在此之后,同样没有任何反应。简而言之,我无法到达 OnTick 子程序。这是怎么回事?这是 Meta Trader 系统运行中的已知错误吗?我怎样才能解决这个问题并继续前进?

我希望以上内容能解释我遇到的问题,并希望您能看到发生了什么,并能提供帮助。

谢谢。

最诚挚的问候

基肖尔

 

嘿,文章写得很好、

我边走边输入所有代码,最后没有出现任何编译错误,所以一定是解释得很清楚。对于第一次使用 metatrader5/mql5 系统的人来说,这是一个很好的练习。

可能需要做一些优化,让图表朝上走。

一切顺利,谢谢

迈克

 

您好、

我非常喜欢这篇文章的编码风格,非常容易阅读和理解。 如果您不介意的话,我有一个请求,您能否也举例说明如何用这个示例来实现追踪止损?

非常感谢!

 
非常感谢你的精彩指导!