EA: Diff_TF_MA_EA - 页 3 12345 新评论 fxsaber 2018.02.02 09:31 #21 Rashid Umarov: 代码已经更新。显然,他们这样写是有某种学说的 int total=PositionsTotal(); for(int i=total-1; i>=0; i--) { ulong ticket=PositionGetTicket(i); if(ticket==0) continue; if(PositionGetInteger(POSITION_MAGIC)!=InpMagic) continue; if(PositionGetString(POSITION_SYMBOL)!=symb) continue; ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); double volume=PositionGetDouble(POSITION_VOLUME); if(type==POSITION_TYPE_BUY) { list_tickets_buy.Add(ticket); total_volume_buy+=volume; } else if(type==POSITION_TYPE_SELL) { list_tickets_sell.Add(ticket); total_volume_sell+=volume; } } 为什么不这样写? for(int i=PositionsTotal()-1; i>=0; i--) if (PositionGetTicket(i) && (PositionGetInteger(POSITION_MAGIC)==InpMagic) && (PositionGetString(POSITION_SYMBOL)==symb)) { double volume=PositionGetDouble(POSITION_VOLUME); if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) { list_tickets_buy.Add(ticket); total_volume_buy+=volume; } else { list_tickets_sell.Add(ticket); total_volume_sell+=volume; } }ZYCorrectStopLoss(POSITION_TYPE_BUY,InpStopLoss) Artyom Trishkin 2018.02.02 09:34 #22 fxsaber:显然,这样写是某种学派的观点 为什么不这样写? 也许是因为在基础中需要代码,而不是为了逻辑推导和百倍嵌套,而是为了让初学者理解? Artyom Trishkin 2018.02.02 09:35 #23 fxsaber:... ZYCorrectStopLoss(POSITION_TYPE_BUY,InpStopLoss)有什么区别?我没看代码,是那里有错别字,还是你的问题? fxsaber 2018.02.02 09:36 #24 Artyom Trishkin: 也许是因为在基础中需要代码,而不是为了逻辑推导和百倍嵌套,而是为了让初学者理解?反转在哪里?如果某个位置满足条件,我们就对其进行处理。继续 - 输出。 fxsaber 2018.02.02 09:43 #25 Artyom Trishkin:有区别吗?我没看代码,是那里有错别字,还是你的问题?//+------------------------------------------------------------------+ //| 返回相对于 StopLevel 的正确 StopLoss。 //+------------------------------------------------------------------+ double CorrectStopLoss(const ENUM_POSITION_TYPE position_type,const int stop_loss) { if(stop_loss==0) return 0; double pt = _Point; double price=(position_type==POSITION_TYPE_BUY ? SymbolInfoDouble(_Symbol,SYMBOL_ASK) : SymbolInfoDouble(_Symbol,SYMBOL_BID)); int lv=StopLevel(); return(NormalizeDouble((position_type==POSITION_TYPE_BUY) ? fmin(price-lv*pt,price-stop_loss*pt) : fmax(price+lv*pt,price+stop_loss*pt),_Digits)); } Artyom Trishkin 2018.02.02 09:47 #26 fxsaber:转折点在哪里?如果某个立场符合条件,我们就会与之合作。这是转移视线啊...这只是某人的喜好而已 例如,伊戈尔-金的代码就有这样的嵌套。这样的代码可以写得更加简洁(奇怪的是,你对简洁的执着,却提出了代码块的多重嵌套,而这些嵌套是可以通过清理代码并使其更有说明性而轻易避免的): 您提出了这样的逻辑: 检查条件 1,符合检查条件 2,符合检查条件 3,符合检查条件 4,符合工作条件 4 检查块结束条件 3 检查块结束条件 2 检查块结束条件 1 检查块结束也可以这样做: 条件 1 不适合 - 不需要条件 2 不适合 - 不需要条件 3 不适合 - 不需要条件 4 不适合 - 不需要条件都适合 - 我们可以工作。第二个代码更清晰、更简短 Artyom Trishkin 2018.02.02 09:52 #27 fxsaber: //+------------------------------------------------------------------+ //| 返回相对于 StopLevel 的正确 StopLoss。 //+------------------------------------------------------------------+ double CorrectStopLoss(const ENUM_POSITION_TYPE position_type,const int stop_loss) { if(stop_loss==0) return 0; double pt = _Point; double price=(position_type==POSITION_TYPE_BUY ? SymbolInfoDouble(_Symbol,SYMBOL_ASK) : SymbolInfoDouble(_Symbol,SYMBOL_BID)); int lv=StopLevel(); return(NormalizeDouble((position_type==POSITION_TYPE_BUY) ? fmin(price-lv*pt,price-stop_loss*pt) : fmax(price+lv*pt,price+stop_loss*pt),_Digits)); } 怎么了?好吧,我猜他们决定修复它,这样就不会出现您之前遇到的问题了。 但现在,如果有人决定修改智能交易系统以使用挂单,他就必须来回修改,因为输入枚举会出错。 而 ORDER_TYPE_BUY == POSITION_TYPE_BUY 和 ORDER_TYPE_SELL ==POSITION_TYPE_SELL 分别为 0 和 1。因此没有区别。但输入 ENUM_ORDER_TYPE 可以更方便地修改其他类型的订单。 fxsaber 2018.02.02 09:52 #28 Artyom Trishkin:啊哈这只是某人的喜好。例如,Igor Kim 的代码就有这样的嵌套。这样的代码可以写得更加简洁(奇怪的是,你对简洁的执着,却建议代码块的多重嵌套,而这很容易通过清理代码和使其更有说明性来避免):您提出了这样的逻辑:检查条件 1,符合检查条件 2,符合检查条件 3,符合检查条件 4,符合。工作条件 4 检查块结束条件 3 检查块结束条件结束校验块 2条件结束检查块 1没有显示这样的内容。由于当时没有严格的指令,Kim 不得不这样做。 他提出了这个方案: 你可以这样做: 条件 1 不符合 - 不需要条件 2 不合适--不需要条件 3 不合适--不需要条件 4 不合适--不需要所有条件都合适 - 我们工作。第二个代码更清晰、更简短 Artyom Trishkin 2018.02.02 09:54 #29 fxsaber:没有显示任何类似内容。金正日是被迫这样做的,因为当时没有任何指令。这就是他的建议:这个呢? 交易、自动交易系统和交易策略测试论坛。 智能交易系统: Diff_TF_MA_EA fxsaber, 2018.02.02 09:36 pm. 反转在哪里?如果仓位满足条件,就与之合作。如果头寸满足条件,我们就与之合作。 Artyom Trishkin 2018.02.02 09:57 #30 fxsaber:没有显示任何类似内容。金正日是被迫这样做的,因为当时没有任何指令。真奇怪,当时我是如何在没有严格要求的情况下继续工作的?而且不光是我--当时是维蒂亚-尼古拉耶夫(文)让我这么做的。 所以,我不理解你对代码和程序员的某些偏好的抱怨。 12345 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
代码已经更新。
显然,他们这样写是有某种学说的
ZY
CorrectStopLoss(POSITION_TYPE_BUY,InpStopLoss)显然,这样写是某种学派的观点
为什么不这样写?...
ZY
CorrectStopLoss(POSITION_TYPE_BUY,InpStopLoss)有什么区别?我没看代码,是那里有错别字,还是你的问题?
也许是因为在基础中需要代码,而不是为了逻辑推导和百倍嵌套,而是为了让初学者理解?
反转在哪里?如果某个位置满足条件,我们就对其进行处理。继续 - 输出。
有区别吗?我没看代码,是那里有错别字,还是你的问题?
转折点在哪里?如果某个立场符合条件,我们就会与之合作。这是转移视线
啊...这只是某人的喜好而已
例如,伊戈尔-金的代码就有这样的嵌套。这样的代码可以写得更加简洁(奇怪的是,你对简洁的执着,却提出了代码块的多重嵌套,而这些嵌套是可以通过清理代码并使其更有说明性而轻易避免的):
您提出了这样的逻辑:
也可以这样做:
第二个代码更清晰、更简短
fxsaber:
怎么了?好吧,我猜他们决定修复它,这样就不会出现您之前遇到的问题了。
但现在,如果有人决定修改智能交易系统以使用挂单,他就必须来回修改,因为输入枚举会出错。
而 ORDER_TYPE_BUY == POSITION_TYPE_BUY 和 ORDER_TYPE_SELL ==POSITION_TYPE_SELL 分别为 0 和 1。因此没有区别。但输入 ENUM_ORDER_TYPE 可以更方便地修改其他类型的订单。
啊哈这只是某人的喜好。
例如,Igor Kim 的代码就有这样的嵌套。这样的代码可以写得更加简洁(奇怪的是,你对简洁的执着,却建议代码块的多重嵌套,而这很容易通过清理代码和使其更有说明性来避免):
您提出了这样的逻辑:
没有显示这样的内容。由于当时没有严格的指令,Kim 不得不这样做。
他提出了这个方案:
你可以这样做:
第二个代码更清晰、更简短
没有显示任何类似内容。金正日是被迫这样做的,因为当时没有任何指令。
这就是他的建议:
这个呢?
交易、自动交易系统和交易策略测试论坛。
智能交易系统: Diff_TF_MA_EA
fxsaber, 2018.02.02 09:36 pm.
反转在哪里?如果仓位满足条件,就与之合作。如果头寸满足条件,我们就与之合作。
没有显示任何类似内容。金正日是被迫这样做的,因为当时没有任何指令。
真奇怪,当时我是如何在没有严格要求的情况下继续工作的?而且不光是我--当时是维蒂亚-尼古拉耶夫(文)让我这么做的。
所以,我不理解你对代码和程序员的某些偏好的抱怨。