写了一个顾问,有一个问题。 - 页 6

 
khorosh >> :

小数点后4位或5位的引号是什么?

4位数......在5位数上也试过。NormalizeDouble不起作用 :(

 
一般来说,这一切都有点奇怪....。在第一篇帖子中,我给出了EA的截图,开始升级它,出现了错误的订单错误130,将一切恢复到原来的状态,但错误并没有消失!!!!!!!。但它在原来的状态下都能工作,!!!!这到底是什么?
 
Noterday >> :

这就是我所说的。为什么10个点的止损是错误的...


事情是这样的:10点的止损可能是错误的,因为你可以放置止损的最小距离是超过10点的(例如:15点)。这个值是由交易室设定的。
 
我已经试过200次了!它仍然是一样的...
 
Noterday >> :
我也试过200个!还是一样...


你能公布原始的EA代码吗?

 
#property copyright "Мостовнек"
#property link      ""

int init()
  {
   return(0);
  }
int deinit()
  {
   return(0);
  }

extern int Frame = 1;


int start()
  {
  int total;
  
  for (int i = 0; i <= OrdersTotal(); i++)
     {
       if (OrderSelect( i-1, SELECT_BY_POS) == true)
       total++;
     }
  
  
    double Buffer1 = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mx",0,0,1),4);
    double Buf1    = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mx",0,6,1),4);
    double Buffer2 = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mn",0,0,1),4);
    double Buf2    = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mn",0,6,1),4);
    
    double ZZ_1    = NormalizeDouble(iCustom(NULL,0,"ZigZag",0,0,1),4);

//-----------------------------------------------------  

  if ( total == 0 && (( Buffer1 != EMPTY_VALUE || Buf1 != EMPTY_VALUE) && ( ZZ_1 == Buffer1 || ZZ_1 == Buf1)))
    {
     OrderSend(Symbol(),OP_SELL,0.1,Bid,10, ZZ_1+15*Point,Bid-20*Point,"SELL",0,0,Red);
     Print("Zigzag = ", ZZ_1," | Buffer1 = ", Buffer1);
    }
  
  if ( total == 0 && (( Buffer2 != EMPTY_VALUE || Buf2 != EMPTY_VALUE) && ( ZZ_1 == Buffer2 || ZZ_1 == Buf2)))
    {
     OrderSend(Symbol(),OP_BUY,0.1,Ask,10, ZZ_1-15*Point,Ask+20*Point,"BUY",0,0,Blue);
     Print("Zigzag = ", ZZ_1," | Buffer2 = ", Buffer1);
    }

return(0);
  }
 

在OrderSend()中设置止损的原则是正确的。所以没有必要在这里做任何改变。

当Print()函数运行时,ZigZag=0,因此止损:0+15*Point,即等于0.0015。这就是为什么它产生错误OrderSendError 130

double ZZ_1 = NormalizeDouble(iCustom(NULL,0, "ZigZag",21,5,3,0,1),4);//21,5,3是外部指标变量,它们必须按照ZigZag指标中声明的顺序指定。

类似地, double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4)。
double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4);
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4)。
double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4)。

这里没有指定外部变量。

 

但它们是可选的,正如MQL4文档中写的那样。

而在

double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4);
double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4);
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4)。
double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4)。


完全没有外部变量 :)

顺便说一下,我的PRINT函数正常输出ZigZag。


 
Noterday >> :

但它们是可选的,正如MQL4文档中写的那样。

而在

double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4);
double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4);
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4);
double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4)。


完全没有外部变量 :)

顺便说一下,我的PRINT函数正常输出ZigZag。



如果这些指标中没有外部变量,就不存在索赔:)。但我仍然需要考虑一下停顿的问题。也许你会得到一个启示。
 
ellizii >> :

如果这些指标中没有外部变量,就不存在索赔:)。但我仍然需要考虑一下停顿的问题。也许你会得到一个洞察力。

不用担心 :) 致开发者:基础测试员/操作员

我敢肯定,stopomi的情况也是如此。