新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1221

 

其目的是在当前的零条上只开一个订单。

如果在当前栏位上已经有一个平仓的订单,就不要再开一个新的订单。

而且,该代码不工作。

bool is = OrderSelect(1, SELECT_BY_POS, MODE_HISTORY);
 
       if ( iTime(NULL,0,0) < OrderOpenTime() || is == false){
 
 
 if (OrdersTotal() < 1) OrderSend(Symbol(), OP_BUY, 1, Ask, 3, 0,0, "", 1212, 0, clrGreen);
  }
 
Pavel Verveyko:
但是可以这样做吗?(现在只有最后一种类型--带矩形的--可以工作)。


ObjectsDeleteAll(0,"prefix",0,OBJ_LABEL);
ObjectsDeleteAll(0,"prefix",0,OBJ_RECTANGLE_LABEL);

是删除所有具有OBJ_LABEL或OBJ_RECTANGLE_LABEL 类型的对象。

 
HeAic:

其目的是在当前的零条上只开一个订单。

如果在当前栏位上已经有一个平仓的订单,就不要再开一个新的订单。

该代码不起作用。

datetime openBarTime=iTime(_Symbol,_Period,0);

bool orderFound=false;

for(int pos=OrdersTotal()-1;pos>=0;pos--) {

   ... /// тут всякие проверки на select,magic,symbol,type и проч

   if (OrderOpenTime()>=openBarTime) {

       orderFound=true; // нашёлся ордер открытый на текущем баре

       break;

   }

}

if (!orderFound) {

   // не было ордеров на текущем баре - трам пам пам

   ...

}

顺序将不得不被记住并单独执行。一般来说,它作为一个复杂的

关于已关闭的订单,由HISTORY进行类似检查

 

在图形上显示文本的通常方法是什么? 任何地方,只是文本

它是https://www.mql5.com/ru/docs/objects? 指明正确的方向。

Документация по MQL5: Графические объекты
Документация по MQL5: Графические объекты
  • www.mql5.com
Функции, задающие свойства графических объектов, а также операции создания ObjectCreate() и перемещения ObjectMove() объектов на графике фактически служат для отправки команд графику. При успешном выполнении этих функций команда попадает в общую очередь событий графика. Визуальное изменение свойств графических объектов производится в процессе...
 
 
Maxim Kuznetsov:

datetime openBarTime=iTime(_Symbol,_Period,0);

bool orderFound=false;

for(int pos=OrdersTotal()-1;pos>=0;pos--) {

   ... /// тут всякие проверки на select,magic,symbol,type и проч

   if (OrderOpenTime()>=openBarTime) {

       orderFound=true; // нашёлся ордер открытый на текущем баре

       break;

   }

}

if (!orderFound) {

   // не было ордеров на текущем баре - трам пам пам

   ...

}

暂停将不得不被记住并单独处理。一般来说,这是更理想的做法,作为一个复杂的

关于封闭式的,类似的检查由HISTORY进行

因此,我从参考书中找到了一个适合自己的例子。

bool orderFound=false;

 // retrieving info from trade history 
  int i,accTotal=OrdersHistoryTotal(); 
  for(i=0;i<accTotal;i++) 
    { 
     //---- check selection result 
     if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) 
       { 
        Print("Ошибка при доступе к исторической базе (",GetLastError(),")"); break; 
       } 
     // работа с ордером ... 
   if (OrderCloseTime() > iTime(_Symbol,_Period,0))orderFound=true ;// нашёлся ордер закрытый на текущем баре
    }
//-----
 
 if(OrdersTotal() < 1 && orderFound == false ) {//тут открываем ордера по алгоритму
  

我将关闭这样的订单。

   if( OrdersTotal() > 0) 
 
     {
        for(cnt = 0; cnt < OrdersTotal(); cnt++)
      {
       bool s = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
       
      
       if( TimeCurrent()>= OrderOpenTime()+ (lifetime * 60)) // lifetime - время в минутах
          
          {
           
           if(OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber())    // long position is opened
            

谢谢你的帮助 :)

 
你好。大家好。你能帮我找到一个指标吗?

权力的平衡。我在哪里可以下载它?谢谢。(笑)。

 
2004sasha:
你好。大家好。帮助我找到一个指标

权力的平衡。我在哪里可以下载它?谢谢你。

在网站上搜索会有一个结果。


 
Maxim Kuznetsov:

是删除所有类型为OBJ_LABEL或OBJ_RECTANGLE_LABEL 的对象。

我明白,你可以把它们称为2。

,但我的问题是这样的

ObjectsDeleteAll

该函数是通过指定OBJ_TREND的循环,只选择正确对象类型的对象,还是一次性只创建所需对象的循环?

原因: