Скачать MetaTrader 5

Ожидание открытия ордера по заданным условиям

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Публикуй статьи и увеличивай свой рейтинг!
XFaost
22
XFaost 2016.10.27 20:29 
Добрый день. Мне нужно, что-бы ордер открылся когда последнее закрытие бара будет выше уровня, который указал пользователь. Сделал, но одно "но": условие close>level 
проверяется только один раз, а мне нужно, что-бы постоянно проверялось. Как это можно реализовать. Если можно, на примерах...
#property version   "1.00"
int OnInit()
{
ObjectCreate(0,"Start",OBJ_BUTTON,0,100,100);
ObjectSetInteger(0,"Start",OBJPROP_COLOR,clrBlack);
ObjectSetInteger(0,"Start",OBJPROP_BGCOLOR,clrGreen);
ObjectSetInteger(0,"Start",OBJPROP_XDISTANCE,96);
ObjectSetInteger(0,"Start",OBJPROP_YDISTANCE,80);
ObjectSetInteger(0,"Start",OBJPROP_XSIZE,45);
ObjectSetInteger(0,"Start",OBJPROP_YSIZE,20);
ObjectSetString(0,"Start",OBJPROP_FONT,"Bookman Old Style");
ObjectSetString(0,"Start",OBJPROP_TEXT,"Start");
ObjectSetInteger(0,"Start",OBJPROP_FONTSIZE,10);
ObjectSetInteger(0,"Start",OBJPROP_SELECTABLE,0);
   
ObjectCreate(0,"Edit",OBJ_EDIT,0,100,100);
ObjectSetInteger(0,"Edit",OBJPROP_XDISTANCE,50);
ObjectSetInteger(0,"Edit",OBJPROP_YDISTANCE,59);
ObjectSetInteger(0,"Edit",OBJPROP_XSIZE,90);
ObjectSetInteger(0,"Edit",OBJPROP_YSIZE,20);
ObjectSetString(0,"Edit",OBJPROP_TEXT,"0.00000");
ObjectSetString(0,"Edit",OBJPROP_FONT,"Bookman Old Style");
ObjectSetInteger(0,"Edit",OBJPROP_FONTSIZE,10);
ObjectSetInteger(0,"Edit",OBJPROP_READONLY,false);
ObjectSetInteger(0,"Edit",OBJPROP_CORNER,CORNER_LEFT_UPPER);
ObjectSetInteger(0,"Edit",OBJPROP_COLOR,clrBlack);
ObjectSetInteger(0,"Edit",OBJPROP_BGCOLOR,clrWhite);
ObjectSetInteger(0,"Edit",OBJPROP_BORDER_COLOR,false);
ObjectSetInteger(0,"Edit",OBJPROP_BACK,false);
ObjectSetInteger(0,"Edit",OBJPROP_SELECTABLE,false);
ObjectSetInteger(0,"Edit",OBJPROP_SELECTED,false);
ObjectSetInteger(0,"Edit",OBJPROP_HIDDEN,true);
ObjectSetInteger(0,"Edit",OBJPROP_ZORDER,0);
ObjectSetInteger(0,"Edit",OBJPROP_ALIGN,ALIGN_CENTER);
return(INIT_SUCCEEDED);
}

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   if(id==CHARTEVENT_OBJECT_CLICK)
     {
      string clickedChartObject=sparam;
      if(clickedChartObject=="Edit")
        {
         double clouse = Close[1];
         double level="";
         string name="Edit";
         level=ObjectGetString(0,name,OBJPROP_TEXT);
         if(clouse>level)
          {
           double tvh = OrderSend(Symbol(),OP_SELLSTOP,0.01,1.39681,3,1.39966,1.38839,NULL,0,0,clrGreen);
          }
        }
      }
  }
Vitalie Postolache
12145
Vitalie Postolache 2016.10.27 20:41  
Оформить в виде советника, во-первых. Потом уже дальше копать.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий