新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 966

 
Alexey Viktorov:

那么,在这种情况下,这些自写的函数到底是干什么用的?

我得到了昨天的最高和最低价格,并从这些值中确定了中间值。

我不知道......我没有想到......。我现在要重写...这样更容易...谢谢!

 
Igor Makanu:

资金管理

至于随机条目,挂单跟随价格,在优化器中根据公式y=kx+b进行选择,以后我将使用多项式和指数,但优化器只搜索因素和订单值,一般不放雾,它是一个网格,嗯,几乎是,但目标尚未达到。

当我看市场的时候(虽然我一直在做,暂停得很厉害),从我在论坛上注册开始,我就一直在和他们打交道。 当然,我花了很长时间来提高MQL的编程层,但我在相关写作专家的一年里,按照工人的要求得到了大致的想法 ))

没问题,去吧。

我明白了,我非常理解,因为我以前也经历过这种情况。
所有这些都是为了找到一些参数(在这种情况下,至少是线性y=kx+b中的系数k和b或指数y=ax²+kx+b中的a,k,x)。这些系数最好是随着每一个刻度 的变化而变化,这就是为什么我说优化应该在程序本身中,并自动和持续地进行,而不是在外部测试器中不时地以手动模式进行(一天、一周或一个月一次......)。 同时你需要控制周期,在这个周期中观察到的线性或抛物线(指数)回归发生。这个时期也应该随着每次打勾而改变。虽然目前寻找直线或抛物线与寻找直线或抛物线回归的最佳周期是一样的。
但外部测试者总能找到这样的恒定静态参数,这将普遍保证只适合那组历史数据,在此基础上执行测试,在此基础上,过去的历史时期,当然会观察到稳定的利润和美丽的利润线,但我们需要现在和未来。

所有这些,都归结为控制通道宽度、通道长度、通道击穿、返回击穿线的线性或更高程度的通道。而这是一个模式识别问题,只应在内部解决,而不是在外部解决。

 
Nikolai Semko:

我明白了,非常明白,因为我以前也经历过。

我也是,而且不止一次。

尼古拉-森科

但外部测试者总是能够选择这种恒定的静态参数,这将普遍保证只适合那组历史数据,在此基础上运行测试,在此基础上,已经过去的历史时期,当然会得出稳定的利润和美丽的利润线,但我们需要现在和未来。

这就是问题所在--不,这和书上的测试和前进是一样的,图表不同,但趋势是存在的,据我所知,我的EA不是在打未来价格本身,而是未来的价格轨迹。

 
伙计们,这里有一个问题。看,有一个前缀增量++q和后缀q++,利用它们的特点,我们可以得到相当不同和有趣的效果,例如,这个q++增量的优先级执行加法的时间较晚/向后,即在之后而不是立即,这如何能在质数上做到,是否可能,例如我想这个加法q+5,首先我需要用q,然后加5?
 
Seric29:
伙计们,这里有一个问题。你看,有一个前缀增量++q和后缀q++,利用它们的特点,我们可以得到相当不同和有趣的效果,例如,这个q++增量的优先级执行加法的后期/后退,即在之后而不是立即,它如何与素数一起做,是否可能,例如,我想这样加q+5,首先我需要使用q,然后加5?

如果要将其作为一个循环计数器使用,那么只需要

for(int q = 0; q <= 25; q+=5)
 
Alexey Viktorov:

好吧,如果这被用作一个循环计数器,那就很容易了

而如果你把一个q+5的表达式传入一个函数,先执行q,然后再加5,就不能这样做了,对吗?

int q
void Funk(int pr){}
вызвов Funk(...q+5...) сначала используем q а после прибавляем 5
как здесь например Funk(q++) сначала используем q а после прибавляем 1
 
与本主题无关的评论已被移至"OOP,模板和mql5中的宏, 交易的技巧和诀窍"。
 
Seric29:

而如果你把一个q+5的表达式传入一个函数,先执行q,再加5,你就做不到了,是吗?

5是一个常数还是一个变量?如果是常数,没问题:把q传到函数中,用完后加5;如果是变量,传两个变量,用完q后加第二个变量。另一个选择是全局声明变量。 那么你根本不需要通过什么。
 

你好,我想在利润=0时关闭不同方向的头寸 不同数量的买入和卖出头寸,不同的手数。

平均价格搜索功能,即零利润点有什么问题?

 double AveroProf(string sy="", int op=-1, int mn1=-1) 
   {
   int i=0;
   int kol=0;
   double lots=0;
   double sum=0;
   double sum1=0;
   double zeroprice=0;
   double tick_value;
   for (i=0; i<OrdersTotal(); i++)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderMagicNumber()!=mn1) continue;
      if (OrderType()==OP_BUY)
      {
       lots=lots+OrderLots();
       sum=sum+OrderLots()*OrderOpenPrice();
       sum1=sum1+OrderProfit()+OrderSwap()+OrderCommission()  ; 
      }
      if (OrderType()==OP_SELL)
      {
       lots=lots+OrderLots();
       sum=sum+OrderLots()*OrderOpenPrice();
       sum1=sum1+OrderProfit()+OrderSwap()+OrderCommission()  ;
       kol=kol+1;
      }
   
   }
   if (lots>0)
   { 
   zeroprice=sum/lots;
   zeroprice=NormalizeDouble(zeroprice,_Digits);
   zeroprice = (MathRound(zeroprice*MathPow(10,Digits)))/MathPow(10,Digits);
    }   
   return( zeroprice);
   }
 
请谁能帮我解决这个问题: https://www.mql5.com/ru/forum/322133
Как использовать WinApi для преобразования времени в StrategyTester MT5?
Как использовать WinApi для преобразования времени в StrategyTester MT5?
  • 2019.09.12
  • www.mql5.com
Я успешно создал CustomSymbol в MT5, и я получаю эту таблицу в приложении...
原因: