• Уважаемый гость! Чтобы просмотреть скрытую часть информации Вам нужно зарегистрироваться.

    Быстрая регистрация!

Удалено Вопросы от новичков...

  • Автор темы Admin
  • Дата начала
Dream

Dream

Каждый день по чуть, чуть...
Участник
Регистрация
27.02.2016
Сообщения
125
Реакции
12
Вот написал но чтот не получается то что надо... Недорисовывает...
Код:
 bool openTrend = false;
double Hi_max  = iHigh(Symbol(),PERIOD_H1,iHighest(Symbol(),PERIOD_H1,MODE_HIGH,bar,1));
double Lo_min  = iLow(Symbol(),PERIOD_H1,iLowest(Symbol(),PERIOD_H1,MODE_LOW,bar,1));
double Awr_hi_lo = NormalizeDouble((Hi_max+Lo_min)/2,Digits());
datetime x=0,z=0;
double y=0,k=0;
int bars = 0;
//---
  if(Hi_max-Lo_min <=350*Point())
  {
   openTrend = true;
  }
//---
if(openTrend == true)
   {
    ObjectCreate("Sig_Buy",OBJ_RECTANGLE,0,
       iTime(Symbol(),PERIOD_H1,1),iLow(Symbol(),PERIOD_H1,iLowest(Symbol(),PERIOD_H1,MODE_LOW,bar,1)),
       iTime(Symbol(),PERIOD_H1,bar),iHigh(Symbol(),PERIOD_H1,iHighest(Symbol(),PERIOD_H1,MODE_HIGH,bar,1)));                  
   }
if(iClose(Symbol(),PERIOD_H1,1)<Hi_max && iClose(Symbol(),PERIOD_H1,1)>Lo_min &&
    iOpen(Symbol(),PERIOD_H1,1)<Hi_max  && iOpen(Symbol(),PERIOD_H1,1)<Lo_min)
    {
     bars+=1;
     ObjectSet("Sig_Buy",OBJPROP_TIME1,iTime(Symbol(),PERIOD_H1,1));
     ObjectSet("Sig_Buy",OBJPROP_PRICE1,iLow(Symbol(),PERIOD_H1,iLowest(Symbol(),PERIOD_H1,MODE_LOW,bar+bars,1)));
     ObjectSet("Sig_Buy",OBJPROP_TIME2,iTime(Symbol(),PERIOD_H1,bar+bars));
     ObjectSet("Sig_Buy",OBJPROP_PRICE2,iHigh(Symbol(),PERIOD_H1,iHighest(Symbol(),PERIOD_H1,MODE_HIGH,bar+bars,1)));
    }
   //---
 
T

tak

Участник
Регистрация
26.12.2015
Сообщения
146
Реакции
6
Почему Баевский ТП не модифицируется?
Код:
 if(b>0) pBuy=pBuy/b;
   if(pBuy>0)
      for(int i=OrdersTotal()-1; i>=0; i--)
         if(OrderSelect(i,SELECT_BY_POS) && OrderCloseTime()==0)
            if(OrderType()==OP_BUY)
               if(OrderModify(OrderTicket(),OrderOpenPrice(),0,NormalizeDouble(pBuy+(double)Takeprofit*_Point,_Digits),OrderExpiration()))
                  continue;
   if(s>0) pSell=pSell/s;
   if(pSell>0)
      for(int i=OrdersTotal()-1; i>=0; i--)
         if(OrderSelect(i,SELECT_BY_POS) && OrderCloseTime()==0)
            if(OrderType()==OP_SELL)
               if(OrderModify(OrderTicket(),OrderOpenPrice(),0,NormalizeDouble(pSell-(double)Takeprofit*_Point,_Digits),OrderExpiration()))
                  continue;
 
T

tak

Участник
Регистрация
26.12.2015
Сообщения
146
Реакции
6
Нашел ошибку, но все равно работает как-то заторможено, ТП не сразу переставляется, иногда пропадает. Почему ?
Код:
input double Lot=0.01;//Лот
input double Takeprofit=200;//Прибыль
input int Dist=200;//Дистанция
input int Slippage=10;
input int magic=1234;

bool buy=false,sell=false;
double pBuy,pSell;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   pBuy=0;pSell=0;
   int b=0,s=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS) && OrderCloseTime()==0)
        {
         if(OrderType()==OP_BUY)
           {
            buy=true;
            b++;
            if(b==1) pBuy=OrderOpenPrice();
            if(b>1 && OrderOpenPrice()<pBuy) pBuy=OrderOpenPrice();

           }
         if(OrderType()==OP_SELL)
           {
            sell=true;
            s++;
            if(s==1) pSell=OrderOpenPrice();
            if(s>1 && OrderOpenPrice()>pSell) pSell=OrderOpenPrice();
           }
        }
   if(b==0)
      buy=false;

   if(s==0)
      sell=false;

   if(!buy)
      if(startbuy(0))
         buy=true;

   if(!sell)
      if(startsell(0))
         sell=true;
   if(pBuy>0 && Ask<=pBuy-(double)Dist*_Point)
      if(startbuy(b))
         buy=true;
   if(pSell>0 && Bid>=pSell+(double)Dist*_Point)
      if(startsell(s))

         b=0;s=0;pBuy=0;pSell=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS) && OrderCloseTime()==0)
        {
         if(OrderType()==OP_BUY)
           {
            b++; pBuy=pBuy+OrderOpenPrice();
           }
         if(OrderType()==OP_SELL)
           {
            s++; pSell=pSell+OrderOpenPrice();
           }
        }
   if(b>0) pBuy=pBuy/b;
   if(pBuy>0)
      for(int i=OrdersTotal()-1; i>=0; i--)
         if(OrderSelect(i,SELECT_BY_POS) && OrderCloseTime()==0)
            if(OrderType()==OP_BUY)
               if(OrderModify(OrderTicket(),OrderOpenPrice(),0,NormalizeDouble(pBuy+(double)Takeprofit*_Point,_Digits),OrderExpiration()))
                  continue;
   if(s>0) pSell=pSell/s;
   if(pSell>0)
      for(int i=OrdersTotal()-1; i>=0; i--)
         if(OrderSelect(i,SELECT_BY_POS) && OrderCloseTime()==0)
            if(OrderType()==OP_SELL)
               if(OrderModify(OrderTicket(),OrderOpenPrice(),0,NormalizeDouble(pSell-(double)Takeprofit*_Point,_Digits),OrderExpiration()))
                  continue;

  }
//+------------------------------------------------------------------+

bool startbuy(int order)
  {
   double TP=0;
   if(order==0)
     {
      TP=Ask+(double)Takeprofit*_Point;
     }
   int tiket=OrderSend(_Symbol,OP_BUY,Lot,Ask,Slippage,0,TP,NULL,magic,0,clrBlue);

   if(tiket>=0)return(true);
   else return(false);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool startsell(int orders) 
  {
   double TP=0;
   if(orders==0)
     {
      TP=Bid-(double)Takeprofit*_Point;
     }

   int tiket=OrderSend(_Symbol,OP_SELL,Lot,Bid,Slippage,0,TP,NULL,magic,0,clrRed);
   if(tiket>=0)return(true);
   else return(false);
  }
 
Ildarvin

Ildarvin

Участник
Регистрация
06.11.2016
Сообщения
17
Реакции
2
Добрый вечер. У меня вопрос. Как встроить сторонний индикатор в советник, чтоб на другом терминале установил советник и он не спрашивал где индикатор? Чтоб индикатор тоже не перетаскивать.
 
  • Автор темы
  • Панель управления
  • #617
Admin

Admin

Команда форума
Администратор
Регистрация
03.01.2013
Сообщения
2 224
Реакции
517
Добрый вечер. У меня вопрос. Как встроить сторонний индикатор в советник, чтоб на другом терминале установил советник и он не спрашивал где индикатор? Чтоб индикатор тоже не перетаскивать.
нужно подключить индикатор в виде ресурса, посмотрите в справке там понятен этот момент и есть хороший пример
 
Ildarvin

Ildarvin

Участник
Регистрация
06.11.2016
Сообщения
17
Реакции
2
Разобрался только на следующий день.:)
 
Ildarvin

Ildarvin

Участник
Регистрация
06.11.2016
Сообщения
17
Реакции
2
Добрый вечер !! А как сделать чтоб сделки открывались по новой свече? И почему у меня такая аватарка ? o_O
 
  • Автор темы
  • Панель управления
  • #620
Admin

Admin

Команда форума
Администратор
Регистрация
03.01.2013
Сообщения
2 224
Реакции
517
Добрый вечер !! А как сделать чтоб сделки открывались по новой свече? И почему у меня такая аватарка ? o_O
Аватарку вы сами себе поставили, а сделки определяем что пришол новый бар и открываем
 
Ildarvin

Ildarvin

Участник
Регистрация
06.11.2016
Сообщения
17
Реакции
2
Блин o_O аватарку я не выбирал )). А можно кодом написать как это пришел новый бар пожалуйста.
 
Ildarvin

Ildarvin

Участник
Регистрация
06.11.2016
Сообщения
17
Реакции
2
Такая аватарка у меня на Origin форуме установлена. Падазрительна ))
 
Последнее редактирование:
  • Автор темы
  • Панель управления
  • #623
Admin

Admin

Команда форума
Администратор
Регистрация
03.01.2013
Сообщения
2 224
Реакции
517
Блин o_O аватарку я не выбирал )). А можно кодом написать как это пришел новый бар пожалуйста.
Код:
// функция NewBar()определяет начало нового бара
bool NewBar()
  {
   static datetime lastbar=0;  //Тип datetime предназначен для хранения даты и времени в виде количества секунд, прошедших с 01 января 1970 года. Занимает в памяти 8 байт.
   datetime curbar=iTime(NULL,0,0);  //iTime - Возвращает значение времени открытия бара (указанного параметром shift) соответствующего графика.

   if(lastbar!=curbar)
     {
      lastbar=curbar;
      return (true);
     }
   return(false);
  }
 
  • Автор темы
  • Панель управления
  • #624
Admin

Admin

Команда форума
Администратор
Регистрация
03.01.2013
Сообщения
2 224
Реакции
517
Теги mql help mql помощь mql программирование mql функции вопросы по программирования мкл вопросы по форекс мкл код мкл помощь
Верх