[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 550

 

亲爱的朋友们,早上好。请建议一个初学者在什么方向挖掘。问题并没有得到解决。底线是这样的。

在H4上,柱状物从底部突破到顶部,在那里它实际上是关闭的,这是一个买入条件。我们购买。现在,我们应该采取一些点,或大约10个点,来关闭(直到这一刻,一切对我来说都很简单和清晰),并去吸烟,直到下一个酒吧(这不起作用)。只要一个订单被关闭,就会有一个新的订单被打开(条件仍然满足),如何避免交易到下一个柱形?

解决方案似乎很简单,我觉得它离我很近,但我缺乏知识(或大脑))。我必须承认,我没有读完549页,如果有人已经问...不要说太多的脏话))))

能否请您帮助我

 

常见问题

 
谢谢你
 
ex_kalibur:

你好,请帮助我,我看不出明显的((((。

double LotsAllPos(int op) {

int i;

double ll=0。

for (i=0; i<OrdersTotal(); i++){

如果(OrderType()!=op)继续。

如果(OrderSymbol()!=sy) 继续。

如果(OrderMagicNumber()==Magic || OrderMagicNumber()==Magic+1) ll+=OrderLots()。

}

return(ll);

在这里,我需要按照我的符号和类型来返回总和的数量。

for (i=0; i<OrdersTotal(); i++) {
 if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
   if (OrderType()!=op) continue;

....
   }
 
Sepulca:


谢谢你的帮助。
 

你能告诉我问题可能是什么吗?变量newlots是0.2。

当我运行EA时,打印1首先打印出一条信息,说1 0.2,然后触发了开立订单的条件,订单被打开,但之前的打印 2函数 没有显示信息,我不明白为什么会跳过,因为条件触发了,如果订单函数被打开,打印函数也应该被打开。除此以外,日志中没有显示订单已发送的信息,也就是每个订单开启时显示的标准信息。

但这还不是最糟糕的事情,主要的问题是,变量newlots等于0.2,而订单以0.1的体积打开,这怎么可能呢,因为它在函数中明确规定,而不是以体积作为变量newlots。

  Print("1 ",newlots);
  
  if(условие)
    {
    if(buytime != Time[0] && buys == 0 && sells == 0)
      {
      Print("2 ",newlots);
        if(OrderSend(Symbol(),OP_BUY,newlots,Ask,Slippage,0,0,0,MagicNumber,0,BuyColor) > 0)
          {
          buytime = Time[0];
          }
      }
    }

// пробовал даже вот так, в этом случае выводятся только первые два сообщение, причем значение выводится что newlots все таки равен 0.2, но третье сообщение
не выводится, и ордер открывается с лотом 0.1.


Print("1 ",newlots); - равен 0.2


Print("2 ",newlots); - равен 0.2

Print("3 ",newlots); - не выводится сообщение, и далее ордер открывается с лотом 0.1



Print("1 ",newlots);
  if(((Ask > (MA1+3*Point*a)) && (Open[0] < (MA1+3*Point*a)) && (Ask < (MA1+5*Point*a))) || ((Low[0] < (MA1+3*Point*a)) && (Bid > (MA1+3*Point*a)) && (Bid < (MA1+5*Point*a))))
    {
    Print("2 ",newlots);
    if(buytime != Time[0] && buys == 0 && sells == 0)
      {
      Print("3 ",newlots);
        if(OrderSend(Symbol(),OP_BUY,newlots,Ask,Slippage,0,0,0,MagicNumber,0,BuyColor) > 0)
          {
          buytime = Time[0];
          }
      }
    }

 
sss2019:

你能告诉我问题可能是什么吗?变量newlots是0.2。

当我运行EA时,打印1首先打印出一条信息,说1 0.2,然后触发了开立订单的条件,订单被打开,但在它之前的打印2函数没有显示信息,我不明白为什么它被跳过,因为条件被触发,如果订单函数被打开,打印函数也应该被关闭。除此以外,日志中没有显示订单已发送的信息,即每次打开订单时显示的标准信息。

但这还不是最糟糕的事情,主要问题是变量newlots等于0.2,而订单以0.1的体积打开;它可能发生,因为它在函数中明确指出,而不是体积,变量newlots。


在代码中,订单的开启在哪里?OrderSend 在哪里?

在你所显示的部分,条件没有被执行,因此你的Print 2,以及在此条件下的OrderSend也没有打开0.2手的订单。

另一个OrderSend正在被执行。

 
zxc:


代码中还有哪里是订单的开端?OrderSend还在哪里?

在您显示的部分,条件没有得到满足,因此您的打印2,因此在此条件下的OrderSend也没有打开--没有手数为0.2的订单被打开。

另一个OrderSend被执行。


在这里,我们走了。

if(OrderSend(Symbol(),OP_BUY,newlots,Ask,Slippage,0,0,0,MagicNumber,0,BuyColor) > 0)

我的EA中只有一个OrderSend,条件得到满足,订单在不清楚的情况下被打开。

 

你能告诉我,当一个EA带有一个套装时,我应该把它放在哪个文件夹里?谢谢你。

 

下午好!

你能帮助我吗?从文件中读出一行(一般说来会有更多,但这并不重要),它在循环,好像它没有看到文件的结尾......

int qq=0;
 while (FileIsEnding(h3)==false)
 {
  int uu=0;
  while (FileIsLineEnding(h3)==false)
  { 
    Histxmas[qq][uu]=StrToDouble(FileReadString(h3));
    Print("Histxmas[",qq,"][",uu,"]=",Histxmas[qq][uu]);
    uu+;
  }
  FileSeek(h3,0,SEEK_END);   
  qq++;
  Print("Бро зациклился, покажи мне кюкю",qq);
 }