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

 
AUser:

我想知道如何将数据保存到一个文件中。我写了以下代码。

只有最后的价格值被保存到文件中。我想得到一列中的价格值。我哪里做错了?

请看MQL5参考/ 标准常量、枚举和结构/ 输入/输出常量/ 文件打开标志中的 "指定读和写标志时的操作特点"。
 

我真的很笨))。我听从了先前的建议,重写了代码,虽然我不明白为什么会这样......反正什么也没变。在概念上,它是向文件写东西的最基本的程序,而我是如此愚蠢......)

void OnInit()
{
double BID = SymbolInfoDouble(_Symbol,SYMBOL_BID);
int FILE = FileOpen("FILE",FILE_WRITE|FILE_CSV,'\t',CP_ACP);
FileIsEnding(FILE);
FileWrite(FILE,BID);
}
void OnDeinit(const int reason)
{
int FILE = FileOpen("FILE",FILE_WRITE|FILE_CSV,'\t',CP_ACP);
FileClose(FILE);
}

只是提醒一下,我正试图写一个 将刻度线保存到文件中的程序。由于某种原因,只保存了最后一个刻度。

 
AUser:

我真的很笨))。我听从了先前的建议,重写了代码,虽然我不明白为什么会这样......总之,没有什么变化。在概念上,它是向文件写东西的最基本的程序,而我是如此愚蠢......)

只是提醒一下,我正试图写一个将刻度线保存到文件中的程序。出于某种原因,它只保存了最后一个刻度。

职能
FileIsEnding(FILE);

根本没有把文件光标设置到文件的末尾,这可能是你的本意。

解决了这个问题,你就会很高兴。:)

 
AUser:

我真的很笨))。我听从了先前的建议,重写了代码,虽然我不明白为什么会这样......反正什么也没变。在概念上,它是向文件写东西的最基本的程序,而我是如此愚蠢......)

只是提醒一下,我正试图写一个将刻度线保存到文件中的程序。由于某种原因,只保存了最后一个刻度。

这是关于正确的方法。

int FILE;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   FILE = FileOpen("FILE",FILE_WRITE|FILE_CSV,'\t',CP_ACP);
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   FileClose(FILE);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   double BID = SymbolInfoDouble(_Symbol,SYMBOL_BID);
   FileWrite(FILE,BID);
  }
//+------------------------------------------------------------------+
 
sergey1294:

关于这是它应该是这样的

正是如此,谢谢你))。
 
ZahvatkiN:

我注意到,在MT4中,开仓前可以设置止损和止盈水平,但在MT5中没有,或者可以,但方式不同?

 
sergeev:

ZahvatkiN:

我注意到,在MT4中,开仓前可以设置止损和止盈水平,但MT5没有这个功能,还是可以设置,但方式不同?


这里是讨论的地方https://www.mql5.com/ru/forum/1111/page561
 

Hello.Code.Working TF M15.Transition to Open-Close block takes place on a new bar.

如果由于重新报价(例如),头寸 将不会打开,那么它将在下一栏重新打开。

而如果进场标准(看前一个条形的OHLC)消失了,那么这个位置就不会打开。

我的理解是否正确?

ZS.可能至少在新的一分钟内进入是有意义的。

void OnTick()
  {CopyTime (_Symbol,PERIOD_M15,0,1,time);
   if (lastbar==time[0]) return;
   lastbar=time[0];
   
  SearchForExit();
  SearchForEnter();
 
   return;
  }
 

同事们,你们能不能在没有基准的情况下一目了然地告诉我,哪种方法更快:是对整个历史记录执行一次CopyTime(),还是每次只对某些柱子(可能少于整个历史记录的Bars())调用它,并将其中一个柱子的时间复制到Arr里?

如果你不回头看基准,而是根据知识进行逻辑推理,你怎么能证明你的答案呢? ...虽然我明白这已经是C/C++的方向了...

 
正确的做法是为每项挑战要求一个合理的适当深度。而且不需要进行全面的深度查询。 重要的一点是,历史可以在任何时候异步下载。