[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 478

 

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

Помогите, пожалуйста, вбить в dll - ку выражения, типа:

datetime FT = TimeCurrent();
int      reb=12;

Заранее благодарю.

 
nemo811:

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

Помогите, пожалуйста, вбить в dll - ку выражения, типа:

Заранее благодарю.

Вопрос снимаю, разобрался
 

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

Может у кого была такая проблема в MQL5. Советник иногда(примерно в одном случае из ста) не может удалить отложенный ордер, пока сам в ручную не удалю все отложенные ордера, при этом ни каких ошибок просто не удаляется. Или может кто по другому удаляет? Если кто возмётся помочь, при необходимости вышлю логин пароль и номер счета с "пойманными ордерами". Спасибо заранее.

void OnTick()
{
MqlTradeRequest request;
MqlTradeResult result;
MqlTradeCheckResult checkResult;
//------удалить ордер ------
request.action=TRADE_ACTION_REMOVE;
//request.order=OrderGetTicket(0);
request.order=8273050; // Явно укажу что бы все не удалил
if(OrderCheck(request,checkResult))
{
Alert(request.order);
Alert(request.action);
OrderSend(request,result);
}
else
{
Alert("Error: ",checkResult.retcode);
}
}

 
Andreyu:

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

Может у кого была такая проблема в MQL5. Советник иногда(примерно в одном случае из ста) не может удалить отложенный ордер, пока сам в ручную не удалю все отложенные ордера, при этом ни каких ошибок просто не удаляется. Или может кто по другому удаляет? Если кто возмётся помочь, при необходимости вышлю логин пароль и номер счета с "пойманными ордерами". Спасибо заранее.

форумом ошиблись.
 
Reshetov:
Ваша основная проблема в том, что iBars загружает не цены, а количество известных баров для заданного периода. Причем, как я только что проверил, делает это вполне корректно и в тестере и на графике.

не загружает, а возвращает уже загруженные.

я боюсь вы невнимательно прочитали мой вопрос или я неверно изъяснился.

вы могли бы привести код, которым вы проверяли ваше утверждение?

 
palladin:

Вобщем вопрос такой,

Имею многопериодный индикатор.

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



// TimeFrames[i] массив с периодами

for (i=0; i<NumTimeFrames; i++)

{
if (total_bars[i] != iBars(instrument, TimeFrames[i]) )
{

// тут вычисления индиктора

total_bars[i] = iBars(instrument, TimeFrames[i]);
}

}



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

все уловки MQL типа IndicatorCounted и RefreshRates

Действуют только для текущего периода, т.е. iBars берет из истории, а история загружается только путем смены периода на графике. Что делать? Есть в MQL какой-то инструмент загрузки баров других периодов (отличных от текущего) в фоновом режиме?


п.с. надеюсь не сумбурно объяснил ((

Как вам ответить не ведая что NumTimeFrames TimeFrames[i] пустые или как?

Пишите полнее, как, вернее что внимательно читать есль нет ничего. Полный код давайте, иначе, скорее всего, сами будете "грызть гранит науки",,,,)) if(true)continue; else return("Sleep("+7*1000*60*60+")");

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int TimeFrames[]={0,1,5,15,30,60}; 
int NumTimeFrames=ArraySize(TimeFrames);
int total_bars[]; ArrayResize(total_bars,NumTimeFrames);
string instrument="EURUSD";
for(i=0; i<NumTimeFrames; i++)
  {
   if(total_bars[i]!=iBars(instrument,TimeFrames[i]))
     {
       total_bars[i]=iBars(instrument,TimeFrames[i]);
     }
  }
 
Привет, задача такая пример в 00.00 по GMT ставятся отложенные ордера а в 10.00 по gmt к примеру нужна убрать эти ордера если они не открылись. или если 1 открылся то его оставить а остальные убрать? вопрос в том что как узнать сработал ордер или нет?
 
подскажите, можно ли как-нибудь сделать так, чтоб OrdersHistoryTotal() стало равно нулю? Это надо переустановить MT4??? Потому что если я прото открываю новый график, то это не помоает
 
CLAIN:
подскажите, можно ли как-нибудь сделать так, чтоб OrdersHistoryTotal() стало равно нулю? Это надо переустановить MT4??? Потому что если я прото открываю новый график, то это не помоает

Для этого надо открыть новый счет
 
frixer:
Привет, задача такая пример в 00.00 по GMT ставятся отложенные ордера а в 10.00 по gmt к примеру нужна убрать эти ордера если они не открылись. или если 1 открылся то его оставить а остальные убрать? вопрос в том что как узнать сработал ордер или нет?

Выставляете отложку, запоминаете тикет. Если нету отложки, но есть рыночный ордер с типом, в который преобразуется отложка и их тикеты совпадают - отложка сработала.

Например: выставляете отложку БайСтоп. Функция возвращает тикет установленного ордера - сохраняете его в переменной или в массиве.

Допустим он имеет тикет 1.

Проверяете есть ли отложенный ордер БайСтоп. Если его нету, то проверяете есть ли позиция Бай. Если есть, то сравниваете запомненный тикет с тикетом позиции Бай. Если они совпадают - значит отложенный БайСтоп преобразован в рыночный Бай.

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