[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 846

 
serjik77:

如果我用一个可能是愚蠢的问题分散你的注意力,请原谅我。

我刚开始学这个,没有人可以请教。

我已经读了几遍手册。我已经开始用最简单的功能--挂单--做一个专家顾问。

我还是不明白,我必须做的是开一次单,而不是每次开单。



插入一个这样的函数

int ChPos( int type_H_L) 
{
// возвращает кол-во позици которые открыты 
   int i;
   int col;
   int count=0 ;
   for( i=0; i < OrdersTotal(); i++)         
   {
      if(OrderSelect(i,SELECT_BY_POS)==true) 
       {                                   
           if(OrderType()==OP_BUY && type_H_L==OP_BUY && OrderMagicNumber()== magic){count++;}
           if(OrderType()==OP_SELL && type_H_L==OP_SELL && OrderMagicNumber()== magic){count++;}
           if(OrderType()==OP_BUYSTOP && type_H_L==OP_BUYSTOP && OrderMagicNumber()== magic){count++;}
           if(OrderType()==OP_SELLSTOP && type_H_L==OP_SELLSTOP && OrderMagicNumber()== magic){count++;}
           
       }
    }   
return(count);
}

在你的代码中,这样检查,比如说

if ( SignalLine > MainLine && ChPos(OP_BUY)==0 )
      { // если сигнальная линия выше основной и нет длинной позы . то закрыть короткую открыть длинную
         if (ChPos(OP_SELL)>0 ) ClosePosition(OP_SELL) ;
         OpenPosition(OP_BUY)  ;
 
我关闭了无利可图的头寸,但没有通过删除TP来打破该手的平衡。 唉,TP=0,尽管我在日志中得到了一个非常恼人的消息。
<br / translate="no"> 2010.09.12 21:34:53 2000.03.06 07:59 money EURUSD,M5: OrderModify error 1

代码。

bool notakeprofit()
{   bool ok=true;
    int k=OrdersTotal();
    for (int i=k-1; i >=0; i--)
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
    {
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_368)
        {OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),NormalizeDouble(0,Point), OrderExpiration(), CLR_NONE);
         }
    else;
       // { Print("OrderSelect() error - ",GetLastError()); ok=false;}
    }
return(ok);
}

由于需要在主代码中确保所有市场订单的TP=0,我控制这个函数的结果--好的,在代码中你可以看到,好的--只有在出现错误时才会改变

请帮助我!:)

预先感谢

 
abolk:

在我的例子中,规则是:"在名词、形容词和副词中,如果有矛盾或意为矛盾,请分开NOT"http://www.rusyaz.ru/pr/od07.html-"to do"是NOT -正确的 是 " to do"(突出显示的词是矛盾的,前面是连字符)。

你对俄罗斯语言的解释是错误的(!)。在以下情况下会单独写上 "不"。

"to do"不是正确的,而是不好的。- 正是在这个意义上,它被理解为是反对的。看一下这个规则的例子。

在你的句子中,NOT应该用连词来写(同页第88段的第3段适用)。

"to do"拼错了," to do "是正确的

 

有一个标准的MACD指标。如何用它来测试历史?

是否有一个例子?

 
IgorM:
我锁定了亏损的头寸,所以我不想打破头寸的平衡,但我必须删除TP,但可惜的是,TP=0,尽管在我的日志中,它一直出现了很多次。

代码。

由于需要在主代码中确保所有市场订单的TP=0,我控制这个函数的结果--好的,在代码中你可以看到,好的--只有在出现错误时才会改变

请帮助我!:)

预先感谢

也许不是NormalizeDouble(0,Point) 而是 NormalizeDouble(0,Digits)

 
chief2000:

也许不是NormalizeDouble(0,Point) 而是 NormalizeDouble(0,Digits)


谢谢,我自己找到了,但它没有解决错误1。

 
IgorM:


谢谢,我自己找到了,但它没有修复错误1号。

我想做的第一件事是用其他数字代替TP中的零(消除错误),以确保这是 原因。

 
chief2000:

我首先要做的是在TP中替换一些其他的数字,而不是0(以消除错误),以确保 就是原因。


在我写这个函数之前,它一直工作正常,现在我调用Kim的函数而不是OrderModify()。

void ModifyOrder(double pp=-1, double sl=0, double tp=0, datetime ex=0)

错误已经消失

 

有一个osma类型的指标,当越过0的时候,信号是相反的。我如何在历史上测试它?

 
ivandurak:


插入这个函数

在你的代码中,做一个这样的检查

对不起,如果我可以的话,还有一个问题?

我开始明白了一些事情,但不是全部。

第一个函数是否告诉应用程序它有多少个未结订单?

请告知如何使只有两个待定的永久出现。

独立于被触发的那些。

原因: