任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 910

 

你好!

在我的专家顾问中,会检查前一个蜡烛图,如果条件允许,就开仓,如果不允许,就不开仓。问题是,在检查前一根蜡烛的状况之前就开仓了。然后我在日志中看到仓位打开,然后我看到它不应该被打开。如何解决这个问题?

 
evillive:

图中的括号不见了。

谢谢,已经解决了!问题更深了,我对这种写作方式的输出有误解,总的来说,期望值与结果不一致,把计数器搞坏了--现在一切都按我的想法工作。
 

帮助,为什么EA在测试期间不开单?(不做任何事情?)请帮助,请!!!。

extern double    OrderValue =  0.01;         
extern int       Up         =  70;
extern int       Dn         =  30;
extern int       rrr        =   5;
extern int       S1_period  =   5;
extern int       S1_slowing =   3;
extern double    TP         =  30;
extern double    SL         =  30;

double    S1a          = 0;
double    S1b          = 0;
      
double MyOrderStateB;
double MyOrderStateS;

int    OpenOrderB      ;   
int    OpenOrderS      ;   

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  
   {
    if (Digits == 3 || Digits == 5)
     {
       TP *=10;
       SL  *=10;
      
     }
  
  
  
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----

   S1a = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_MAIN, 1), 0);
   S1b = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_SIGNAL, 1), 0);
   
   if(MyOrderStateB == 1)Sleep(3000);
    else MyOrderStateB = 0;
   if(MyOrderStateS == 1)Sleep(3000);
    else MyOrderStateS = 0;
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

void GetBuy(){
     
   if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )
 {OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), 3, SL, TP, NULL, 0, 0,clrBlue);
     MyOrderStateB = 1; }
   else Sleep(2);
}
void GetSell(){
      
   if(S1a == S1b && S1a>80.0000 && S1b>80.0000 )

    {OrderSend(Symbol(), OP_SELL, OrderValue, NormalizeDouble(Bid, Digits), 3, SL, TP, NULL, 0, 0,clrRed);
      MyOrderStateS = 1; }    
       else Sleep(2);
   } 

 
Viktorline14:

帮助,为什么EA在测试期间不开单?(不做任何事情?)请帮助,请!!!。


你不能创建一个正确的帖子吗?

在Start()函数中没有函数调用来打开订单

 
Vinin:

你不能创建一个正确的帖子吗?

在Start()中没有调用任何函数来打开订单

 
兄弟,你怎么加这个?
 
Viktorline14:
弟兄,你怎么加这个?
我为你的妈妈和爸爸感到难过。他们没有教你如何沟通。
 

Vinin:
Жалко мне твоих папу и маму. Не научили культуре общения

我很抱歉,我真的需要帮助,因为这是我第一次写EA的经验。

请帮助,请帮助

 

所以我想明白了,没有错误,但有警告。

这一定是测试员出错的原因。

 
Viktorline14:

所以我想明白了,没有错误,但有警告。

这可能是测试员出错的原因