苏尔托诺夫系统指标 - 页 25

 
Maxim Kuznetsov:

交易员用Excel工作。它就像 "石蕊试纸"。如果他不熟悉电子表格,那他到底是什么样的交易员?他是如何计算预算和资金的?

而且,如果程序员不能将excel表翻译成MQL程序,他仍然应该练习:-)

优素福正试图提出他的观点(即使是我原则上不同意的推理),但你正在做一件更糟糕的事情--你没有提供基本的帮助,而是强迫他去学习不必要的东西。同时,大家都知道,他不会开始编程,也不会把他的公式转移到mql中。你只是嘲弄,从一个人身上拿走几个月甚至几年的时间。

嗯,是的,我无法想象如何直接写到excel表格中--它是由我自己坐在那里,解开纠结--这些表格非常错综复杂地交织在一起--所以它将不得不花时间来弄清楚,并且评估工作也应该根据TOR。

此外,还是根据我的经验,当我从Excel中重写算法时,我发现了逻辑上的错误,因为我另外思考了我所写的东西--在Excel中幻想往往很方便。

此外,我建议附上文件本身。

因此,我认为你关于强迫学习的论点是没有根据的,也是没有证据的。

如果你有这个技能,为什么不接过来,通过心灵感应从他的头脑中远距离读取TOR来帮助他呢?

 

我已经厌倦了解谜。就像我在第一页做了一个截图,上面有解释https://www.mql5.com/ru/forum/305148。 为了使信息更容易消化,在浅显的故事上进行计算,越少越好(这样会更容易理解你)。如果你想得到帮助,请压缩你的文字卷,没有人会阅读大的文字,更不会理解它。

Расчет коэффициентов
Расчет коэффициентов
  • 2019.02.28
  • www.mql5.com
Нужно погонать коэффициенты к 1-7 следующим образом: A1*k1+B1*k2=I1 A2*k1+B2*k2=I2 A3*k1+B3*k2+C3*k3=I3 A4*k1+B4*k2+C4*k3+D4*k4=I4 и так далее...
 

移位系列的第一个数值如下。

1.1376 1.1377 1.1375 1.1361 1.1358

因为你有它。

x1 x2 x3 x4 y

1.1376 1.1376 1.1377 1.1375 1.1361

那么x1和x2是同一行?从1.1358 开始的CD5怎么了
 
Yousufkhodja Sultonov:

已更正

对整个计算表进行截图。

 
forexman77:

对整个计算表进行截图。

最好是Excel文件的压缩文件,并提出相关问题。否则这将永远持续下去。你最终会折磨到优素福的。嗯,他不能这样做。
 
Yuriy Asaulenko:
你最好将excel文件压缩,并询问相关问题。否则这将永远持续下去。你最终会折磨到优素福的。嗯,他不能这样做。

劝说得好,自己发个截图,为发展做贡献。我明天会去看看。

你得到什么样的答案,就会有什么样的问候。如果你没有明确的信息,你就不会得到任何结果。

 
forexman77:

对整个计算表进行截图。

不要担心,该方案现在已经完全修复。

 
Yuriy Asaulenko:
最好是将Excel文件压缩后再询问相关问题。否则这将永远持续下去。你最终会折磨到优素福的。嗯,他不能这样做。

尤里,你也在网上关注吗?

 
Yousufkhodja Sultonov:

尤里,你也在网上关注吗?

是的,零星的,但我仍然相信这没什么,无中生有的爆发是系统本身的不稳定性。
 
Yousufkhodja Sultonov:

因此,这里是虚拟指标。

例如,这个假人是一个简单的MA指标,但它根据你的情况进行了一些简化,在性能上不是最佳的,但对学习的压力较小。

为了编写你的指标,你只需在函数体中编写计算代码即可

void Soltonov(int pos) // основной расчет индикатора бара pos. В массиве X, размерностью 13 находятся значение цены 13 бар, начиная от позиции pos

目前,有一个以3行形式计算的MA,周期为13。

为什么我默认为13岁?因为你自己说,你目前使用13个价格值进行计算。

这13个值位于数组X中(X[0]到X[12])。

你只需在这个函数的主体中对这13个数值进行计算,并将数值写入指标缓冲区SoltonovBuffer[pos]中。整个指标将自动形成。

//+------------------------------------------------------------------+
//|                                                     Soltunov.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com/ru/users/yosuf"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot Soltonov
#property indicator_label1  "Soltonov"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrMagenta
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1

//--- indicator buffers
double         SoltonovBuffer[]; // это буфер линии индикатора
double         X[];              // это вспомогательный массив для значений цены
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,SoltonovBuffer,INDICATOR_DATA);  
   ArrayResize(X,13);                      // задаем размер динамического массива X - 13
   ArraySetAsSeries(X,true);               // для удобства обучения устанавливаем индексацию массива как в таймсерии
   ArraySetAsSeries(SoltonovBuffer,true);  // для удобства обучения устанавливаем индексацию массива как в таймсерии
   ArrayInitialize(SoltonovBuffer,EMPTY_VALUE); // инициализируем буфер индикатора пустыми значениями

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
   int N=rates_total-prev_calculated;
   if(N>1 && rates_total>12) // если осуществляем первый вход или была задержка больше времени одного бара, выполняем инициализацию всех баров
     {
      for(int i=rates_total-1; i>11; i--)
        {
         ArrayCopy(X,price,0,i-12,13);
         Soltonov(rates_total-1-i);
        }
      ArrayCopy(X,price,0,rates_total-13,13);
      return(rates_total);
     }
   else if(N==1) ArrayCopy(X,price,0,rates_total-13,13);     // если новый бар
   else  X[0]=price[rates_total-1];                          // если новый тик без образования нового бара
   Soltonov(0);
   return(rates_total);
  }
//+------------------------------------------------------------------+
// Писать код в этой функции!
//+------------------------------------------------------------------+
void Soltonov(int pos) // основной расчет индикатора бара pos. В массиве X, размерностью 13 находятся значение цены 13 бар, начиная от позиции pos
                       // X[0]- значение цены бара с номером pos
                       // X[1]- значение цены бара с номером pos+1
                       // ....
                       // X[12]- значение цены бара с номером pos+12
  {
   double Sum=0;                         // создаем переменную для подсчета суммы баров
   for(int i=0;i<13;i++) Sum = Sum+X[i]; // суммируем 13 баров
   SoltonovBuffer[pos]=Sum/13;           // помещаем в значение индикаторного буфера среднее арифметическое 13 цен
  }
//+------------------------------------------------------------------+

在MT5中,你按下F4并进入ME(MetaEditor)。在这里你可以创建一个自定义指标(Ctrl+N),在创建时指定一个名称,例如"Soltunov"(我的是默认名称)。当代码生成后,用我的假人替换所有这些代码。

并开始掌握编程。

我建议在MT5设置中把窗口的最大条数预设为不大(5000条就足够了)。

你不需要阅读任何书籍来掌握MQL5语言。按F1键使用帮助就可以了,首先点击感兴趣的功能或词。还可以使用帮助中的搜索功能。

请看gif动画(点击图片)。


我还强烈建议立即掌握ME的内置调试器与中断点设置,以观察变量变化的能力来步入程序。

也请看动画的GIF。


祝你好运,优素福!
如果你有任何问题,如果经验法则的方法没有帮助,不要犹豫,请提出。

我认为整个世界都会帮助你。

附加的文件:
Soltonov.mq5  8 kb