来自一个 "傻瓜 "的问题 - 页 130

 
呜呼...去读下去。
 

好!

Win7我在论坛上找不到任何东西,那程序的工作目录呢?在我看来,在win7系统中,启动的时候会创建一个临时目录,所有的程序都会被复制到这个目录中,所以,在使用MetaEditor的时候,结果是我复制了一个文件 到其中,例如在D盘,但在metaeditor窗口中却什么都没有。我从元编辑窗口调用 "打开文件夹",窗口出现在C盘的某个临时位置。该怎么做?如何同步它们或禁止win7像这样分割它们?

谢谢你!

Документация по MQL5: Файловые операции / FileCopy
Документация по MQL5: Файловые операции / FileCopy
  • www.mql5.com
Файловые операции / FileCopy - Документация по MQL5
 
bivmail:

你好!

Win7我在论坛上找不到任何东西,那程序的工作目录呢?在我看来,在win7系统中,启动的时候会创建一个临时目录,所有的程序都会被复制到这个目录中,所以,在使用MetaEditor的时候,结果是我复制了一个文件 到其中,例如在D盘,但在metaeditor窗口中却什么都没有。我从元编辑窗口调用 "打开文件夹",窗口出现在C盘的某个临时位置。该怎么做?如何同步它们或禁止win7像这样分割它们?

谢谢你!

https://www.mql5.com/ru/forum/1111/page712#comment_173757
 
TheXpert:

1.每种语言都有自己的适用范围。说一种语言是 "最先进的 "一般来说是荒谬的。

2.叫什么有什么区别呢?这一点几乎没有改变。

1.好的,我同意。那么mql5是自动交易的最先进的语言。:) 让我们继续推动它。

2......就是这样, 我们在问,我们在问!"。

弗拉迪克斯
2.支持的是

我们都是集体要求的!

:)

 
大家好。
关于mql5语言 的基本问题是在这里问的吗?:-)
从讨论情况来看,这里只有地狱式的失败......
 
GameOver:
大家好。
关于mql5语言 的基本问题是在这里问的吗?:-)
我不知道,但从讨论的情况来看,这里只有无间道的OOP-er...

总是有不同口径的假人。 好吧,你可以建立一个 "假人 "分支,如果你觉得在那里更舒服的话;-)。
 
在试图掌握这种句法创造时,相信语言的 "简单性"。
开始画一个粗略的脚本。
总之,有一个说明和一个问题。

void OnStart() {
   MqlRates  aBars[];
   ArraySetAsSeries(aBars,true);
   int maxBars=TerminalInfoInteger(TERMINAL_MAXBARS); , bad_bars=0;
   int bars=CopyRates(Symbol(),Period(),0,maxBars,aBars);

唉,如果条数被设定为无限,脚本就不能工作了。
它说没有足够的内存,也就是说,调用TerminalInfoInteger(TERMINAL_MAXBARS) 的结果实际上是

这很奇怪,因为实际上图表上的条数不超过100000条。
如何才能获得真正的加载条数? 因为文案人员根本没有时间去回报什么......

第二个问题是这样的。
试图实现一个基本的检查(它在μl4中是基本的)。

      // delete bad day of week and bad bars
      if (TimeDayOfWeek(Time[i])<1 || TimeDayOfWeek(Time[i])>5 || (High[i]-Low[i])<10*Point) { errBar++; continue; }

论坛搜索(mql5帮助搜索短语day_of_week,dayofweek没有得到任何信息......非常有用的帮助!)导致了以下的实现

MqlDateTime temp;
TimeToStruct(aBars[i].time,temp);
if (temp.day_of_week<1 || temp.day_of_week>5 ||  aBars[i].high-aBars[i].low<10*Point() ) {errBar++; continue;}

而不是一条线,有三条线--而且是初级的。
还是所有的基本操作现在都被繁琐的创建对象、类、中间结构所取代?

Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5
 

日安!

请告知在俄罗斯是否有经纪商提供Metatrader作为FORTS和MICEX的工作终端?

 

请建议一个比这个更快的 "轮盘 "算法变体。

//——————————————————————————————————————————————————————————————————————————————
// Рулетка.
int Selection()
{
  //----------------------------------------------------------------------------
  int    i=0,u=0;
  double p=0.0,start=0.0;
  double          fit[][2];
  ArrayResize(fit,SizeOfPop);
  ArrayInitialize(fit,0.0);
  double delta=(Population[0][0]-Population[0][SizeOfPop-1])*0.1-Population[0][SizeOfPop-1];
  //----------------------------------------------------------------------------
  for(i=0;i<SizeOfPop;i++)
  {
    fit[i][0]=start;
    fit[i][1]=start+MathAbs(Population[0][i]+delta);
    start=fit[i][1];
  }
  p=RNDfromCI(fit[0][0],fit[SizeOfPop-1][1]);

  for(u=0;u<SizeOfPop;u++)
    if((fit[u][0]<=p && p<fit[u][1]) || p==fit[u][1])
      break;
    //--------------------------------------------------------------------------
  return(u);
}
//——————————————————————————————————————————————————————————————————————————————
很明显,数组可以从函数中取出来,这样它们就不必每次都被声明并调整大小,但我需要一个更革命性的解决方案。:)
 
GameOver:
在我试图掌握这种语法创造时,相信语言的 "简单性"。
开始画一个粗略的脚本。
总之,有一个说明和一个问题。

void OnStart() {
   MqlRates  aBars[];
   ArraySetAsSeries(aBars,true);
   int maxBars=TerminalInfoInteger(TERMINAL_MAXBARS); , bad_bars=0;
   int bars=CopyRates(Symbol(),Period(),0,maxBars,aBars);

唉,如果条数被设定为无限,脚本就不能工作了。
它说没有足够的内存。也就是说,实质上,TerminalInfoInteger(TERMINAL_MAXBARS) 将被调用。

这很奇怪,因为实际上图表上的条数不超过100000条。
我怎样才能得到真正加载的条数? 因为版权没有时间来返回任何东西......

让我们试着去弄清楚。对于CopyRates()函数,倒数第二个参数是

int              count,             // сколько копируем
即要复制的元素的数量。在你的设计中,元素的数量是无限的。粗略地说,不真实 :) 这可能是你工作时发生的情况,不断地重新分配内存,直到它被耗尽。尝试使用一个更具体的值,而不是TerminalInfoInteger(TERMINAL_MAXBARS):MQL5 参考 /访问时间序列和指标 / Bars