错误、漏洞、问题 - 页 2818

 
Stanislav Korotky:

顺便说一下,我记得你是Renko的粉丝。
从你的问题来看,你已经接近意识到你之前关于不可能在画布上形成的reno上应用指标和覆盖EA 的说法是错误的
欢呼吧!

 
Nikolai Semko:

是的,我可以。

附上一个测试脚本。

脚本的结果。

这只对界面指标(由用户手动施加)起作用,但对那些由EA创建的指标不起作用。任务最多是通过在EA的源代码中加入一个inlude来启用虚拟自动优化。现在,这只能通过手鼓舞来实现(对源代码的额外编辑或一些默认设置(只有当前的_符号/周期),这并不总是有效)。

而且,原则上不清楚为什么IndicatorParameters函数 不返回两个最重要的元参数。

至于画布上的指标和专家顾问,在技术上一切都可以做到,但问题是我们为什么要费心去做呢?画布的目的是不同的。对于定制报价,有一个现成的解决方案,其中指标和专家以标准的方式被整合。

 

建议 - 如何正确计算小工具和信号的利润...

上周--或者说在交易的前5天我赚了1000%,然后第二天


我又赚了1000%--它在信号和小工具中都是正确的。

所以...然后是第二周的交易--然后砰的一声。而它只有+39%。

好吧--我想我要再交易一下......今天就到此为止--我完成了0,然后咣当一声......不是+39%而是98%...往好的方面说,我得到了+4000%...



那么我有多少百分比?39或98,或者我应该相信我的眼睛--这都是4000%。

 
Stanislav Korotky:

这只对界面指标(由用户手动施加)起作用,但对从专家顾问系统创建的指标不起作用。最重要的任务是通过在EA的源代码中加入一个附件来启用虚拟自动优化。现在,这只能通过手鼓舞来实现(对源代码的额外编辑或一些默认设置(只有当前的_符号/周期),这并不总是有效)。

而且,原则上不清楚为什么IndicatorParameters函数 不返回两个最重要的元参数。

至于画布上的指标和专家顾问,在技术上一切都可以做到,但问题是我们为什么要费心去做呢?画布的目的是不同的。对于定制报价,有一个现成的解决方案,其中指标和专家以标准的方式被整合。

是的,如果该指标是用IndicatorCreate, iCustom, iMA, iMACD, i...函数创建的。并且是无监督的,也就是说,它没有使用ChartIndicatorAdd附加到任何图表上,那么你确实无法知道这个指标的TF和符号,如果这个指标不是由你创建的。如果你这样做了,那么在你创建指标并得到手柄时,你必须知道这个符号和TF。
如果这个指标不是你的,那么干涉别人的情节是不符合逻辑的,尤其是当这个指标不在图表中,而且是一种服务。
但是,如果指标,其符号和TF应该由它的手柄控制,是由你写的,但它不被你使用或被无监督地使用,你可以在其中创建一个额外的缓冲区,其中(例如通过联合)嵌入其当前TF和符号。那么即使在简单的处理手柄与你的特殊函数使用 CopyBuffer,你可以发现它是否是你的指标,如果它是你的,你可以读取它的当前符号和TF。
但我同意你的观点,如果 IndicatorParameters 有可能读取 TF 和符号,就会容易得多。很明显,这个功能缺乏它。它的缺乏不太可能与安全有关,因为除了TF和符号外,未知的手柄已经可以完全访问指标的内容。

 
Aleksander:

建议 - 如何正确计算小工具和信号的利润...

上周--或者说在交易的前5天我赚了1000%,然后第二天


我又赚了1000%--它在信号和小工具中都是正确的。

所以...然后是第二周的交易--然后砰的一声。而它只有+39%。

好吧--我想我要再交易一下......今天就到此为止--我完成了0,然后咣当一声......不是+39%而是98%...往好的方面说,我得到了+4000%...



那么我有多少百分比?39或98,或者我应该相信我的眼睛--这都是4000%。

这种天真的问题的答案是如此明显,以至于人们不禁对自我推销产生怀疑。相信我,我很希望自己是错的,但.....。

 
Sergey Voytsekhovsky:

这种天真的问题的答案是如此明显,以至于不由自主地想到了自我推销的嫌疑。相信我,我很希望自己是错的,但.....。

不 - 这确实是我第一次使用信号服务...我看到的是什么? 一个星期的百分比是这样算的,那样算的......而下个星期,我在小程序中应该期待什么? 又是0%?

我得到了认知失调--当我在这里看到一件事--然后我又看到另一件事--我应该相信什么呢????。

你如何在一个小工具中计算百分比?

Торговые сигналы для MetaTrader 5
Торговые сигналы для MetaTrader 5
  • www.mql5.com
Выберите подходящую торговую систему и оформите на неё подписку в пару кликов. Замониторенные счета сопровождаются подробной статистикой и торговой историей. Посмотрите обучающий видеоролик о том, как подписаться на Сигнал...
 

更新后,该功能已停止工作

ChartSetInteger(0,CHART_BRING_TO_TOP,0,true)

没有切换到0图,可能是什么错误?

void OnStart()
  {
   long currChart,prevChart=ChartFirst();
   int z=0,limit=100;
     while(z<limit)
     {
      currChart=ChartNext(prevChart);
      string __simvol=ChartSymbol(currChart);
      ENUM_TIMEFRAMES __period=ChartPeriod(currChart);
      if(currChart==-1)
        {
         __simvol=Symbol();
         currChart=0;
        };
         if(!ChartSetInteger(currChart,CHART_BRING_TO_TOP,0,true))
        {
         //--- выведем сообщение об ошибке в журнал "Эксперты"
         Print(__FUNCTION__+", Error Code = ",GetLastError());
         //return(false);
        };
      Print(currChart, "  ", __simvol);

      Sleep(2000);
      if(currChart==0)
         {break;};
     prevChart=currChart;
      z++;

     };
  }
 

请帮助。

我如何知道左边符号的市场订单的价格?


使用EA的例子。

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

input int inTP = 100; // Размер тейка.

#define  Bid SymbolInfoDouble(_Symbol, SYMBOL_BID)
#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnTick()
{
  if (!OrdersTotal()) // Если нет текущих ордеров
  {
    OrderSend(_Symbol, OP_BUY, 0.1, Ask, 0, 0, Ask + inTP * _Point);  // Купили с тейком.
    OrderSend(_Symbol, OP_SELL, 0.1, Bid, 0, 0, Bid - inTP * _Point); // Продали с тейком.
  }
}


回测结果。

你需要知道标记的零的价格。说到SL/TP,你可以从评论中得到它们。但当你做市价订单时(不是截图上的绿色零点),我们从哪里得到它们?


你需要它来估计滑坡的情况。例如,在终端你看到一个好的价格,点击购买。交易被执行。然后,我们想了解交易价格与我们按压时在终端的价格有多大差别。感觉MT5不允许你做最简单的分析!


或者,例如,你想调查测试仪的滞后功能对EA结果的影响。要做到这一点,你需要估计一下滑移量已经变成什么。而这是做不到的。更确切地说,我不能这样做。


我的问题是,如果我的市场订单价格在MqlTradeRequest中被设置为非零,我如何知道我的市场订单价格?

 
fxsaber:

问题,如果市场订单在MqlTradeRequest中被设置为非零,我如何知道它的价格?

用固定保证金的限制来取代市场,不会有帮助吗?

[删除]  
SEM:

更新后,该功能已停止工作

它没有切换到0图,可能是什么问题?

我有一个类似的功能--改变图表上的图案。在更新之前,它工作得很好,现在它改变了,但是,在一个图表上,它可以得到,几个带有一个图案的窗口。

//+------------------------------------------------------------------+
//| start function                                                   |
//+------------------------------------------------------------------+
void DeleteChart(void)
  {
   long currChart,prevChart=ChartFirst();
   int i=0,limit=100;
   bool errTemplate;
   while(i<limit)
     {
      currChart=ChartNext(prevChart);
      if(TimeFrame!=PERIOD_CURRENT)
        {
         ChartSetSymbolPeriod(prevChart,ChartSymbol(prevChart),TimeFrame);
        }
      errTemplate=ChartApplyTemplate(prevChart,Template+".tpl");
      if(!errTemplate)
        {
         Print("Error ",ChartSymbol(prevChart),"-> ",GetLastError());
        }
      if(currChart<0)
         break;
      Print(i,ChartSymbol(currChart)," ID =",currChart);
      prevChart=currChart;
      i++;
     }
  }
//+------------------------------------------------------------------+