[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 80

 
drknn:
也许那里的值以零结尾,而这个最后的零在归一化过程中被简单地丢弃了?被丢弃是因为条目0.1等同于0.10,0最好被丢弃?

不太可能,我用手看了一下最后一栏的行数值,没有零......而且在某些情况下,数值正好转换为第四位数,有时转换为第三位数,因为尾数>5
 
drknn:


它不起作用(它向字符串返回一个正确的值,但变量充满了废话,3位或4位。

有什么方法可以正确地从字符串中获得这个值吗?

 
NameLess:


它不起作用((字符串返回一个正确的值,但变量充满了废话,3位或4位。

有什么方法可以正确地从字符串中获取数值吗?


你可以做一个dll-case,并在其中进行舍弃。我不得不做这样一件事来简单地丢弃一个数字的小数部分。我不明白另一件事--指标代码是为五位数设计的吗?这个问题可能只能由开发人员来回答。或者只是做你自己的指标。
 
drknn:

你可以在里面做一个圆和圆。我不得不这样做,以简单地丢弃一个数字的小数部分。这里不清楚的是--指标代码是为五位数设计的吗?这个问题可能只能由开发人员来回答。或者只是做你自己的指标。

我检查了iMA,似乎没有问题。 说实话,我不知道是什么原因造成的。
 
NameLess:

我看到了iMA,它似乎是好的。说实话,我不明白为什么会发生,但它确实发生了。我不知道如何处理dlls,你至少可以给我一个链接来阅读吗?


我不知道从哪里获得链接来读取dll-case的内容。或者尝试使用MQL4将值放入字符串中,并制作一个函数,只从字符串中提取X个字符。例如,价格=1.25254130 - 这个值被引入到字符串中。该函数应浏览前7个字符,并准确返回这些字符--即1.2525254。我们只是把这个值循环到一个新的字符串中,像珠子一样,一串一串的。然后将其转换为双数并从子程序中返回。

关于dll - 在这个论坛上看一下这样的东西https://www.mql5.com/ru/forum/124088

 
drknn:


这已经是一个问题了--你至少需要有一种编程语言的浅显知识。或者尝试将字符串中的值,做成一个函数,只从字符串中取出x个字符。例如,价格=1.25254130 - 这个值被输入到字符串中。该函数应该循环浏览前7个字符,并准确返回这些字符--即1.2525254。我们只是把这个值循环到一个新的字符串中,像珠子一样,一串一串的。然后将其转换为双数并从子程序中返回。

关于dll - 在这个论坛上看到这样的东西https://www.mql5.com/ru/forum/124088


我知道,并不深入,但在任何语言中都没有)))),是的,这个方法很熟悉。谢谢你的建议。我只是从未处理过dlls,因为我从未做过专业的编程。

说实话,我很困惑,因为这个问题根本不符合逻辑,我无法从指标中得到一个值,或者说我可以,但只能得到一个字符串。

 

请告知如何在EA中允许单次执行一个条件(如开立一个订单),而不是每次都重复执行。在这种情况下,当关闭一个头寸 时,EA不应该打开一个新的头寸。我试着去描绘它,但它并没有如愿以偿。

extern bool    BUY         = true;
extern int     Magic       = 0;
extern double  Lot         = 0.1;
extern int     takeprofit  = 0;
extern int     stoploss    = 0;
extern int     slippage    = 3; 
double SL,TP;
int init(){
    return(0);
  }
int start()
{
   if (BUY)
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;     
      OPENORDER ("Buy");
   }

return(0);
}
void OPENORDER(string ord)
{
int error;
 while (true)
 { error=true;
 if (ord=="Buy") error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"",Magic,0){BUY = false;}
}
return;
}
我预先感谢你。


 
nemo811:

请告知如何在EA中允许单次执行一个条件(如开立一个订单),而不是每次都重复执行。在这种情况下,当关闭一个头寸时,EA不应该打开一个新的头寸。我试着去描绘它,但它并没有如愿以偿。

我预先感谢你。



我解决这个问题的方法是,在任何行动(本例中为开仓)之前,在条件中放入一个标志;在条件中,开仓后,标志会改变其值,而且,在下一个tick中,程序将不会进入这个条件与开仓。 如果这个过程是自动化的,那么你可以放入一个函数,当没有开仓时 清除所有标志,否则EA将只开仓一次,然后淡出,因为标志将不会改变其值
 
NameLess:

我解决这个问题的方法是在任何行动(在这种情况下,开仓)之前在条件中放置一个标志,在开仓后的条件中,标志改变了值,而且,在下一个tick中,程序将不会进入这个条件中开仓。 如果这个过程是自动化的,那么你可以使用一个函数,在没有开仓的时刻清除所有标志,否则EA将只开一次单,然后淡出,因为标志不会改变值

请给我一个例子。我只是在学习,还没有面对设置旗帜的任务。)
 
nemo811:

请给我一个例子。我只是在学习,还没有面对设置旗帜的任务。)

我自己不是专家,我只是告诉你我是如何解决这个问题的。 这不是一个小的代码,你要花更多的时间来弄清楚,而不是从头开始的想法)))。