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

 

коллеги может кто знает как исправить ранее советник ок открывал и закрывал позиции, сейчас уже несколько дней пишет ошибку 

ERR_TRADE_SEND_FAILED

4756

Не удалось отправить торговый запрос


на сервере МТ 5  демо...

Может кто знает как ее устранить...

 открытие через Trade.mqh


я уже подозреваю неужели какие то правки ввели в обновлении в структуры открытия поз??? )))

ранее ок и открывалось и закрывалось

 
Roman Shiredchenko #:

коллеги может кто знает как исправить ранее советник ок открывал и закрывал позиции, сейчас уже несколько дней пишет ошибку 

Нет ли предупреждений при компиляции?

 
Aleksey Vyazmikin #:

Нет ли предупреждений при компиляции?

Советник торговал месяц точно все ок. Ранее скомпилирован. Вечером проверю... напишу. 

Спс за подсказку
[Удален]  
Oleg K #:

На месте вопросительного знака в МТ4-индикаторе - есть осмысленное значение. Я всего лишь хотел бы знать, как оно вычисляется.

Олег, вычисляется одна Ma, затем она сдвигается куда скажут. У меня все значения одинаковы


 
Roman Shiredchenko #:

коллеги может кто знает как исправить ранее советник ок открывал и закрывал позиции, сейчас уже несколько дней пишет ошибку 

ERR_TRADE_SEND_FAILED

4756

Не удалось отправить торговый запрос


на сервере МТ 5  демо...

Может кто знает как ее устранить...

 открытие через Trade.mqh


я уже подозреваю неужели какие то правки ввели в обновлении в структуры открытия поз??? )))

ранее ок и открывалось и закрывалось

компилится исправно


ошибки пишет


на графике видно стрелки слева еще работал  потом бац, и уже не  открывает позиции  ужас какой то...


 if(Assistant_mode == -1) // -1: на полном автомате, вход в спред позы и вверх и вниз
      if(buy) //  если в лонг можно
         // обычное открытие - без проверок -  СРАЗУ!
         if(Count_Spread_Pos(Symbol1,Magic_buy_spread) == 0) // если еще не входили в лонг и можно
            if(Count_Spread_Pos(Symbol2,Magic_buy_spread) == 0)
              {
               trade.SetExpertMagicNumber(Magic_buy_spread);
               if(!Reverse)
                 {
                  if(m_Symbol.Name(Symbol1))
                     m_Symbol.RefreshRates();
                  if(!trade.PositionOpen(Symbol1,ORDER_TYPE_BUY,NormalizeDouble(Lots_Symbol1_MM,2),SymbolInfoDouble(Symbol1,SYMBOL_ASK),0,0,"старт: ЕА торговля спредами"))
                    {
                     Alert("Ошибка входа в buyspread: ",GetLastError()," открытия стартовой позиции по первой ноге ",Symbol1);
                     Sleep(1000);
                     if(m_Symbol.Name(Symbol1))
                        m_Symbol.RefreshRates();
                     if(!trade.PositionOpen(Symbol1,ORDER_TYPE_BUY,NormalizeDouble(Lots_Symbol1_MM,2),SymbolInfoDouble(Symbol1,SYMBOL_ASK),0,0,"старт: ЕА торговля спредами"))
                       {
                        Alert("Ошибка входа в buyspread: ",GetLastError()," открытия стартовой позиции по первой ноге ",Symbol1);
                        Sleep(1000);
                        if(m_Symbol.Name(Symbol1))
                           m_Symbol.RefreshRates();
                        if(!trade.PositionOpen(Symbol1,ORDER_TYPE_BUY,NormalizeDouble(Lots_Symbol1_MM,2),SymbolInfoDouble(Symbol1,SYMBOL_ASK),0,0,"старт: ЕА торговля спредами"))
                           Alert("Ошибка входа в buyspread: ",GetLastError()," открытия стартовой позиции по первой ноге ",Symbol1);
                       }
                    }

                  if(m_Symbol.Name(Symbol2))
                     m_Symbol.RefreshRates();
                  if(!trade.PositionOpen(Symbol2,ORDER_TYPE_SELL,NormalizeDouble(Lots_Symbol2_MM,2),SymbolInfoDouble(Symbol2,SYMBOL_BID),0,0,"старт: ЕА торговля спредами"))
                    {
                     Alert("Ошибка входа в buyspread: ",GetLastError()," открытия стартовой позиции по второй ноге ",Symbol2);
                     Sleep(1000);
                     if(m_Symbol.Name(Symbol2))
                        m_Symbol.RefreshRates();
                     if(!trade.PositionOpen(Symbol2,ORDER_TYPE_SELL,NormalizeDouble(Lots_Symbol2_MM,2),SymbolInfoDouble(Symbol2,SYMBOL_BID),0,0,"старт: ЕА торговля спредами"))
                       {
                        Alert("Ошибка входа в buyspread: ",GetLastError()," открытия стартовой позиции по первой ноге ",Symbol2);
                        Sleep(1000);
                        if(m_Symbol.Name(Symbol2))
                           m_Symbol.RefreshRates();
                        if(!trade.PositionOpen(Symbol2,ORDER_TYPE_SELL,NormalizeDouble(Lots_Symbol2_MM,2),SymbolInfoDouble(Symbol2,SYMBOL_BID),0,0,"старт: ЕА торговля спредами"))
                           Alert("Ошибка входа в buyspread: ",GetLastError()," открытия стартовой позиции по первой ноге ",Symbol2);
                       }
                    }
                 }
 
Roman Shiredchenko #:

на графике видно стрелки слева еще работал  потом бац, и уже не  открывает позиции  ужас какой то...

В тестере работает?

Проверьте корректность значений переменных. Иное трудно предположить.

 
Aleksey Vyazmikin #:

В тестере работает?

Проверьте корректность значений переменных. Иное трудно предположить.

спсб за обратную связь. Всё - понял. Сам тоже хотел тестить...

была проблема в объемах открытий...

через ф-ию расчета актуального объема или начальным лотом...

Уже сделки открыл на торгах вчера еще.... для начала исправил значения во внешних переменных и стал открывать


 

Всем доброго времени суток. Вопрос по динамическому массиву в   МТ4. 

double mx[][2];
void OnTick()/**/                                                                                                                                                                                                                                                                                       
{
ArrayResize(mx,72);
if(Minute()==10)ArrayResize(mx, 71);
}

Я хочу удалить 1 строку из динамического массива  mx. Удаление производится при помощи функции  ArrayResize(mx, 71) В данном случае, как я понял, будет удалена строка с индексом 0

А если я хочу так же уменьшить количество строк в данном массиве до 71 строки, но удалить не строку с индексом 0, а например, строку с индексом 10 , то как это сделать? И желательно без сортировки данного массива с целью сделать десятую строку нулевой.
Всем спасибо за помощь.

 

Здравствуйте! Скажите пожалуйста почему не работает поиск бара на старшем ТФ по индексу - возвращает пустые значения? При чем только на выходных! Все проверки проходит , но все  равно выдает пустые значения индикатора

TF = "ЛЮБОЙ СТАРШИЙ ПЕРИОД"
Handle = "ЛЮБОЙ ИНДИКАТОР СТАРШЕГО ПЕРИОДА"

int index=iBarShift(NULL,TF,time[i],false);
CopyBuffer(Handle,n_buf,index,1,buf)

работает только, если искать по времени текущего бара

CopyBuffer(Handle,n_buf,time[i],1,buf)
 
Tango_X #:

Здравствуйте! Скажите пожалуйста почему не работает поиск бара на старшем ТФ по индексу - возвращает пустые значения? При чем только на выходных! Все проверки проходит , но все  равно выдает пустые значения индикатора

работает только, если искать по времени текущего бара

iBarShift - для старшего ТФ не работает на выходные???