Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 831

 

Здравствуйте.


Видел много решений по отправке сигналов в Телеграм через бота. А наоборот возможно? Получать сигналы из Телеграм для исполнения на МТ4? Скиньте плиз ссылку если есть что-то подобное.

 
sahsa-777:
И еще попутный вопрос-к новой версии параболик можно как-то присоединить масди,м.б.  в качестве фильтра 

Покажите пожалуйста новую версию параболика.

 
А можно ли просадку сделать в виде функции?
   prosadka=AccountProfit()*100/AccountBalance()*-1;
   if(prosadka>0) prosadka1=prosadka;
   else prosadka1=0;
 
Что собой представляет ошибка №1 при модификации ордера? В справке написано "нет ошибки, но результат не известен". Не могу понять что мне исправлять
 
Alexandr Sokolov:
Что собой представляет ошибка №1 при модификации ордера? В справке написано "нет ошибки, но результат не известен". Не могу понять что мне исправлять

эта ошибка возникает если Вы при модификации ордера отправили на сервер значения один в один как у ордера, т.е TPновый = TPустановленный и SLновый=SLустановленный

ЗЫ: не забудьте, что если сравнивать на равенство ненормализованные вещественные значения, то можно получить не совсем тот результат, который ожидали ;)

 
Igor Makanu:

эта ошибка возникает если Вы при модификации ордера отправили на сервер значения один в один как у ордера, т.е TPновый = TPустановленный и SLновый=SLустановленный

ЗЫ: не забудьте, что если сравнивать на равенство ненормализованные вещественные значения, то можно получить не совсем тот результат, который ожидали ;)

а если только одно из них? или нужно оба сразу менять?

 
Alexandr Sokolov:

а если только одно из них? или нужно оба сразу менять?

хотя бы один параметр нужно изменить при модификации ордера, ошибка №1 - если ничего не потребовалось изменять после отправки запроса на сервер

распринтуйте что оправляете на сервер, сразу увидите

 
Igor Makanu:

хотя бы один параметр нужно изменить при модификации ордера, ошибка №1 - если ничего не потребовалось изменять после отправки запроса на сервер

распринтуйте что оправляете на сервер, сразу увидите

Спасибо

 

Добрый день Знатокам.

Возникла проблемка, есть Индикатор (изменённый Envelopes). Он вписан в Советника.

Не могу его заставить показывать отрисовку.

Прописал значения самого Индикатора:

//************************************************************************************************/
#property indicator_chart_window
#property  indicator_buffers 4

#property  indicator_color1  Red
#property  indicator_color2  Blue
#property  indicator_color3  Red
#property  indicator_color4  Blue

#property  indicator_width1  2
#property  indicator_width2  2
#property  indicator_width3  1
#property  indicator_width4  1

#property  indicator_style1  0
#property  indicator_style2  0
#property  indicator_style3  1
#property  indicator_style4  1

double ExtSell_Buffer[];
double ExtBuy_Buffer[];
double ExtSell_2_Buffer[];
double ExtBuy_2_Buffer[];
//************************************************************************************************/

Далее, сделал Инициализацию:

//************************************************************************************************/
int OnInit()
{
  //--- drawing settings-----------
   IndicatorBuffers(4);
   IndicatorDigits(Digits);
//--- 
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtSell_Buffer);
   SetIndexShift(0,Ma_Shift);
   SetIndexLabel(0,"Line_Sell");
//--- 
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtBuy_Buffer);
   SetIndexShift(1,Ma_Shift);
   SetIndexLabel(1,"Line_Buy");
   //------------------------------
//--- 
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,ExtSell_2_Buffer);
   SetIndexShift(2,Ma_Shift);
   SetIndexLabel(2,"Line_Sell_2");
//--- 
   SetIndexStyle(3,DRAW_LINE);
   SetIndexBuffer(3,ExtBuy_2_Buffer);
   SetIndexShift(3,Ma_Shift);
   SetIndexLabel(3,"Line_Buy_2");
//------------------------------
   return(INIT_SUCCEEDED);
}
//************************************************************************************************/

далее в коде пытаюсь заполнить буферы:

//************************************************************************************************/
void OnTick()
{
Paint ();
}

//************************************************************************************************/
void Paint()
{
//-----------------------------------------------
int limit; 
int counted_bars=IndicatorCounted(); 
//---- последний посчитанный бар будет пересчитан 
if(counted_bars>0) counted_bars--; 
limit=Bars-counted_bars; 
//---- основной цикл 
for(int i=0; i<limit; i++) 
   { 
      ExtSell_Buffer[i]=iEnvelopes(Symbol(), TimeFrames, Ma_Period, Ma_Method, Ma_Shift, Applied_Price, Deviation, 1, i); 
      ExtBuy_Buffer[i]=iEnvelopes(Symbol(), TimeFrames, Ma_Period, Ma_Method, Ma_Shift, Applied_Price, Deviation, 2, i);

      ExtSell_2_Buffer[i]=iEnvelopes(Symbol(), TimeFrames, Ma_Period, Ma_Method, Ma_Shift, Applied_Price, Deviation_2, 1, i); 
      ExtBuy_2_Buffer[i]=iEnvelopes(Symbol(), TimeFrames, Ma_Period, Ma_Method, Ma_Shift, Applied_Price, Deviation_2, 2, i);
   }
   return;
}
//-----------------------------------------------

Компиляция проходит без ошибок, но при запуске выдаёт ошибку "array out of range" и останавливается (Testing pass stopped due to a critical error in the EA).

Помогите исправить ...

п.с. Отдельно Индикатор работает без ошибок.

 
Alexander Layzerevich:

Добрый день Знатокам.

Возникла проблемка, есть Индикатор (изменённый Envelopes). Он вписан в Советника.

Не могу его заставить показывать отрисовку.

советники не имеют индикаторных буферов и не рисуют в терминале

почитайте в справке чем отличаются эксперты от скриптов и от индикаторов

Причина обращения: