[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 408

 
Zhunko:

很难说分配的那个人。你得问问梅塔克沃特人。

我立即相信了维克多的话,但是......为了消除疑虑,我只是写到了元引号。

Zhunko:

我的真实账户在MRC中被封锁了,因为频繁地打开和更新图表。这不是一个MQL4函数,而是一个内部图表查看器

你说的 "经常打开图表"是什么意思? 我明白你说的更新市场环境变量是什么意思,但我不明白打开和更新图表是什么意思...

Zhunko:

也许,例如,MarketInfo()访问了服务器或只从市场概览中接收了部分数据。

我给支持部门写了信,一旦他们回复,我就在这里回信!
 
Andrew245:

我猜到了,但我找不到它们,这些止损参数
https://docs.mql4.com/ru/trading/OrderSend
 

我曾经问过一个关于图书馆使用 的问题。不过,我确实有点困惑。

按照我的理解,库是一组带有代码的函数,我不记得具体叫什么了,它是 "封闭的",也就是说,在这个过程中,库函数的代码不会受到来自外部的任何影响。

顺理成章地,当所有经常使用的、不仅是的功能被移出EA时,就会非常方便。但是,为什么我们会需要这些 "嵌套 "呢?毕竟,图书馆的工作离不开它们。那么,内含物是不需要的?谁在使用它?

 
pako:

每年10%是好事还是坏事?

嗯,他们总是说,最主要的是保持平衡曲线的平坦,你可以用MM增加你的利润。或者不是这样?
 
Dmido:

嗯,他们总是说,主要是保持平衡曲线的平坦,为了增加利润,你可以使用MM。或者不是这样?


试着增加

如果科利安不来。

 
TarasBY:
本日开始于当前D1条的开始(iTime (NULL, PERIOD_D1, 0)),但你是不是在寻找简单的方法?:))


不起作用。

iTime (NULL, PERIOD_D1, 0) 打印137082240

并在函数中插入打印所有可用的历史交易,但不包括今天的交易.....。

GetProfitFromDateInCurrency(NULL,-1,-1,(iTime (NULL, PERIOD_D1, 0))); 
видимо правильнее будет GetProfitFromDateInCurrency(NULL,-1,-1,(TimeCurrent()-iTime (NULL, PERIOD_D1, 0)));   НО И ТУТ РЕЗУЛЬТАТ ВСЕ СДЕЛКИ, ВМЕСТО СЕГОДНЯШНИХ
 
lottamer:


不起作用。

iTime (NULL, PERIOD_D1, 0) 打印137082240

并插入函数,打印所有可用的交易历史,而不是今天的交易.....

如果你使用GetProfitFromDateInCurrency()(原版--这很重要:我不知道你在你的版本中一定得到了什么),那么该函数必须像这样调用。
GetProfitFromDateInCurrency (Symbol(), -1, -1, iTime (NULL, PERIOD_D1, 0));

而该函数将返回自当日开始关闭的订单的利润。

而代码中所有的废话都是通过Print()捕捉到的。

 
hoz:
你说的 "频繁打开图表 "是什么意思? 我理解市场环境变量的更新,但我不理解图表的打开和更新...。
当你打开并更新一个图表时,服务器上会有对新数据的请求。一些贪婪的经纪公司宁愿不把钱花在更强大的服务器和更广泛的渠道上,而是把钱分散到他们的口袋里。他们必须限制来自终端的请求数量,以便弱小的服务器不会被 "挂断"。MRC每天只有2000个请求。这比他们的工具数量乘以TF的数量要少10倍,还不算交易请求
hoz:

我曾经问过一个关于图书馆使用的问题。不过,我确实有点困惑。

按照我的理解,库是一组带有代码的函数,我不记得具体叫什么了,它是 "封闭的",也就是说,在这个过程中,库函数的代码不会受到来自外部的任何影响。

顺理成章的是,当所有经常使用的、不仅是的功能被移出EA时,是非常方便的。但是,为什么我们会需要这些 "嵌套 "呢?毕竟,图书馆的工作离不开它们。那么,内含物是不需要的?谁在使用它们?

MQL4中的内含物有助于安排代码。例如,在我的文章中,3000线的指标是这样的。

#property indicator_separate_window

#include <stdlib.mqh>
#include <stderror.mqh>
#include <ServicesMT4.mqh>
#include <Spectrum.mqh>
#include <TimeFrames.mqh>
#include <GeneralFunctions.mqh>
#include <DynamicArray2.mqh>
#include <SPECTRUM_IND_Macros.mq4>
#include <SPECTRUM_IND_Preset_Buffers.mq4>
#include <SPECTRUM_IND_Extern_Variable.mq4>
#include <SPECTRUM_IND_Global_Variable.mq4>
#include <SPECTRUM_IND_Functions_Project.mq4>

void init()
 {
  int    i = 0;
  string i_sName = StringSubstr(WindowExpertName(), 0, StringLen(WindowExpertName()) - 8);
  g_nCounterStart = 0;
  #include <SPECTRUM_IND_Check_Param.mq4>
  if (Postfix == "") g_sNameIndicator = i_sName + g_sPostfix;
  else g_sNameIndicator = i_sName + g_sPostfix + Postfix + " ";
  g_sNameObject = g_sNameIndicator + "Derivative ";
  g_sNameLine = g_sNameIndicator + "Line ";
  g_sNameSpectrum = g_sNameIndicator;
  IndicatorShortName(g_sNameIndicator);
  #include <SPECTRUM_IND_Extern_Variables_In_Array.mq4>
  #include <SPECTRUM_IND_Buffers.mq4>
  ServiceRefreshChart(WindowHandle(Symbol(), 0), 1000);
 }

void deinit()
 {
  ObjectsDeleteAll(g_nWindow);
  DeleteObject();
 }

void start()
 {
  if (g_bStop) return;
  #include <SPECTRUM_IND_Start_Variable.mq4>
  #include <SPECTRUM_IND_Start_Initialize.mq4>
  #include <SPECTRUM_IND_Optimization.mq4>
  #include <SPECTRUM_IND_Calc_Filters.mq4>
  #include <SPECTRUM_IND_Calc_Last_Derivative.mq4>
  #include <SPECTRUM_IND_Show_Lines.mq4>
  #include <SPECTRUM_IND_Show_Sum.mq4>
  g_nBegin = s_nBegin;
  g_nTemp_SizeChart = s_nSizeChart;
  g_tLastTime = iTime(NULL, g_nPeriod, 0);
  ArrayCopy(g_adTemp_PriceBeginBar, s_adPriceBeginBar);
 }
类似操作的5行累积起来,或一个单独的算法,或一些其他标准的组,它可以被分配在一个单独的文件。不过,看200行以内的代码比一次看10000行要好。你会为调整它而感到疲劳。在MQL4中,最好避免函数调用。特别是,在循环中。如果可能的话,最好是暴露出该功能。代码将工作得更快。内含物在这里有很大的帮助。

不幸的是,编译器不允许在一个模块中多次使用一个包容。这通常是一种节省重复性代码的方法。

 
hoz:
我立即相信了维克多的话,但是......为了消除任何疑虑,我只是写到了元引号。
...

维克多是绝对的、完全正确的。当图表打开 时向服务器发出的请求,不是来自模拟器功能的请求,而是来自用户的手动操作。

 
Integer:

维克多是绝对的、完全正确的。当图表打开时向服务器发出的请求,不是来自模拟器功能的请求,而是来自用户的手动操作。

图表的请求与RefreshRates()的请求相似。我毫不怀疑,它指的是服务器。也就是说,RefreshRates()不是一个交易函数

我得问问梅塔克沃特人。