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

 
Igor Makanu :

这就可以了。

最有可能的是,你在全局层面上描述了结构,在全局层面上你想给结构的字段赋值,这样做是行不通的。

谢谢你的答复。

你能告诉我,当我写#define FXT_HEADER.intSize 70时,为什么会出现错误?

 
//+------------------------------------------------------------------+
//|  Функция A/D                       |
//+------------------------------------------------------------------+
double A_D(ENUM_TIMEFRAMES tf, int shift)
  {
   double res=0;
   res=iAD(NULL,tf, shift);
   return res;
  }

//+------------------------------------------------------------------+
//|  Функция A/D  средняя                     |
//+------------------------------------------------------------------+
double A_D_moving(ENUM_TIMEFRAMES tf, int period, int shift)
  {
   double res=0;
   double a[1];
  
   
   for(int i=period-1; i>=0; i--)
     {
   ArrayResize(a,period,0);
      a[i]= A_D(tf, i);    
     }
   for(int j=shift; j>=1; j--)
     {
      res=iMAOnArray(a,0, period,0,MODE_SMA,j);
     }
   return res;
  }

你好!

试图从iAD()中制作一个移动平均 函数。到最后也没能成功。上述版本的函数输出了iAD()在当前条上的移动平均线的值。它不取决于移位变量的值。

但我需要shift变量是该函数从iAD()返回移动平均线相应值的条形图的索引。所述错误是由插入OnTick()的以下代码检测出来的。

   Comment("\n  #0= ", DoubleToString(A_D_moving(0, 20, 0)),
           "\n  ++++++++++++++",
           "\n  #1= ", DoubleToString(A_D_moving(0, 20, 1)),
           "\n  ----------------------",
           "\n  #2= ", DoubleToString(A_D_moving(0, 20, 2)));
   

如果有人可以,请告知如何解决这个错误。

 

你能帮助完成一项原始的任务吗?
- 该指标有一个账户号码的检查......如果账户号码不是指定的,该指标会给出一个信息(该指标只是为了朋友等)。
-指标 安装在图表上后--一切工作正常 ...检查通过... 该指标的作用

但在重启终端后--指标测试失败......我的理解是,指标代码的下载发生在与经纪人的连接之前?我必须在图表上重新安装它......这不是一个选项......。
你能告诉我在什么地方正确插入这个代码吗? 我希望能够把它放在图表上一次,把它保存为模板和所有 ...

 {

   if (AccountInfoInteger(ACCOUNT_LOGIN)  != 123456) {

      Alert("Если не работает: блаблабла");

      return(INIT_FAILED);

   }
 
Roman Agafonkin:

你知道在哪里插入这个代码吗?这样,你可以把它放在图表上一次,保存为模板,就可以了...

试着在它前面加上 while() ,等待在一定范围内登录。不知道如果还没有登录,AccountInfoInteger(ACCOUNT_LOGIN) 会给出什么函数--取消打印,然后粘贴,而不是问号。

while (AccountInfoInteger(ACCOUNT_LOGIN)==????) Sleep (100);
 
Igor Zakharov:

在这之前试试while(),在一定范围内等待登录。 我不知道如果还没有登录,AccountInfoInteger(ACCOUNT_LOGIN) 会给出什么函数--打印和粘贴而不是问号。

你不能在OnInit中执行很长的东西--终端可以卸载代码。

在指示器中不能滑动工作

我不明白为什么源代码不能工作--要么你的经纪人没有好的服务器,要么互联网太慢--通常这种代码是由你在所有论坛上的 "朋友 "分享的))


我认为你必须在指标主体中添加一个静态的检查变量,当一个tick到来时,它将连接到经纪人和授权,唯一的事情是我将在加载图表时给出第一个tick - 但它可能会被处理,顺便说一下prev_calculated ==0是一个非常好的理由来检查 "许可证"。

 
我开始教我女儿如何交易。她有这样的问题:"我明白,如果说我买了一磅,但我不明白,如果我没有买,也没有这一磅,我怎么能卖出一磅。 说实话,我无法向她解释清楚,我说了一些含糊的话,说这是一个非现金的虚拟交易,没有必要有这些磅的库存来卖。总的来说,我不喜欢自己的答案。而这样一个问题的正确答案会是什么?
 
khorosh:
我开始教我女儿做交易。她有这样的问题:我明白,如果说买一磅,但不清楚你怎么能卖出一磅,如果我没有买,我也没有。 说实话,我无法向她解释清楚,我说了一些模糊的话,说这算是非现金、虚拟交易,有这些磅的库存可以卖,不一定。总的来说,我不喜欢自己的答案。而这样一个问题的正确答案会是什么?

你不需要了解事情来赚取利润。你知道的越少,你就越容易 玩。我认为。

她能这么早就开始做,这很酷)在这个过程中,她会自己找到答案(她会问自己),如果有的话......
 
onedollarusd:

你不需要了解事情来赚取利润。你知道的越少,你就越容易 玩。我认为。

如果我告诉她,当价格已经下降了一个合适的距离并转身时,就按下购买按钮,反之亦然。你认为这样做够吗?)

 
Igor Makanu:

你不能在OnInit中执行很长的东西--终端可能会卸载代码。

在指标中必须不工作

我不知道为什么源代码不能工作--要么你的经纪人没有好的服务器,要么互联网太慢--通常这个代码是由你在所有论坛上的 "朋友 "分享的))。


我想我需要在指标主体中添加一个静态检查变量,当一个tick到来时,它将连接到经纪人和授权;我看到的唯一的事情是,第一个tick被自己加载到图表中 - 但它可能被处理,顺便说一下prev_calculated ==0是一个检查 "许可证 "的好机会。

我解决了同样的问题,在OnCalculate函数 的开头插入了以下代码。

 if(account_number>0)
 {
   int akk;
   akk=AccountInfoInteger(ACCOUNT_LOGIN);
   if(akk==0)return(0);
   if(akk!=account_number)
   {
     Alert("Неверный номер счёта.");
     int window=ChartWindowFind();
     ChartIndicatorDelete(0,window,MeName);
     return(0);
   }
 }              

account_number是用#define定义的(全局可见变量也可以),MeName也是如此,但一般来说是指标的简称。

 
Yurij Kozhevnikov:

我通过在OnCalculate函数的 开头插入这段代码解决了同样的问题。

account_number是用#define定义的(你可以使用全局可见性变量),MeName--类似的,但一般来说是一个简短的指标名称。

是的,你有一个很好的例子,这就是我在写的东西

但你需要处理指标的第一次启动--第一次启动可能是连接,也可能不是,如果许可证没有通过,你应该一次性卸载指标,作为一个计数器,2-3次没有许可证,然后卸载指标。

原因: