[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 95

 
dixi:

重新安装终端后,MetaEditor停止工作。只有当你不改变指标代码中的任何内容时,它才能发挥作用。如果你改变了什么,甚至是线条的颜色,它就会产生一个错误。

操作系统是Windows 7。谁知道呢,也许有人面临这样的故障。你能告诉我该怎么做吗?


首先,进入终端属性,在 "兼容性 "标签上勾选 "以管理员身份运行"。第二,对启动代码编辑器的文件做同样的处理。该文件是MetaEditor.exe。第三,定制你的操作系统。如果你清楚地知道你需要什么,最后一点是相当快的。
 
demlin:

向大家问好!

请帮助解决这个问题:我不能让指标随着新条形图(D区间)的出现而重新绘制。П

我必须手动重新启动它。


第44行是绝对没有必要的。重新计算未计算的蜡烛图的函数调用 将返回所有的蜡烛图。此外,在启动函数代码中,调用同一个函数(第64行),理论上应该返回0。请注意这一点。新的一天已经到来(新的蜡烛图)。不清楚发生了什么--指标昨天被切断,今天重新启动,还是它在测试器中测试?重新启动将触发初始化功能,然后开始启动。在启动时没有任何东西被重新绘制,因为我们已经在启动时调用了未计算的条形图。如果在测试器中,它可能会被重新绘制。

 
FxPro2:
大家好!我遇到了一个使用asctrend指标工作的老专家。 我想检查这个指标的实时表现,但我不能总是跟着点走,我的交易也不充分。我检查了测试仪,每个点都有信号,但把它放在一个演示上,注意到演示跳过信号的事情,而日志没有写任何东西给专家,在代码中挖掘,不明白是什么问题:(也许有人捅一捅可能是什么问题的鼻子?

问题是,你不了解你所使用的代码。问题是,你拿着一挺机枪,由于某些原因,它并不总是能开火。把你的手放在一个你了解一切的设备上,不是更好吗?А?
 
drknn:

首先,进入终端的属性,在 "兼容性 "选项卡上勾选 "以管理员身份运行 "的选项。第二,对启动代码编辑器的文件做同样的处理。该文件是MetaEditor.exe。第三,定制你的操作系统。最后一点是很容易解决的,如果你知道你想要什么。
谢谢你!知道了!!!。 :)))
 
Dimka-novitsek:

如果(NormalizeDouble(OrderClosePrice()-OrderTakeProfit(), Digits)<0.5*Point)

只是与零相比,没有NormalizeDouble的变体就不那么可靠了。它在这里起作用。


这不是关于ND的问题。Point是一个点的大小;让我们把它乘以0.5,例如将是0.00005;我不认为有任何理由将这个数字与OrderClosePrice()-OrderTakeProfit()进行比较。TP并不保证完全相同的收盘价。另外,Bais和Selves的检查条件将是不同的。

if(OrderType() == OP_SELL)
       {
        if( NormalizeDouble(OrderTakeProfit()-OrderClosePrice(),Digits) >= 0
          && OrderTakeProfit() != 0)    

这种设计更加可靠。

 
drknn:

问题是,你不了解你所使用的代码。问题是,你拿起了一挺机枪,但由于某些原因,它并不总是能开火。把你的手放在一个你了解一切的设备上,不是更好吗?А?
也许。但你最近的两篇帖子除了说教之外什么都没有,你最好把它们指向正确的想法。如果你没有这样的愿望,为什么要写不必要的东西呢?我没有强迫任何人帮助我,如果没有愿望,我也不会生气,工作的难度,我完全理解。
 
drknn:
你们这些有长代码的家伙!我想重申,别人的密码首先是一个密码表,还没有被破译出来!我的意思是说,我的密码表是一个密码表。而这是一项大量的工作!你认为有哪个程序员愿意翻阅数公里的清单吗?让我把我的代码给你们中的一个人,只是为了三千行,并要求消除这个代码的一个小误解。你认为你只是想进入我的脑洞吗?我又怀疑了。因此,我对你们有一个要求--当你们提出一个关键问题时,尽可能简短地描述问题,同时使描述足以理解其本质。否则,你的哭声就是虚空中的哭声。代码可以附在帖子里。这都是必要和充分的。

我完全同意你的观点。


FxPro2

醉翁之意不在酒

陷阱是你不了解你所使用的代码。 陷阱是你拿起一挺机枪,由于某些原因,它并不总是发射。把你的手放在一个你了解一切的设备上,不是更好吗?А?
也许。只是你的最后两篇帖子不知所云,只是道貌岸然,或者更好的是指出正确的想法。如果你没有这种愿望,为什么要写不必要的东西?我没有强迫任何人帮助我,如果没有愿望,我也不会得罪,工作的难度,我完全理解。

但你真的不明白你之前给出的代码,是吗?

 

大家好!!!。帮助plz,刚刚学习写作,peredomnoy得到了这个问题,我不能写代码,以增加手的大小由一定的步骤,在prametrov,审查了一堆顾问和能够排序,我得到了增加手,只取决于保证金。请告诉我去哪里找,我的脑袋已经坏了。我已经把我的头搞乱了。 谢谢你!

 
SeALALex:

大家好!!!。帮助plz,刚刚学习写作,peredomnoy得到了这个问题,我不能写代码,以增加手的大小由一定的步骤,在prametrov,审查了一堆顾问和能够排序,我得到了增加手,只取决于保证金。请告诉我去哪里找,我的脑袋已经坏了。我已经把我的头搞乱了。 谢谢你!

显示你的代码与条件,之后你需要按一定的步骤增加手数,在参数中设置,以及你如何尝试实现这一点。
 
Болк открытия на бай
if(Buy==true) 
  {Buy=false;

   ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask, Digits),5,SL,TP,Order,070177,0,Orange);
   if(ticket>0)
    { 
     if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 
      {Print("BUY order opened : ",OrderOpenPrice());
       Alert("Buy Order for ",Symbol());
       SendMail("Buy Order "+Symbol()+" "+Ask,SL);     
       }
     }
     else Print("Error opening BUY order : ",GetLastError()); 
     return(0); 
   }

Умножение лота в зависимости от маржи нашел в советнике, 
код вставил работает вот только в советнике он увеличивает на определенный шаг, у меня просто в %-ом соотношении

double LotSize() 
  
   {
   double lots_0;
   if (MicroLots == FALSE) {
      lots_0 = NormalizeDouble(AccountFreeMargin() * RiskPercent / 1000.0, 1);
      if (lots_0 < 0.1) lots_0 = Lots;
      if (lots_0 >= 1.0) lots_0 = NormalizeDouble(lots_0, 1);
      if (lots_0 >= 100.0) lots_0 = 100;
   } else {
      lots_0 = NormalizeDouble(AccountFreeMargin() * RiskPercent / 1000.0, 2);
      if (lots_0 < 0.01) lots_0 = Lots;
      if (lots_0 >= 1.0) lots_0 = NormalizeDouble(lots_0, 2);
      if (lots_0 >= 100.0) lots_0 = 100;
   }
   return (lots_0);
}
它是这样的